The waterfall model is used in software development to ensure that positive progress is made in the creation of software for a client. While most commonly associated with software design, successful implementation of this software development model can benefit any project management effort.
The waterfall model is a design model for creating successful software development projects. This model consists of seven steps, each of which is dependent upon the prior step. If you think of the way a waterfall works, you will understand the metaphor. In order for the water to reach the bottom and create the pool, the water runs over the rocks, picking up different things in the process.
The water runs over the following seven stages:
- Requirements Gathering
- Initial Implementation
- Software or process installation
- System maintenance
Each of these stages has specific tools and outcomes that lead to the next step. By using this model methodology in your next project, you can simplify the planning process. It has one weakness; it does not allow you to have separate stages of the process running at the same time - in this model, a linear model, you do not begin the next stage until you are certain that the current stage is complete.
1. Requirements Gathering and Analysis
The first stage involves gathering all of the software or system requirements. When you gather requirements, you will need to develop a plan. In order to gather the requirements, you'll want to be sure you're clear on the project goals and the scope of your project. Then you'll want to survey your stakeholders to ensure you have accounted for any specifications. Finally, you will analyze the results you have come up with and ensure that you've clarified all requirements.
Once you have gathered the requirements for your project, you will need to begin work on the design of the product. If you've taken time and properly planned your project out before you began your product design, then the design stage of your project should be smooth. The design stage involves deciding not only on how you will implement the requirements of the project (see how these stages build upon one another) but also determining how the product will look, how it will work, and how it will be pieced together.
3. Initial Implementation
Once the design has been decided upon, then the team members can begin to implement the design. Once implementation begins, the team members begin building the actual product. If the product is software, then they begin putting together the coding for the software. As each part of the product is constructed, quality testing is conducted to ensure the parts are on track.
Once the individual components of the design have been constructed, then the components are integrated together. This phase requires that the parts are carefully integrated with one another to ensure that together they will work as a whole.
While some combine testing with integration, these are really two separate stages, but you may cycle through stages 3-5 until everything passes the test. How can you test your product if you haven't fully integrated the parts of the project together? If your product fails the testing phase, then you will need to alter the code, re-integrate, and then retest your product.
6. Software or Process Installation
Once your product, process, or software has passed the testing stage, then it's time to install the software or process into its intended environment. When this occurs, there will be a lot of change management issues to contend with—make sure that you have accounted for these in your project plan.
Finally, once you have installed the software, product, or process, you will need to maintain it. Part of product maintenance involves quality control. By maintaining your product, process, or software, you can be sure that not only are you keeping the project you worked many hours fresh for your client, but that you are also providing outstanding customer service.
Royce, W. "Managing the Development of Large Software Systems." http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf
Image courtesy of sxc.hu/gallery/jpaulocv