Waterfall method

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).

forest-trees-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.
large
Diagram made by BBC Bitesize

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.
References: