Attempts at succinctly defining Agile development – including my own – have proven difficult. In an effort to be accurate and complete, some definitions end up incorporating a lot of concepts, like the principles and values of Agile development along with the mechanics of Agile execution. As a result, the definition becomes very descriptive and wordy.
Other definitions are so short that they are vague and incomplete. What good is a definition if it doesn’t provide clarity about what is being defined in the first place?
The following quotes are just some of those that I’ve come across that have been used to describe Agile development for others:
“Agile is a framework rather than a methodology.”
“It is a set of principles rather than a methodology.”
“Agile is not any single one thing.”
“Agile is 4 values and 12 principles, with frameworks that adhere to those values and principles.”
“Agile is a philosophy.”
“Agile is what the team makes of it.”
Confused yet? Is Agile development a framework, methodology, guideline? Is it something or nothing?
Agile resists definition because it is non-prescriptive, and this drives some people nuts. But while Agile development isn’t prescriptive in the sense that teams develop software using a paint-by-numbers approach, a framework like Scrum does prescribe key roles and boundary conditions involving those roles. Scrum provides just enough structure to guide a team, but not so much that it stifles initiative and innovation.
Here’s an accurate and descriptive definition of Agile development from Scott Ambler:
“Disciplined Agile software development is an iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by self-organizing teams within an effective governance framework with ‘just enough’ ceremony that produces high quality software in a cost effective and timely manner which meets the changing needs of its stakeholders.”I believe that it is accurate to say that Agile development is a methodology. Agile development encompasses a variety of methods that support the values and principles of the Agile Manifesto, with a specific implementation like Scrum or XP being a method. Even this is complicated because Ken Schwaber and Jeff Sutherland, the co-creators of Scrum, are adamant about calling Scrum a framework.
In the end, it is more important to have the conversation(s) about what it means to be Agile to you and your organization. And be prepared to adapt your understanding as you learn through experience and continued education. You don’t want to wind up supporting the Manifesto for Half-Arsed Agile Software Development.