Waterfall Software Development



Created on


Last revised on

Reading time: 4 min

What Is Waterfall Software Development Model?

The waterfall model is a software development model in which the progress flows from the top to the bottom, like a waterfall. Each phase depends on the deliverables of the previous one. To follow the model, you should proceed from one phase to the next one in a sequential manner. The phases are often listed as follows:

  • Requirements analysis
  • Design
  • Implementation
  • Verification (testing)
  • Maintenance

The Origin of the Waterfall Model

The first known presentation describing use of linear sequential phases in software engineering was held by Herbert D. Benington in 1956. The first formal description of the waterfall model is often cited as a 1970 article by Winston W. Royce. [1]

However, Royce described the model – which is now known as waterfall model – as an example of a method that he argued “is risky an invites failure”. Royce’s paper then explored how this model could be developed into an iterative model. [2] Nevertheless, the initial model – waterfall – received more notice.

Also modified waterfall models (including Royce’s final model) exist. These may include slight or major variations upon the waterfall process. [1]


Arguments Against the Waterfall Model

Even if the waterfall model is still popular – one reason being its simple and structured approach – some people see it as inflexible and non-iterative. For example, they argue that:

  • Stated requirements often change so project must be open for change.
  • It is challenging to know exactly what is needed in each phase of the software process in advance.
  • It can be challenging to estimate time and cost for each phase of the process in advance.
  • Testing from the design, implementation and verification phases is required to validate the phases preceding them.
  • Frequent incremental builds are often needed to build confidence for the team and the client.

When to Use the Waterfall Model?

Despite of the criticism, waterfall can be a good choice in certain situations. If your project fits the following criteria, this might be the case.

  • Requirements are well known, clear and unlikely to change.
  • The definition of the product is stable.
  • The technologies are well understood.
  • All required resources are freely available.

Move up to