Over a million developers have joined DZone.
Platinum Partner

Reverse Engineering a DB for DevOps Excellence

· DevOps Zone

The DevOps Zone is brought to you in partnership with Librato.  Check out Librato's whitepaper on Selecting a Cloud Monitoring Solution.

Former ThoughtWorker Steve Moyer has written two blog entries on an aspect of an Agile mission we did a few years ago. He was the pivotal designer/implementer of the work.

The first blog entry was Regaining Agility in the Face of Legacy Databases

The second was Working With Legacy Databases: A Case Study

Both are very much worth a read generally, but they should be of particular interest to folks wishing to move control for DB creation to scripts under source-control, so that Continuous Integration can ‘reinforce value’ with each commit of code. Developers can benefit too by separately standing up a microcosm version of the stack, using scripts that took seconds to complete the creation and initial population of a schema. If devs are sharing a single DB now, and you’re using UI tools to modify that outside of source-control, then Steve’s words should be raked over.

OK, so in the case study Steve outlines the process he used. I’ll copy and paste for your convenience:

Phase 1: Generating a baseline schema (One person over a few days)
Phase 2: Generating an initial dataset (One person over ~3-4 Weeks)
Phase 3: Initial browser based testing and continuous integration (Two people over ~1 week)
Phase 4: Extending the team and moving forward (Ongoing effort across multiple distributed teams)

Pramod Sadlage is ThoughtWorks’ veteran database “agilizer” and co-wrote the book Refactoring Databases. It is nice to see more case-studies from the field, that facilitate a nimble usage management of table-shapes going forward.


Published at DZone with permission of Paul Hammant , DZone MVB .

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}