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.
- 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
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.