Waterfall approach seems to be the rage in system development life cycle model for software engineering. The waterfall model describes the different phases that are liner and sequential in life cycle. This model is very easy to understand and use. Waterfall model involves several phases where each phase must be completed fully before the next phase can begin. It is considered as a classic approach and is highly useful for projects which are small and do not have any uncertain requirements.
Every phase involves a testing procedure at the end. This is to review and determine that if the project is on the right path and whether or not to continue or discard the project. Moreover, testing takes place only after the development is complete. This approach can lead to a faster project launch if everything is done well. Waterfall model also involves intensive upfront planning to ensure accuracy of every phase and every step. Apart from this, several phases of waterfall do not overlap to each other.
Advantages of waterfall model:
- Waterfall model is easy and simple to execute.
- Due to the rigidity of the model, it is easy to use – each phase has specific deliverables and a review process.
- Every phase of this model is processed and completed one at a time.
- Phases do not overlap.
- This model is best for smaller projects where requirements are very well understood.
Disadvantages of waterfall model:
- Waterfall doesn’t let you go back in the testing stage and change something that was not well-thought out in the concept stage.
- During product life cycle, no working software is produced.
- This model involves huge amount of risk and uncertainty
- It is not an ideal model to use for complex projects.
- Not suitable for long and ongoing projects.
- Poor to use for the projects that have requirements with a moderate to high risk of changing
When to use the waterfall model:
- Waterfall is perfect to use when the requirements are well defined and clear.
- Product definition is stable
- When technology is understood and defined
- There are no ambiguous requirements
- Ample resources with required expertise are available freely
- The project is short.
During the development of the product through a waterfall model, very less customer interaction is being performed. Only after the full development of the product, it is demoed to the end users. Furthermore, if any failure is found in the developed product, the cost of fixing these problems are very high as in waterfall model everything needs to update everywhere from documentation till logic.
Though there are set waterfall models, but to be with the flow of the market it is essential to develop own work strategy to ensure the success of the project. What’s your strategy of using a waterfall model in project development that keep the project’s cost low as well as ensure project’s high quality and on time delivery? Comment below to share your own methods.