Chapter 12. Database Refactoring

 

That's one small step for [a] man, one giant leap for mankind.

 
 --Neil Armstrong

You learned in Chapter 1 that agile methodologies such as Extreme Programming (XP) (Beck 2000) and DSDM (Stapleton 2003) take an iterative and incremental approach to software development. Application developers on XP and DSDM projects typically forsake big design up front (BDUF) approaches in favor of emergent approaches where the design of a system evolves throughout the life of the project. On an agile development project, the final design often isn't known until the application is ready to be released. This is a very different way to work for many experienced IT professionals.

The implication is that the traditional approach of creating a (nearly) complete set of logical and physical data models up front isn't going to work — if it ever did. The main advantage of this approach is that it makes the job of the traditional database administrator (DBA) much easier: the data schema is put into place early and that's what people use. However, there are several disadvantages. First, it requires the designers to get it right early, forcing you to identify most requirements even earlier in the project, and therefore forcing your project team into taking a serial approach to development. Second, it doesn't support change easily. As your project progresses your project stakeholders understanding of what they need will evolve, motivating them to evolve their requirements. The ...

Get Agile Database Techniques: Effective Strategies for the Agile Software Developer now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.