Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
The Manifesto for Agile Software Development reads, in its entirety, 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.
- Agile Adoption Patterns: A Roadmap to Organizational Success by Amr Elssamadisy (2008)
- Agile Estimating and Planning by Mike Cohn (2005)
- Agile and Iterative Development: A Manager's Guide by Craig Larman (2003)
- Agile Project Management: Creating Innovative Products (2nd Edition) by Jim Highsmith (2009)
- Agile Retrospectives: Making Good Teams Great by Esther Derby and Diana Larsen (2006)
- The Agile Samurai: How Agile Masters Deliver Great Software by Jonathan Rasmusson (2010)
- Agile Software Development: The Cooperative Game by Alistair Cockburn (2006)
- Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin (2002).
- Agile Principles, Patterns, and Practices in C# by Robert C. Martin and Micah Martin (2006)
- The Art of Agile Development by James Shore (2007)
- Becoming Agile: ...in an imperfect world by Greg Smith and Ahmed Sidky (2009)
- The Business Value of Agile Software Methods: Maximizing ROI with Just-in-Time Processes and Documentation by David F. Rico, Hasan H. Sayani, and Saya Sone (2009)
- Lean Software Development: An Agile Toolkit by Mary Poppendieck and Tom Poppendieck (2003)
- Managing Agile Projects by Sanjiv Augustine (2005)
- Practices of an Agile Developer: Working in the Real World by Venkat Subramaniam (2005)