Behavior-Driven Database Design
Agile methods focus on creating executable code quickly and with fewer defects. But what about the database? The database is "the" component of the application that is thought to be the least agile and often excluded from agile development. Pramod Sadalage explains how the concepts of Behavior-Driven Development (BDD) can be applied to database development to drive the design of the database using executable specifications. Pramod describes how performing BDDD (Behavior-Driven Database Design) allows us to specify the behavior of the database as it is expected by the code running against the database, how BDDD allows us to easily refactor the database, and how BDDD provides an easy way to document the database design and behavior. If we encode all the behavior we expect from the database, then we have a comprehensive set of tests to safely refactor our database in addition to an extensive behavior specification of the database itself.