This weekend I read the article “My Definition of Agile” by Chris McDermott. The article describes Agile as:
A way of working that accepts we can’t know everything in advance and things we do know about might change. We manage this by intervening in social systems through the use of processes that promote learning which enable organisations to adapt quickly when new information emerges.
I like this definition, especially the way Chris explains every part of it.
It made me wonder what other definitions of Agile there are available. Although the term “Agile” in the context of software development is quite well known, the definitions vary. I’ve shared some of them below.
- A set of values and principles (Agile Manifesto)
- A way of developing software that reminds us that although computers run the code, it’s people who create and maintain it (The Agile Samurai).
- The collection of principles that the methods for Agile software development have in common. Agile refers to the mindset, the convictions and the preferences expressed in the Manifesto for Agile Software Development (Scrum – A Pocket Guide).
- An attitude and approach to software delivery that is lean, fast, and pragmatic (The Agile Samurai).
- Agile is a movement, a group of people working together to advance these shared values and principles.
- Don’t try to get it all right from the beginning (iterative) and don’t build it all at once (incremental) – Spotify/Crisp.
- The ability to rapidly and deliberately respond to changing demand, while controlling risk.
- The courage to be honest enough to admit that building software is complex and it can’t be perfectly planned since requirements change.
- Agile is about adopting a set of values and principles that require change in people’s behavior and the culture of an organization (Being Agile).
- “A lifelong commitment to becoming a learning organisation, Where we continually review and refine our methods of working at all levels based on evidence and feedback. Where decision-making is visible, genuinely collaborative and encouraged” (Christian Miles)
- A mindset to deliver value faster and continuously improve the way doing it (via Peter Gfader)
- Reality Driven Development (via Arnoud LHote)
- Agile is about reacting to unpredictability with incremental & iterative sprints.
- Finding out where you are, take a small step towards your goal, adjust your understanding based on what you learned, repeat (via PragDave)
- When faced with two or more alternatives that deliver roughly the same value, take the path that makes future change easier (via PragDave)
- The ability to respond effectively to a change without collapsing (via Luca di Scala)
- “Agile is ordering tapas till you’re full, not ordering a 10 course meal” – Neil Killick
- “Agile is delivering value to customers faster and minimizing bureaucracy.” – Alistair Cockburn
- “Agile isn’t about doing more work in less time: it’s about generating more value with less work.” – Steve Denning
“Agile is about getting fast feedback and being technically and mentally prepared for changing direction.” (via Kanban in 30 Days)
“Agile is a way of minimising risk; the risk that customers no longer want what we originally thought they wanted.” (via Kanban in 30 Days)
So… what’s your definition of Agile?