Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News InfoQ Presentation: Scott Ambler on Database Refactoring

InfoQ Presentation: Scott Ambler on Database Refactoring

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. 

Rate this Article