Introduction
The Waterfall Development Method is a common software practice that uses a sequential design process. To follow the Waterfall model, one first completes a requirements specification that is fixed for the remainder of the project. An implementation phase follows where software developers write code to fulfill the requirements. Once the code is completed, the project advances to the implementation phase where major blocks of the code are combined. The verification phase follows implementation where rigorous testing of the system takes place until it is mature for production.
Strengths
The strengths of the Waterfall model are founded on completing as much critical work early in the process to save time and effort later in the process. Thus more time spent early ensuring requirements are completely understood results in a more stable and predictable development process later on. Thorough documentation is used to record requirements, design, and source code to preserve knowledge for new team members, or to prevent knowledge loss in case team members leave. In addition, with a fixed set of requirements that do not change, budget and timelines are easier to predict.
Weaknesses
It is often difficult to realize all of the needed requirements of a system early in the process. Constraining a project to only the specifications created during the requirements phase may omit key features necessary to fulfill the ultimate goals of the system. Significant delays or budget excesses can occur if the requirements are constantly changing after the requirements phase has ended. Delaying testing and integration of major blocks until late in the process may also introduce additional risk to the project, further impacting budget and/or schedule.