Below is a model of a typical Waterfall process, each stage occurs one after the other and developers cannot go back in stages.
- It encourages stable goals, and setting out requirements and specifications early in development.
- It requires careful planning.
- Encourages clear, complete and correct documentation.

Below is an extended Waterfall model which allows developers to feedback into earlier stages in development.

We can also split up development between different teams in this case:

Changes in the Waterfall process can prove to be more expensive as entire components and corresponding work may have to be removed as requirements change:

In practice, we always need to permit revisiting the previous stage.