InfoQ

News

InfoQ Presentation: Scott Ambler on Database Refactoring

Posted by Deborah Hartmann on Mar 10, 2007 10:00 AM

Community
Agile
Topics
Delivering Quality,
Agile Techniques
Tags
Database,
Agile2006
Scott Ambler is the author of many books, including The Object Primer, Agile Model Driven Development, Agile Database Techniques: Effective Strategies for the Agile Software Developer, and Refactoring Databases: Evolutionary Database Design. He is passionate about expanding Agile practices to include a broad variety of development roles: in recent years he has been championing the integration of database roles into the Agile team's patterns of software development. This InfoQ video, Database Refactoring captured Ambler's talk at Agile2006.

The presentation started with warnings, and an invitation from Ambler to remain open minded:
  •  Some of these ideas may not fit well into your existing environment,
  •  Some will challenge your existing notions about software development,
  •  Some will confirm your unvoiced suspicions.
Ambler considers the following roles as candidate participants in the Agile Database approach:
  • the Agile DBA: Anyone who is actively involved with the creation and evolution of the data aspects of one or more applications. Includes activities typically associated with the traditional roles of database programmers, database administrators (DBAs), data testers, data modelers, business analysts, project managers, and deployment engineers.
  • the Enterprise Administrator: includes, but is not limited to, the responsibilities associated with traditional roles of data administrators, network administrators, reuse engineers, and software process specialists.
  • the Application Developer: who works closely with Agile DBAs
Ambler's key topics included: Code Refactoring (as background), Database Refactoring, Why Database Refactoring is Hard, and Transition Windows, which make room for the challenging practice of database refactoring. The presentation went on to outline his process of Database Refactoring and provided examples.

Database refactoring is to data structures what code refactoring is to the codebase: a way to incrementally evolve database structures and procedures, to keep in step with the evolutionary design practice of Agile developers. Note that database refactorings are a subset of schema transformations, but, like code refactorings, they do not add functionality.  And, like code refactoring, they are enabled by a regression test suite, which acts as a safety net, particularly for making quick or risky changes.

Some of the other practices Ambler recommended to enable an Agile Database approach: sandboxes, configuration management,  encapsulated database access.  View the InfoQ Presentation Database Refactoring filmed at Agile2006.

A note on tooling: it goes without saying that automation allows teams to apply these practices more quickly, further increasing agility. Microsoft's Visual Studio for Database Professionals is one of the first toolsets offered to help teams extend Agile practices to the DBA community.  In the future, Agile Teams can also expect to be using the Eclipse platform to implement these database practices: Ambler, a committer on the Eclipse Process Framework, is contributing his Agile Data ideas to the project, though only a few are embedded in the product at present. 

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

1 comment

Reply

Can this be downloaded? by Ali Anwar Posted Apr 20, 2007 9:18 AM
  1. Back to top

    Can this be downloaded?

    Apr 20, 2007 9:18 AM by Ali Anwar

    The presentation stops download after 10-15 min., I'm behine 512 ADSL, I really like the presentation and would love to complete it, is there a way to download it?

Exclusive Content

Agile in Practice: What Is Actually Going On Out There?

Scott Ambler talks about actual data resulting from surveys made during 2006-2008, showing how Agile is perceived and implemented within organizations.

Building Smart Windows Applications

From QCon 2008, Daniel Moth presents on using Visual Studio 2008 and .NET 3.5 to create compelling rich Windows applications.

Joshua Kerievsky about Industrial XP

Joshua Kerievsky, founder of Industrial Logic, talks about Industrial Extreme Programming which extends XP by including practices dealing with management, customers and developers.

Jeff Barr Discusses Amazon Web Services

Amazon Web Services (AWS) Evangelist Jeff Barr discusses SimpleDB, S3, EC2, SQS, cloud computing, how different Amazon services interact, origins of AWS, AWS globalization and the March AWS outage.

More Than Just Spin (Up) : Virtualization for the Enterprise and SaaS

Cloud services have helped bring virtualization to the forefront. Its full power however, also includes other benefits such as high availability, disaster recovery, and rapid provisioning.

Ruby Beyond Rails

John Lam talks about his path to dynamic languages, some of the problems of making IronRuby run fast, and how the DLR helps with implementing languages.

VMware Infrastructure 3 Book Excerpt and Author Interview

VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.

Architectures of extraordinarily large, self-sustaining systems

Can a system that is so large it cannot be comprehended be "designed" in a conventional sense? The foundations of computing are about to change. In this talk, Richard P. Gabriel explores why and how.