Skip to main content

A predictive, sequential way of working in which progress is seen as flowing steadily downwards through phases of analysis, design, build and testing.

The waterfall model divides work into stages or phases. Each stage consists of a different kind of activity and work is expected to progress from one stage to the next in a one-way, linear fashion. For example: requirements gathering followed by analysis then design then build then testing.

Winston Royce described this model of software development in a 1970 paper called Managing the Development of Large Software Systems. Royce did not use the term "waterfall" but his paper is often cited as the origin of the idea. In fact Royce's paper described this style of development in order to point out its problems and to suggest an alternative, using a more iterative approach with feedback at each stage.

Although originally applied to software development, the term waterfall is often used to describe any kind of working approach that is linear and sequential with distinct kinds of activity happening at each stage and with limited opportunity to modify the sequence or change direction.