Agile Mumbai 2008

Evolving Databases in Agile - Proposal  

Evolving Databases in Agile


This is a workshop which introduces Developers and Database Administrators to techniques for dealing with a changing database models to support change in requirements and design.

Target Audience

  • Developers who are involved in or will be involved in a project with evolving requirements and a database back end
  • Database Professionals who wish to understand and adapt to evolutionary design and development
  • Prerequisite: The attendees are expected to have basic familiarity with SQL (DDL & DML), databases and coding.

Expect To Learn

At the end of the workshop, the participant should be able to:
  • Identify some key problems of traditional database maintenance in the face of changing design
  • Implement solutions to these problems - making it easy to evolve the database as fast as code.


During the workshop, the participant will learn to identify challenges including:
  • Applying the database schema to multiple database instances
  • Keeping the code and the database schema in synch
  • Insulating developers from database schema changes made by other developers till commit
  • Allowing the users to keep their old data during upgrades
The participants will learn techniques to address these issues. These techniques include:
  • Using scripts to create database schemas
  • Version controlling the database schema creation scripts
  • Incrementally applying changes to the schema
  • Using the database to keep track of the current state of the schema
  • Using an Object-Relational mapping tool (eg. Hibernate)
  • Writing and maintaining persistence test cases
In addition, we'll also discuss the consequences of using these techniques, like:
  • Faster feedback for developers
  • Quicker deployment cycles, leading to deploying more often
  • Less maintenance of the object relational mapping code
  • We will also discuss some issues like dealing with schema changes on multiple development branches, how to handle stored procedures, tools like DBDeploy, etc.


Most of the workshop will be hands-on. Participants will be given code and a database schema and asked to solve a specific problem. We will then discuss the various approaches and attempt to generalize and learn from the experience. We then move on to the next problem. We will also spend some time discussing certain advanced problems and techniques.


  1. 15 minutes: Introduction, Setup code
  2. 60 minutes: 2 x 30 minutes: participants solve a problem and discuss the solution.
  3. 15 minutes: Break
  4. 60 minutes: 2 x 30 minutes: participants solve a problem and discuss the solution.
  5. 30 minutes: Discuss related scenarios, Summary
This workshop is being offered for the first time outside ThoughtWorks.

Profile of the Facilitators

Rohith Rajagopal has been working in the IT industry for the past 8 years, in various capacities like - programmer, architect, agile coach and trainer. He is currently the Director of Innovation at ThoughtWorks Technologies India. In the past 3 years, he has been involved in evolving databases as part of developing enterprise apps for ThoughtWorks. He has also coached and trained extensively both within ThoughtWorks and for clients. He has previously spoken at Nasscom's Quality Summit in 2007 and ThoughtWorks' Master Class Series in 2006.

Umar Akhter has been working in the IT industry for the past 9 years as a developer, architect, agile coach, trainer and project manager. He is currently a Project Manager at ThoughtWorks. He has conducted multiple trainings on object oriented programming/design and agile analysis both inside ThoughtWorks and for clients. He presented on requirement gathering and analysis in Agile Pune 2006. He is also the father of two kids even though he doesn't look that old.

2005-2017 Copyright © Agile Software Community of India
Website designed and hosted by Agile FAQs