|By Pete Pickerill||
|June 25, 2014 12:00 PM EDT||
All too often, database development is an afterthought in Agile Development. Developers perfect how best to implement a solution in code, but tend to spend too little time on representing that solution in the Database. This is unfortunate, given that 65% of your change requests require changes to the application schema, according to independent research conducted by Simon Management Group. This finding implies that Database changes are every bit as important as the Application Code, and should be treated as tier-one artifacts in your release process.
At Datical, we typically find that development organizations process Database changes in one of two ways:
- Developers author Database changes, which must then be reviewed and approved by the DBA team, or
- Developers submit Database change requests to the DBA team, who then author changes.
Either scenario would work fine, as long as one or more of the DBA team could be dedicated to capturing and processing the required Database changes. But the truth is that most DBA teams are stretched too thin to keep up with the Developers, supporting both "System DBA" work like provisioning or troubleshooting, and the more strategic "Application DBA" work of deploying packages to the appropriate environments or evolving the application's schema.
In either case, Database changes often end up being the bottleneck in your develop-test-deploy process. It would be easy to blame the DBAs, but remember that they are charged with maintaining the integrity of your Systems of Record and protecting the data which is the lifeblood of the business. What's needed is a different perspective.
To extend the idea of Extreme Programming: if Agile Development is good, then let's do Agile Development all the time. Limiting Agile Development to one platform or one team is simply unacceptable. If we are going to get the flexibility we need to deliver compelling solutions to our customers quickly, we need to be Agile all through the software development life-cycle, not simply in Application Development, and that means we need to bring Agile Development to the Database.