Often the success or failure of a software development project depends on deploying the appropriate methodology. While Agile has many benefits, and appropriate for many projects, it has its limitations as well. Therefore, employing Agile Methodology does not guarantee success. For example, Agile Methodology, when applied improperly, or without understanding structured software development techniques, can lead to an undisciplined and undocumented run-away project. As developers go through iterations of refinements and unplanned complexities, Agile’s weaknesses become more pronounced, and the customer becomes unhappy.
On the other hand, a disciplined Waterfall Methodology is appropriate when requirements are well documented and straight-forward, the technology is familiar, and there are relatively few key users of the application. In such cases, the Waterfall approach gets right to the point. The designers know exactly what to do, and the developers are able to code to the design with relative ease. There is no need to go through continuous iterations, except to address defects. The overall mission is accomplished in relatively short order.
The important point is that each approach has its own unique challenges and advantages. Deciding which one works best for your project is one of the most important decisions that will determine if the project can be completed on schedule and within budget.