https://www.techtarget.com/searchsoftwarequality/definition/waterfall-model
The Waterfall model is a linear, sequential approach to the software development lifecycle (SDLC) that's popular in software engineering and product development.
The Waterfall model uses a logical progression of SDLC steps for a project, similar to the direction water flows over the edge of a cliff. It sets distinct endpoints or goals for each phase of the development process. Those endpoints or goals can't be revisited after their completion.
Dr. Winston W. Royce at the Lockheed Software Technology Center introduced the concept in a paper published in 1970 on his experience developing software for satellites. However, Royce didn't use the term Waterfall; instead, he referred to the downstream value of documentation.
The Waterfall model continues to be used in industrial design applications. It's often cited as the first software development methodology. The model is also used more generally as a high-level project management methodology for complicated, multifaceted projects.
Project teams and project managers use the Waterfall model to achieve goals based on the needs of their business. The model is used in many different project management contexts, such as in construction, manufacturing, IT and software development.
In the Waterfall methodology, each step is dependent on the output of the previous step. There's a linear progression to the way these projects unfold.
For example, in construction, these three general steps are usually followed:
On a manufacturing line, steps are followed sequentially in a controlled order when building a product until the finished deliverable is created.
The Waterfall model doesn't include a project's end users or clients as much as other development methodologies. Users are consulted during the initial stages of gathering and defining requirements, and client feedback is incorporated after that. By leaving the client out of the main part of the Waterfall process, the development team moves quickly through the phases of a project.
This methodology is good for teams and projects that want to develop a project according to fixed or unchanging requirements set forth at the beginning of the project. Waterfall projects have a high degree of process definition with little or no output variability. Waterfall is also a good choice if the project has cost or time constraints.
Projects based on the Waterfall method are well defined, are predictable and have specific documentation. They have the following characteristics: fixed requirements, ample resources, an established timeline and well-understood technology. They usually aren't likely to require significant changes.
Waterfall aims to achieve its goals on the first try. So, in software development processes, if an application must work out of the box immediately at the risk of losing customers or some other serious issue, Waterfall is a suitable method. Contrast that with the Agile project management and development model. Agile methods use ongoing reiteration. Its iterative approach involves designing, developing and testing software in repeated cycles that build upon each other.
When used for complex projects, such as software development, the Waterfall development methodology has seven stages:
Before moving to the next phase in the Waterfall process, there's usually a review and sign-off to ensure all defined goals have been met. For example, developers ensure each unit of technology is properly integrated in the implementation phase before moving to the testing phase.
The Agile methodology is often used in place of the Waterfall model. However, there are advantages to the Waterfall vs. Agile approaches, such as the following:
Disadvantages of the Waterfall model typically center around the risk associated with a lack of revision and flexibility. Specific issues include the following:
Gantt charts are a common management tool for Waterfall projects. These charts enable easy visualization of sequential phases, letting project managers map dependencies and subtasks for each phase of the process. They also provide a clear view of timelines and deadlines for each phase.
Project management software often incorporates other tools to help Waterfall-based teams complete their tasks. Some important capabilities to have in project management software include team collaboration, note-taking, testing and development, and data analytics and visualization.
Besides Agile software development methods, alternatives to the Waterfall process include the following:
Despite the popularity of other project management approaches, the Waterfall model still has an important role to play. It may be integrated with other models to provide hybrid solutions, used in regulated industries, such as healthcare and defense. It can also be used as an educational tool and to support legacy projects.
Software development teams often choose between the Waterfall and Scrum methodologies. Learn how this lightweight version of Agile works and how it compares to the Waterfall method.
15 Nov 2024