In: Computer Science
Is the waterfall approach suitable for an exploration type problem? If so, why?
Waterfall model was proposed as the first SDLC model. In the waterfall model each phase must be completed before moving on the next phase and also to be made sure that there is no overlapping in the phases.
The following represents the waterfall model -
I'm not explaining each phases but from the diagram we can see that each phases takes place in a sequential manner and there is no going back once one has landed on a particular phase and that's what make it unsuitable for larger projects where there might be large number of changes required as per customer. Once a plan has been defined it has to be executed completely. One cannot go back in a phase and do previous changes.
Other disadvantages that follows are -
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.
It is difficult to measure progress within stages.
Cannot accommodate changing requirements
Keeping all these in mind a waterfall model might be suitable for small scale projects and small organization where there is not much change in the projects, but fr larger organization and projects this is not at all suitable.
To overcome these problems organization has now come up with Agile model
The Agile model uses both the Incremental model which deals with breaking down into small modules and each module passes through the SDLC requirements that is planning, analyzing, designing, implementation, testing and support and Iterative model where it starts with a simple implementation of a small set of the software requirements and iteratively enhances the evolving versions until the complete system is implemented and ready to be deployed. So with the help of both this model we can achieve enhancement on our build and provide customer satisfaction.
The definition of Agile is to move ahead with the condition, so the life cycle deals with upgrading the current method in use. Agile model deals with these processes but are processed every now and then to update the existing feature.
Agile Model Diagram -
This clearly depicts how it is different from the traditional waterfall model and how it has overcome all the problems that one might face in waterfall model.
Thanks