Waterfall Model & Waterfall Methodology
The Waterfall Model is a sequential and linear diagram for software design and development processes. Typically, sequential phases (Requirements, Design, Implementation, Testing, Delivery, Maintenance) form a waterfall diagram and each phase is completed before the next phase begins. This model takes its name from the linear and successive phases required to develop the product. These sequential phases flow downwards in one direction, therefore the name of the model is “waterfall”. The most important characteristic of this model is that there is no overlap between the phases. Waterfall project management is a traditional methodology. It was first used in construction and manufacturing industries then it became popular for software development. In this article, we will discuss the Advantages and Disadvantages of the waterfall model in detail.
Table of Contents
What is the Waterfall Model? – A Brief History
The sequential phases (Requirements, Design, Implementation, Testing, Delivery, Maintenance) of the waterfall model in software engineering was first presented by Herbert D. Benington in the 1950s. However, Winston W Royce published an article in 1970 and described the waterfall model in detail. Royce did not use the term waterfall directly in his article, he just described the software development process. The term” waterfall “ was first used in the article “Software requirements: Are they really a problem? by Bell and Thayer in 1976.
A United States defense standard “Defense Systems Software Development” involved this approach and described the contractor’s software development process in 1985.
Recommended article: Kanban Methodology
Waterfall Model Diagram
The below figure illustrates the waterfall model diagram. As shown below, all the project activities are organized in linear and sequential phases. Each phase depends on the completion of the previous phase.
What are the Phases of the Waterfall Model?
Generally implementing the waterfall methodology for a software development process involves six phases and each phase begins only if the previous phase is complete. There may be minor changes in numbers and descriptions of each phase depending on the product. Below are the six phases of the waterfall model.
1. Requirements (System and Software Requirements)
The System and Software Requirements phase is the first phase of the waterfall model. Software, product, or project requirements are determined and specified at this step. Business needs, requirements of the product are documented in a product requirements document (PRD). The main purpose of this document is to allow people to understand what a product should do.
2. System Design
After the completion of the System and Software Requirements phase, the design phase comes. Product or software requirements are analyzed and the system is designed based on the outputs of the first phase. Business logic, schemas, models, and diagrams are generated to model the product.
3. Implementation (Coding)
The implementation phase is also known as the coding or development phase. Code of the software is written based on the inputs of the design phase at this step. Business logic, schemas, models, and diagrams created at the design phase are used at this step.
After the completion of the coding phase, quality tests, α-tests, β-tests, and other necessary tests are performed and errors and issues are reported. Testing is performed for systematic discovery and debugging of defects. If the problems are unmasterable, it will be a good idea to inspect previous phases to identify the root cause of the problems.
5. Deployment of System (Delivery)
Once all the tests have been performed and all the issues are resolved the product is ready for deployment. Deployment is to make the product live in the production environment.
The maintenance phase is one of the most important phases of a product or software. After the deployment of the product to the customer, some modifications may be required to improve the performance. These modifications arise either due to change requests demanded by the customer, or defects uncovered during the use of the product or software.
Advantages and Disadvantages of the Waterfall Model
As we discussed above, teams follow sequential steps and never proceed until the predecessor phase has been finalized. This makes the waterfall model rigid. As a result, it leaves basically no space for unforeseen changes or modifications. Therefore, it is not applicable to all projects/organizations. If you foresee every detail in your project, the waterfall could provide you benefits.
Advantages of Waterfall Model
The classical waterfall model diagram is very simple so that it was implemented for software or product development in the past. Nowadays this model is not used. It may still provide some benefits for projects that require stringent phases. Below are some advantages of the waterfall model.
- It is a simple method and easy to use.
- Phases of this model are very clear and easy to understand
- There is no overlap between the phases.
- It is suitable for smaller projects where requirements are well defined.
- Scope, target, and milestones are clearly defined
- It allows for early design changes
- It is easy to manage
- Phases and requirements are documented well in this model.
Disadvantages of Waterfall Model
Below are some disadvantages of the waterfall model.
- The waterfall model does not allow much revision.
- It is not suitable for large and complex projects
- If there is a problem that occurred in one of the phases, it is expensive and time-consuming to turn back and fix the problem.
- The waterfall model does not include a feedback path. It does not incorporate any system for error correction.
- It is not suitable for projects with uncertain scope.
- It is not suitable for long and ongoing projects.
- Risk and uncertainty are high
- The model assumes that there is no overlap between the phases. However, in real projects, phases may overlap.
The waterfall methodology provides a simple approach for planning projects. Each phase is completed before the next phase begins. It is very useful for smaller projects with well-defined scope and requirements. Proper planning should be made before implementing the waterfall project management model and each team member should understand their roles. This model was very popular in the past but nowadays it is not used. On the other hand, it still remains useful for certain types of projects. Other project management methodologies such as agile, kanban, and scrum are more popular in the software industry.
Margaret Conte has been working as a consultany for over 15 years. In this time, she has worked in a variety of project management methodologies (waterfall/scrum/agile) and has been a strategic Project Manager, Coordinator, Facilitator and Scrum Master. She is the co-founder of Development Fast Academy