All articles

Traditional Waterfall Method

The waterfall model was first defined by Winston W. Royce in 1970 and has been widely used for software projects ever since. It quickly gained support from managers because everything flows logically from the beginning of a project through the end. Often considered the classic approach to the systems development life cycle, the waterfall model describes a development method that is linear and sequential. In few words, the main features of waterfall approach is distinct goals for each phase of development and once a phase of development is completed, the development proceeds to the next phase and there is no turning back just like a waterfall.

The original Waterfall method, as developed back in 1970, is featured above. The original waterfall development methods includes Requirements determination, Design, Implementation, Verification, and Maintenance steps. In 2008 Hans Jonsson proposed to change the Requirements phase into the Idea phase, while Hoffer, George, Valacich,  insist on breaking  the Requirements phase out into Planning and Analysis. Furthermore, some models break the Design phase out into Logical and Physical Design subphases. Nevertheless, it does not affect basic underlying principles.

When using this methodology it is crucial that all requirements are captured during the Requirements/design phase as it can be very difficult to re-visit requirements on implementation phase. When done well the waterfall method is excellent for large projects.

The Waterfall method life cycle

The Requirements phase in the waterfall method is designed to gather all specified requirements up front exclusively during кequirements phase. At this phase of project development Project Manager does his best to get a detailed understanding of the user’s requirements.The usual and best practice for this phase is face-to-face discussion between customer and authorized by the executor.

The Designed phase looks at how the software will be built and how the system will operate. The main purpose of this stage is to create a blueprint that will satisfy all documented requirements, identify all inputs, processes and outputs needed and also to help avoid misunderstandings.

The Implementation phase also known as development, construction or coding, where the software for the project is written.

The Verification phase designed to ensure that the project is meeting customer expectations, and it’s implemented according to the agreed-upon requirements.

The Maintenance phase the product is been delivered to the client, a schedule maintenance and support is put into place, to ensure the product continues to work as designed and answers customer requirements.

The matter of choice

The Waterfall method is distinguished by its sequential nature, once one phase completely finishes before the next one begins. It is very simple to understand and use. Nevertheless, choosing development method has a crucial impact on project over all. The best approach is to learn carefully advantages and disadvantages of the methodology.     


  • Design errors are captured before any software is written saving time during the implementation phase.
  • Easy to communicate with clients, especially during the critical requirements and design phase.
  • The approach is very structured and it is easier to measure progress by reference to clearly defined milestones.
  • High visibility: demonstrable output can be seen by the client and project manager after every stage.


  • The model does not cater for the possibility of requirements changing during the development cycle.
  • The structure of the model puts most of the work up front, meaning that software is not produced until very late in the project.
  • Not well-suited for long or large-scale projects. Some projects offer surprises and may highlight the weakness of the waterfall model. 
  • Once the software reaches the testing stage, it can be difficult to go back to the development or requirements stage to fix something.

Conclusions and recommendations

To sum up, the waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to the systems development life cycle, the waterfall model describes a development method that is linear and sequential. Each stage must be completed before the next “level” of the waterfall is begun. This makes the waterfall model most useful for smaller projects with well-defined requirements and fewer uncertainties.