Monday, July 24, 2006

Waterfall design vs. iterative

One commonly cited "best practice" for developing websites (or redeveloping, as the case may be) is to carefully plan all aspects of the development through a series of preset steps and processes.
(see the definition below from Wikipedia -http://en.wikipedia.org/wiki/Waterfall_model):
The waterfall model is a software development model (a process for the creation of software) in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance

And certainly it sounds like it makes good sense - as with any system migration, planning would seem to be key. But at issue is the degree to which the planning stages are immutable and linearly aligned, as opposed to allowing for iterative development. Interestingly, the same Wikipedia article mentions that the inventor of "waterfall design" favored "iterative design". Anyhow, someone in my PHP programming class mentioned this whole debate between waterfall and iterative design and it articulated for me a conflict that I've noticed - the conflict between preplanning the entire redesign of a large-scale website before even beginning to do the work and between starting to actually do the work informed more loosely by a set of objectives and iteratively improving the system.

No comments: