The agile methodology is an evolution in the software development process that enables software teams to move from the conventional waterfall model to something much more dynamic.
It eliminates the “waiting” that teams experience in the waterfall model to allow various moving pieces to interact while one phase is going on. Collaborative efforts, successful planning and execution, and flexibility to tackle project and changes head on are all promoted through this approach.
The agile method is more analogous to how things actually work in today’s software world, where nothing is black or white. agile developers often say that software development cannot be made on an assembly line, because everything cannot be synchronized and predicted.
“Never limit the innovative” is a resonating tag that runs in developers’ minds when thinking of agile. Development is done in small iterations, usually bi-weekly sprints where use cases are created, developed, and tested. At the end of each of these sprints, there is a shippable, deployable product available. Changes also can be incorporated dynamically and then delivered in the next sprint drop.
This cannot happen in the Waterfall model until the initial design and changes are fully implemented and deployed. With the agile method, developers are expected to be, well, agile. More often than not, requirements, design, development, and testing phases can all happen in the same sprint.