As always I keep hearing people talking about Agile ‘methodology’. Many of them do it because of ignorance. They have heard about the word, have read someone’s article or LinkedIn post and now they seem to know Agile. Whether it is Agile with a capital ‘a’ or not, they don’t know; or don’t care. After all they know about ‘agile methodology’.
Methodology or not?
Let’s look at the definitions. We are not studying etymology, but understanding the meaning of the word will guide this discussion. I looked at dictionary meanings as well as Wikipedia ones. Wikipedia is a good source of information, but we should be aware that it is not an utmost authentic source of knowledge. The reason I looked at Wikipedia definition is because it provides what we call common knowledge. Unless you are a (good) tester, chances are that you wouldn’t complain or question the definition. If you do, then you would probably investigate and hopefully change the definition in Wikipedia.
The Wikipedia definition of methodology:
Methodology is the systematic, theoretical analysis of the methods applied to a field of study. It comprises the theoretical analysis of the body of methods and principles associated with a branch of knowledge. Typically, it encompasses concepts such as paradigm, theoretical model, phases and quantitative or qualitative techniques. (https://en.wikipedia.org/wiki/Methodology)
In other words, a methodology is a way of doing certain things that is widely accepted.
Agile does not define a specific way or custom for doing things, especially developing software. It does not prescribe anything. It is a widely accepted word, mostly mistaken for a methodology, but it is not a particular way of doing things.
When I typed ‘framework’ in Google, the definition that I saw was: “a basic structure underlying a system, concept, or text.”
Wikipedia definition of software framework is a complicated one and hence I decided not to discuss that here. I did not see value in that. Instead, I offer an easy definition:
A framework is a structure around an idea or concept that provides enough details so that it can either be reused as-is or be further developed by different people in different shapes.
The above definition makes SCRUM is a framework because it prescribes a way of doing things. If you do not do Sprints, you don’t do SCRUM. Even XP ‘practice’ is somewhat prescriptive with its values.
Agile has no structure of its own. It is a like an ice cream parlor where you go and ask for a specific flavor but do not ask that you would like to eat the parlor. (I have read this analogy before, but not sure where).
Agile as a Value Center:
‘Agile is a set of values.’ Partially correct. But Agile is not just a set of values.
Agile guides other methods, frameworks, approaches and practices through its values and principles. Different frameworks follow different values but they still follow the Agile principles. I mentioned XP values (the mnemonic I use for this is SCCRF). SCRUM or DSDM may follow different values than XP, but their values still fit well into those core values and principles. Same applies to all other flavors, methods and approaches of Agile. They all sit under the same umbrella, the Value Center.