Agile Development Methodologies For DBAs

Ever since an old colleague of mine mentioned that his Oracle development team were using Scrum, an agile development methodology, to run and plan their projects, I've been looking out for an opportunity to use agile methods in my line of work. Interestingly, there's a new article on OTN by Scott Ambler entitled "Agile Development and the Developer/DBA Connection" which looks like just the ticket. According to the article;

"Unlike modern developers, who work in an agile and evolutionary (iterative and incremental) manner, most DBAs tend to work in a "serial" manner. But with the potential of service-oriented applications (SOA) to change the nature of software development, DBAs will have to change along with it.

The adoption of "agile" software development techniques can be a significant factor in that process. Not only are developers already working with new technologies such as services, but they're also adopting new development techniques to increase their efficiency. These techniques--Extreme Programming, Feature Driven Development, Test-Driven Development, and Agile Modeling--vary in specifics, but they share an emphasis on the following:

  • A cooperative working style between developer and DBA
  • Data management techniques that support agile software development (vs. traditional, serial techniques, which do not)
  • New, flexible development tools that reflect the realities of modern environments."

Of course, the added complication when working on consulting engagements is that whilst agile methods may suit the customer well (in that requirements are driven out iterativelty, and development goes on as long as value is being delivered) the client also almost always wants a fixed price, and a fixed delivery date. Certaintly, the situation described in the article (where a DBA is on call anyway, and the question is more about how best to spend their time) is probably better suited to agile methods than when you're on a fixed-price, fixed-duration project for a client. Interesting nonetheless.