In Waterfall Model, the flow of processes is seamless with one following another until the end. Beginning with planning, followed by design, development, testing and culminating in deployment. Any changes down the line are taken care of in the maintenance phase. This is probably the oldest methodology of software processes.
In Agile Model, as discussed in earlier posts, the processes in Waterfall Model are repeated iteratively in quick successions with multiple deployments. Issues and changes identified are accommodated in the iterations. In the software world, this is a rather new approach to development.
So, big question arises, which model is better?
The answer is – both have advantages in certain situations. Based on my experience in working on both models, when a fresh deployment is needed Waterfall Model is preferred because the milestones are clear and changes are fewer. It is easy to plan for a long haul in advance because the principles do not as the transactions before deployment is not there. It is only when the processes are in place, the flow of data begins (within the scope of development). However, in the next stage – the enhancement phase where changes are frequent due to changes in business – the Agile Model facilitates the ability to accommodate frequent changes and implement them quickly.
So, the keyword is how dynamic is the business. If it is dynamic, Agile is a better model. If it is static, Waterfall is the way to go.