Database developers: Does it feel as though everyone else gets the productivity benefits and fun from agile development, but not you?

In most organizations, agile is taking hold in application development, operations and even marketing. Meanwhile, database developers observe other teams leveraging scrums, sprints, feedback-driven work and automated unit testing and wonder how they’re supposed to keep up.

I’d like to tell you that the brave, new, agile world for database developers begins as soon as you’ve read this blog post and our new e-book, Getting Agile with Database Development, but that wouldn’t be the whole truth. The fact is that some of the things we like the most about databases simply aren’t amenable to the agile mindset.

The database doesn’t bend; it breaks. You don’t just replace a database with a new rev. We prize the persistent state of the data inside the database and, unfortunately, our need for that persistence outweighs our desire to experiment in the way that agile is known for. You can foul a production database up pretty quickly if you experiment with it as you would a code module.

How do you define a database version? When you update application code from v.1 to v.2 and something goes wrong, you back v.2 out of version control, push v.1 back to prod and take v.2 back to the drawing board. But in a database, too many things have happened in the meantime, so you cannot simply restore v.1 while you fix v.2. Even if your database were stable, it would take a great deal of work to ascertain its state before the change and get it back into parity with the applications running against it. Agile doesn’t really have time for that.

Most of the tools aren’t there. Automation tools that can accelerate deployment and keep application developers writing code are not as widely available for database developers. The main role those tools play is to reduce the risk of manual errors by automating steps like unit testing, static code analysis and staging. With lower risk, application developers are able to move fast; until that risk comes down for database developers, they’ll never be able to move that fast.

Still, automation has a big role to play in bringing database development into parity with application development. Have a look at our new e-book, Getting Agile with Database Development, to start the agile wheels turning on your database team. You’ll find that there are ways to reduce risk and shorten database development cycles so you can catch up with the applications team.