Audio Version: Software Process and Measurement Cast 215
I was recently asked to be part of a debate that asked the question: “Is agile a philosophy or a set of techniques?” In my opinion, there were a number of layers of meaning that could be extracted from the question. Unfortunately the debate was canceled however I was able to talk through a number of the points that would have been raised with my learned opponent while jogging. I would have won . . .
My interpretation of the question has evolved as I researched the question and reflected on organizations that have been successful in embracing and maintaining change.
Premise: Agile is a philosophy, not just a collection of techniques
Dictionary.Com defines philosophy as “a theory or attitude that acts as a guiding principle for behavior.” Not a fan of Dictionary.Com? One of the definitions supplied by Merriam-Webster.com is “a theory underlying or regarding a sphere of activity or thought.” In simplest terms Agile, must be a philosophy because it fits the dictionary definition of the word. The framework for what we today call agile is defined by the Agile Manifesto which was published in 2001. The Manifesto is composed of a set of four value statements and twelve principles. The values provide the rough outline of what provides worth or utility when developing software from which the principles provide guidance on how to achieve value and utility effectively.
A technique is defined by Dictionary.com as “the body of specialized procedures and methods used in any specific field, especially in an area of applied science.” Pair programming, planning poker and stand-up meetings are procedures and methods. While techniques direct specific activities, techniques in their own right do not provide the guidance needed to know how and why to apply any individual technique or when experimentation or adjustment might be needed to address context.
The twelve principles that are part of the Agile Manifesto (while not as famous as the sound byte sized value statements) are critical to making agile a philosophy. I suggest a quick review of the twelve principles (link to the Agile Manifesto) if you think they are not oriented to influencing behavior. On my part, I would be hard pressed to identify any of the twelve principles that did not seek to guide the behavior of those who want to be agile. I believe that the principles, while written for people that develop, enhance and maintain software, can provide behavioral guidance to any other kind of team based work since agile represents a people based philosophy and most, if not all, work is people oriented. Therefore, if we accept that the twelve principles included as part of the core of the agile manifesto act as guidance for behavior, Agile therefore must be a philosophy.
Shocked? To my friends that use other frameworks such as the CMMI, I would suggest that all frameworks are by their nature a form of guidance and therefore a philosophy whether we recognize that fact implicitly or explicitly. As an example, each of the process areas in the CMMI are underpinned by one or more goals which guide how people are to behave when addressing that process area. The CMMI, therefore, must also represent the codification of a philosophy.
Before we determine whether the correct question is being asked, should we be worried that Agile is a philosophy? I would like to suggest that common development philosophies like Agile and the CMMI (if embraced) are a reflection of a philosophy called Thomism. Thomism, the philosophy of Thomas Aquinas, holds that all intellectual knowledge comes through the senses (as opposed to philosophies driven by the meta-physical). The scientific method instructs scientists and engineers to derive and test hypotheses from observations (substitute the word data if you like). In my opinion the scientific method leverages the same or a similar philosophical basis as Thomism. Should we worry that agile at its core represents the same philosophy as the scientific method? Perhaps we should be worried if it weren’t.
Is Agile a philosophy? Of course it is; however, I would like to suggest that the unasked question hidden in the premise is whether an organization will get more benefit from Agile (or the CMMI for that matter) if the organization adopts the agile philosophy not just the techniques. While the answer is yes, I think we would have far less unanimity in the community on that account and in two weeks we will explore the answer!