What is Agile Software Development?
It's a set of values, principles, and practices for sustainable software development
- at its core, it is a mentality of expecting and embracing change and being able to effectively adapt
- and on a fundamentally related note:
- code that is Easy To Change is the foundation of a team's ability to be agile
Some key sources:
- Extreme Programming
- a development methodology seminal to Agile
- Agile Manifesto (2001)
- the official manifesto along with authors, signers, and a story of how the manifesto came to exist
- Craftsmanship Manifesto (2009)
- a followup to the Agile manifesto after some years of semantic diffusion
- it includes emphasizing quality software as a fundamental ingredient
- Agile Software Guide
- a high-level overview along with collections of sources referenced in relation to each section in the guide--essence of Agile development, technical practices, collaboration, problems (semantic diffusion)
I also appreciate this blog post by Robert Martin--a reminder of the history behind Agile and clarification of what Agile is and is not:
- the blog post
- Agile was about software, started by programmers
- it's about quality software that enables software teams to effectively and sustainably produce value by easily adjusting to changing business requirements
- it is not about project management