views:

70

answers:

1

G'day,

I was reading the article "Database as a Fortress" by Dan Chak from the excellent book "97 Things Every Software Architect Should Know" (sanitised Amazon link) which suggests that databases should not be designed using an agile approach.

There's an SO question on agile approaches and databases "Agile development and database changes" which has some excellent answers covering agile development approaches. In fact, one of the answers supplies a brilliant idea of what's needed for each update of the DB. ;-)

But after reading Dan Chak's article, I am left wondering if an agile approach is really suitable for large scale systems.

This of course leads on to the question of how best to decouple an agile approach for the application that is interacting with the BDUF database design without adding complicated translation layers in the final design employed?

Any suggestions?

cheers,

+2  A: 

It really depends on what you mean by "large-scale systems". Whether you're "agile" or not, decoupling pieces of a system is always a good idea. The idea of BDUF doesn't mean you do no design up-front, you just don't design too much and make a huge investment in a design that turns out not to support later features.

Personally, I'd look at http://databaserefactoring.com/ (the web site for the book Database Refactoring) to get a better idea of what's possible and why.

Good luck!

Ted M. Young