Agile software development describes a set of values and principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change.
The Manifesto for Agile Software Development, is a formal proclamation of four key values and 12 principles to accomplish software delivery through iterative and people-centric approach.
1. Individuals and interactions over processes and tools.
2. Working software over comprehensive documentation.
3. Customer collaboration over contract negotiation.
4. Responding to change over following a plan.
1. Satisfying ‘customers’ through early and continuous delivery of valuable work.
2. Breaking big work down into smaller components that can be completed quickly.
3. Recognizing that the best work emerges from self-organizing teams.
4. Providing motivated individuals with the environment and support they need and trust them to get the job done.
5. Creating processes that promote sustainable efforts.
6. Maintaining a constant pace for completed work.
7. Welcoming changing requirements, even late in a project.
8. Assembling the project team and business owners on a daily basis throughout the project.
9. At regular intervals, having the team reflect upon how to become more effective, then tuning and adjusting behavior accordingly.
10. Measuring progress by the amount of completed work.
11. Continually seeking excellence.
12. Harnessing change for competitive advantage.