Agile methodology is a dynamic project management approach to software development and implementation. Within a few years of its inception, Agile methodology has become popular because it is both developer and customer friendly. This is because—unlike the traditional Waterfall approach—Agile methodology is an adaptive approach that permits changes and modifications to be incorporated into the overall project plan at multiple points.
The hallmark of Agile methodology is the incremental and iterative approach to software development. In other words, the entire project is broken down into various customer-valued features that are developed in small repetitive cycles so that these features are delivery ready at the end of each iteration. The frequent delivery of business-valued features is customer as well as developer friendly. This is because, first, the technical team and stakeholders work collaboratively; second, this saves time and money; third, constant feedback from stakeholders enables developers to continuously evolve the software; and last, this promotes lightweight framework with more emphasis on working software than on documentation.
One of the key practices is daily meetings in which the team members inform the entire team on the progress of the project and discuss issues faced and obstacles. This helps the team foresee potential risks and work toward resolving them. Thus, close communication among the team members, increased productivity, evolutionary approach and reduced risks are the four pillars of the Agile methodology. Agile can be best described in the following four basic principles enshrined in the Agile Manifesto:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan