The agile software development framework is a set of development methodologies that encourage flexibility, collaboration and active response to change.
Agile software development offers an "adaptive" framework. Rather than planning the life of a project from beginning to end, agile software development professionals focus on adapting quickly to changing needs and new challenges.
A central feature of the Agile software development approach is the division of projects into small iterations that require minimal planning and are completed within short time frames. Each iteration incorporates all stages of the traditional development cycle, including analysis, design, coding and testing. Once an iteration is complete, it is ready for deployment.
Breaking down projects into iterations minimizes risks by providing greater flexibility and openness to change. Furthermore, it enables developers to provide clients with updates continuously, even after a product's release.
The agile software development framework was first introduced with the publication of the Agile Manifesto in February 2001. The manifesto, written by a group of software developers, reads as follows:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.