Agile is a set of values and principles yet people are constantly asking about “Agile Methodology.” If you want to know more about agile values and principles, take a look at my video called “What is Agile?” In this video, we are going to try to answer “What is Agile Methodology?”
This is a bit of a trick question. A methodology is a body of methods, procedures, and rules for a particular discipline. But Agile values and principles explicitly avoid prescribing any particular methods or procedures. Agile doesn’t specify methods. Agile is not a methodology. This is probably a surprise for many people, but if you really take the time to look at the Agile Values and Principles you won’t find any methodology there. Instead you will find guidance on how to choose methods and procedures that will work best for your team.
The Agile Values and Principles don’t try to prescribe the way your team should work. Instead they focus on helping you and your team think and interact in ways that achieve Agility. Agility is the ability to continually adapt, the ability to constantly make improvements to the way you work.
Understanding this is important because it explains why Agile explicitly avoids being a methodology. If Agile specified a methodology it would necessarily be less…well…less Agile, less able to adapt to the specific circumstances of your team in your organization. So instead of telling you explicitly what to do, Agile gives you some values and principles that your team can use to *decide* what you should do.
So if Agile is not a methodology, what about all the specific things you hear about Agile teams doing? What about standup meetings, product demos, retrospectives, planning poker, etc.? While Agile is not a methodology, there are a number of methodologies teams can use to follow the Agile principles and values. Take SCRUM for instance. SCRUM specifies a number of specific ways for teams to work. This includes things like having daily standup meetings, fixed length sprints, product demos, and retrospectives. Many teams find SCRUM to be a very good way of following Agile values and principles. It provides a powerful methodology that assists in following Agile, but it is important to note that just following those ceremonies, doesn’t make a team Agile. They have to be following those ceremonies *because* it helps them align with the Agile values and principles.
(As a side note, some people will argue that SCRUM is a framework and thus more flexible than a methodology, but the line between the two is fairly fuzzy, nuanced, and often depends on whether or not someone has negative connotations of the word methodology. For the purposes of this discussion I’m using methodology, but in a positive sense–SCRUM gives you powerful methods and processes for getting work done. )
Extreme Programming is another methodology that you’ll encounter in software development. It includes a number of practices like test driven development and pair programming. The extreme programming methodology gives teams methods and processes that can be used to follow Agile values and principles. For example, Agile principles say that teams should leverage change as a competitive advantage, XP practices give methods for writing software that enable this.
So why do people still refer to Agile as a methodology? Usually because they are confusing Agile, the values and principles, with the methods and methodologies people use to follow those principles. If your team is truly trying to follow Agile principles and values, your methodology will evolve over time as your team grows and adapts. After all, that is what it means to be Agile!