The waterfall model is a sequential design process, often used in software development processes, where progress is seen as flowing steadily downwards (like a waterfall).
Waterfall projects value:
- Processes and tools over Individuals and interactions;
- Comprehensive documentation over working products;
- Contract negotiation over customer collaboration;
- Following a plan over responding to change.
The Waterfall method does have certain advantages, including:
- Design errors are captured before any software is written saving time during the implementation phase.
- Excellent technical documentation is part of the deliverables and it is easier for new programmers to get up to speed during the maintenance phase.
- The approach is very structured and it is easier to measure progress by reference to clearly defined milestones.
Unfortunately, the Waterfall method carries with it quite a few disadvantages, such as:
- Clients will often find it difficult to state their requirements at the abstract level of a functional specification and will only fully appreciate what is needed when the application is delivered. It then becomes very difficult (and expensive) to re-engineer the application.
- The model does not cater for the possibility of requirements changing during the development cycle.