waterfall model
The waterfall model is a linear, sequential approach to the software development life cycle (SDLC) that is popular in software engineering and product development. The waterfall model emphasizes
The waterfall methodology is composed of seven non-overlapping stages:
- Requirements: Potential requirements, deadlines
and guidelines for the project are analyzed and placed into a functional specification. This stage handles the defining and planning of the project without mentioning specific processes. - Analysis: The system specifications are analyzed to generate product models and business
logic that will guide production. This is also when financial and technical resources are audited for feasibility. - Design: A design specification document is created to outline technical design requirements such as programming language, hardware, data sources, architecture and services.
- Coding/Implementation: The source
code is developed using the models, logicand requirements designated in the prior stages. Typically, the system is designed in smaller components, or units, before being implemented together. - Testing: This is when quality assurance, unit,
system and beta tests take place to report issues that may need to be resolved. This may cause a forced repeat of the coding stage for debugging. If the system passes the tests, the waterfall continues forward. - Operation/Deployment: The product or application is deemed fully functional and is deployed to a live environment.
- Maintenance: Corrective, adaptive and perfective maintenance is carried out indefinitely to improve, update and enhance the final product. This could include releasing
patch updates or releasing new versions.

Before moving to the next phase, there is usually a review and sign off
The waterfall approach is ideal for projects that have specific documentation, fixed requirements, ample resources, an established timeline
Advantages of the waterfall model
While agile or dynamic methods often replace the waterfall model, there are some advantages:
- Upfront documentation and planning stages allow for large or shifting teams to remain informed and move towards a common goal.
- Forces
structured , disciplined organization. - Is simple to understand, follow and arrange tasks.
- Facilitates departmentalization and managerial control based on schedule or deadlines.
- Reinforces good coding habits to define before design and then code.
- Allows for early design or specification changes to be made easily.
- Clearly defines milestones and deadlines.
Disadvantages of the waterfall model
The disadvantages of the waterfall model typically surround risk associated with a lack of revision, including:
-
Design is not adaptive; often when a flaw is found, the entire process needs to start over. - Ignores the potential to receive mid-process user or client feedback and make changes based on results.
- Delays testing until the end of the development life cycle.
- Does not consider error correction.
- Does not handle requests for changes, scope adjustments or updates well.
- Reduces efficiency by not allowing processes to overlap.
- No working product is available until the later stages of the life cycle.
- Not ideal for complex, high risk, ongoing or object-oriented projects.