Implementing Agile Practices to Catch up with the Other Agile Teams in Your Organization
A lot of database developers are surrounded by the agile development mindset (in application development, marketing and DevOps). But when they try to apply it to their own projects, they realize that many of the things people value most about databases simply aren’t amenable to the agile mindset.
I posted last time about database developers feeling left out of agile and stressed that automation can still play an important role. That’s true even though most of the tools application developers use aren’t widely available for database development.
Here are five points in the pipeline where you can shorten the database development cycle and start to catch up with the other agile teams in your organization:
- Version control. It’s pretty inefficient to version control an entire database, but you can track revisions to specific objects (e.g. functions, procedures, even tables)stored inside.
- Automated regression testing. Manual testing is just too slow for agile. Automated testing almost immediately assures you that new changes do not break earlier work. That safety net helps you reduce the risk of moving faster.
- Static code analysis. This is a way of automating peer review. Tools can look for the same kind of patterns and errors in your code that your colleagues look for, only tools can do it much faster. So instead of spending 80% of your time reviewing code line by line, spend 20% and focus on the key problem areas identified by your tools. Now you can spend the other 80% of your time doing something more valuable!
- Stage for deployment. Even if the DBA isn’t embedded within your small, tactical development team (a growing trend within database-land), the path to production always includes a stop at the DBA. You shouldn’t try to automate around that stop, but you can equip your DBAs with automated tools to collect all the approved changes in the queue and generate the ALTER scripts for them to evaluate (instead of write).
- Automation. Automation is the key to an agile workflow, and it must encompass the entire pipeline. Manual processes in database development are traditional, and there are good reasons for many of them, but development cycles don’t shrink until the automated ones begin to replace the manual ones. Manual processes cannot keep up with the pace of agile.
Reaping the rewards of agile means thinking differently about how teams work and how they work with one another.
We’ve released a new e-book, Getting Agile with Database Development, to give you more perspective into using automation to shorten the database development cycle. Read the e-book to see in a new light the manual processes your database development has relied on, and start automating more of them.