Over a million developers have joined DZone.
Gold Partner

Reverse Engineering a DB for DevOps Excellence

· DevOps Zone

The DevOps Zone is brought to you in partnership with Go Continuous Delivery. Learn the 5 key patterns to setting up a successful deployment pipeline, including designing parallel workflows, running tests in parallel, and more.

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.

The DevOps Zone is brought to you in partnership with Go Continuous Delivery. Discover why "Hardly Anyone Knows Continuous Delivery."

Topics:

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 }}