Periodically, I’m at meetings or conferences and hear someone saying something like: “There is no definition of ‘Agile’. It’s a bunch of practices and techniques and methods, but no real definition exists. To that, I always say, “Hooey!”
Well, I don’t use that word. Instead I point out that before the Snowbird meeting in 2001, there was no definition for "Agile" with the capital "A". The Values in the Manifesto that came out of that meeting and the formulation of the Principles that followed shortly thereafter are, to me, what define "Agile." Matters of method vs practice vs technique are another issue, but the Values & Principles are what represent a definition to me.
Now you may say these are too vague. Indeed, I have had folks tell me their (or their clients) consider the Manifesto to be “content-free.” That is, the four Values are statements that hardly anyone could disagree with as generally desirable, but they have no substantive meaning. In asking further about this, it usually trails back to the Values & Principles not saying how to do anything, i.e., no specific practices or techniques are included.
Now, lots of definitions don't tell you how to do what the word(s) define. But the better explanation is simply that the Manifesto came together based on the common beliefs of many practicing individuals – each with their own (often related or similar) practices – about how software should be developed. As Alistair Cockburn as noted, this means Agile “has no ‘center’: There is no “center” to agile development. There’s only proximity of similar-but-different personal value systems coincidentally producing similar recommendations.
This does not, in my estimation, mean the Values and Principles do not serve to “define” Agile. They are, to me, a touchstone against which to measure what is done, not a description of how to do. Practices and behaviors that more closely adhere to the Values and Principles are more “Agile” than those that drift further from them. Indeed, my belief in this is why one of my first posts on this blog was entitled “Agile Training - Values & Principles Are Essential”.
[A Side-Note on Agile Assessment Models --
It’s also for this reason that I believe any form of assessment model related to an organization’s readiness for or practice of an Agile approach must use the Values and Principles as the top-level concerns. If you are familiar with the (CMM®/)CMMI® model, you know there are (Key) Process Areas, followed by Goals, followed by Practices. From any Agile perspective, the Values and Principles would be, in effect, the (K)PAs. The various methods’ practices and techniques would be the Practice level where what is stated are recommended ways to achieve the goals, but not required, per se. What is missing in Agile is a clear statement of the goal-level.
In performing an assessment, an organization would show that they achieve the Goals by following some identifiable practices/techniques. The Goals would need to be satisfied, but a variety of practices might be used to do so, though a given assessment model could offer examples of practices and techniques that would be considered effective in doing so.
I mention this, because there are efforts to define and use such Agile assessment models already and I am not sure they can work as well as would be hoped without such a set of Goals having been clearly defined. In some instances, it appears models have established practices as goals, i.e., if you do this or that practice, you get some sort of “points” for that. I would hope model creators spend time coming up with a clear statement of the Goal level.]