Agile is a set of values and principles, yet people are constantly asking about “Agile Methodology.” 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 the 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. 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 enables 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!