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.
- Implementation
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.
- Testing
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.
- Deployment
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.
- Maintenance
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.