Waterfall Model & Waterfall Methodology
Waterfall model is a sequential and linear model for software design and development processes. Typically, sequential phases (Requirements, Design, Implementation, Testing, Delivery, Maintenance) form a waterfall model diagram and each phase is completed before the next phase begins. The sequential phases flow downwards in one direction, therefore the name of the model is “waterfall”. There is no overlap between the phases. This model takes its name from the linear and successive phases required to develop the product.
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 waterfall model in detail.
What is the Waterfall Model?
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. 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
Below figure illustrates the waterfall model diagram. As shown in the waterfall model diagram, all the project activities are organized in linear 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)
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). 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, 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 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 on the production environment.
The maintenance phase is one of the most important phase 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
Classical waterfall model 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 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 understood.
- Scope, target, and milestones are clearly defined
- It allows for early design changes
- It is easy to manage
- Requirements are well understood
- Phases and requirements are documented well in this 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 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 to implement 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.