What is the waterfall model?
The waterfall is an early product and software development approach referred to as the Linear-sequential Life Cycle Model. A definitive attribute is that the various objective-specific phases in the waterfall model strictly adhere to a predefined sequence of execution, i.e., the outcomes, findings, and results obtained from one phase function as the primary inputs for the next phase.
Phases in a Waterfall Process
Basing product and software development projects on the waterfall model involves dividing the scope of work into successive phases/stages. In this regard, the six main objective-specific steps in a product/software development project are:
- Feasibility Study
Tasks in the first stage of the waterfall model revolve around gathering information on prevailing conditions that precede a software/product development project. The availability of finances and skilled personnel for project implementation are two common determinant factors in product/software development feasibility studies. Once identified, the project implementation team must then develop workable solutions for each emergent issue.
- Requirement Analysis and Specification
Upon attaining feasibility, the implementation team must then define/specify the scope of the product/software development project, i.e., what the group requires to accomplish in each phase of the project. Product/software development requirements primarily come from users of the product/software and encompass customer needs, complaints, expectations, preferences, user experience, etc.
- System Design
The third phase involves developing a modified or new software/product design that effectively addresses the various customer-centric requirements identified in the preceding stage.
After arriving at a viable design, the implementation team then embarks on creating a real-life prototype of the product/software. The final prototype can be an improved/enhanced version of an existing product/software or an entirely new offering.
A few select customers are presented with the product/software prototype during the testing phase. All test-user feedback is then collected and analyzed to enable the identification and resolution of existing glitches in the product/software prototype.
Mass market product manufacture or mainstream software deployment usually follows the successful launch and positive reception of a prototype product/software. In most deployment scenarios, the product/software owner typically outsources the function to an external party to the business, e.g., wholesalers, distributors, online retailers, etc.
The final phase of the waterfall process model involves setting up measures to address and resolve issues that arise after product/software deployment. These measures typically become part of existing customer care protocols.
Pros and Cons of the Waterfall Model
Product/software development using the waterfall process model offers two benefits over the alternative scrum agile model. First, a waterfall approach allows product/software development teams to estimate a project’s expected total time and monetary cost. Second, the sequential nature of task implementation allows for the seamless integration of additional personnel to an ongoing project.
A notable shortcoming of relying on a waterfall approach for product/software development is the inability to incorporate new changes/modifications past the requirement analysis and specification stage. Such iterations/refinements must wait for the following product/software development implementation project. Consequently, this methodology’s sequential and static nature makes it inappropriate for projects where the customer or business needs may change during the development process.