Evolutionary Database Design. In the past decade, we've seen the rise of agile methodologies. Compared to their predecessors they change the demands on database design. One of the most central of these demands is the idea of evolutionary architecture. On an agile project you assume that you cannot fix the requirements of the system up-front. As a result having a detailed design phase at the beginning of a project becomes impractical. The architecture of the system has to evolve through the various iterations of the software. When we and our ThoughtWorks colleagues started doing agile projects, we realized that we needed to solve the problem of how to evolve a database to support this evolution of architecture. Jen implements a new story To get a feel for how all of this works, lets outline what happens when a developer (Jen) writes some code to implement a new user story.
Here's the steps she'll need to go through: Jen runs this migration script on a local copy of database on her machine. Dealing with Change. SMAC.