Cross reference between Agile Developmet and Database Design: A Brief Explanation

[Software Engineering]
[Database Design]

The main difference between agile and traditional software development relates to the evolutionary approach towards the software design.

In the traditional approach a well-established and detailed design phase exists in the very beginning of a project, which will serve as a blueprint for the software that must be implemented and, after all, tested by the developers. This is tightly-coupled approach were "data changes impacts the database, and the effect of that change rippled through the database immediately in accordance with referential integrity rules, based on business rules". (Morien, 2005)

On the other hand, the Agile approach understands that it is not possible to establish such design and foresee all the details of the software requirements upfront. The design must be able to scale, and absorbing changes as necessary, in an evolutionary manner. This allows for a more natural and iterative process where developers and stakeholders are empowered towards an evolutionary the final goal. Note that the Agile process requires a clear goal of what needs to be developed at the beginning of the development process but it does not require or enforce a "blueprint" with most, if not all, development efforts and requirements beforehand.

Agile has also influenced database design towards a more fluid design process "by employing evolutionary procedures and standards while automating processes" (Harriman, Hodgetts, and Leo, 2004). Under agile, data modeling becomes a much more interactive process to adapt to the ever-changing requirements. Refactoring of the database objects (entities, attributes, relationships, and etc...) occur periodically as necessary and regression tests are implemented and automated for every new feature or change in the database, allowing for early detection and prevention of future problems.

Works cited

Morien, Roy. (2005). Agile Development of the Database: A Focal Entity Prototyping Approach. Retrieved on October 26, 2011, from: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1609809

Harimman, Alan, & Hodgetts, Paul, & Leo, Mike. (2004). Emergent Database Design: Liberating Database Development with Agile Practices. Retrieved on October 26, 2011, from: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1359802