What is An Agile Methodology?
By JJ Vega on 04-09-2024
Agile is a philosophy of software product development.
It emphasizes the following:
- quick feedback from customers
- frequent interactions between stakeholders in a project
- an emphasis on working software over comprehensive documentation
- adapting to change over clinging to plans.
With that said, a philosophy is not actionable on its own. It is a north star that aids decision making and the selection of tools to achieve a goal.
No theory is useful without a set of practices to bring it to life. This is where methodologies come in.
A methodology is a system of methods used in a particular area of study or activity.
Building on our definition of Agile, we can then say that an Agile methodology is a system of practices used to:
- enable effective software development
- with an emphasis on relationships
- adaptation to change
- and working software
For example, you may be familiar with the Buddhist spiritual tradition. There are tons of writings that explain the core ideas and beliefs of Buddhism. A Buddhist methodology would be the system of devotional practices that enables Buddhists to live out those beliefs.
Example practices could be meditation, spiritual talks, and readings from sacred texts. As each practice is repeated, more of the core ideas are tangibly expressed in the life of the practitioner.
The same is true for Agile methodologies. They are practices that usually take the form of meetings, roles, and artifacts. Each of these components are repeated over time.
As they repeat, the team and organization practicing them will embody Agile philosophy more and more. An Agile team or organization can let go of the practices over time, because their way of being will be Agile.
This is difficult to pull off in practice, but it is possible. This is the point of the "Agile transformation" that many coaches and consultants offer.
What Are Common Agile Methodologies?
When we talk about “Agile methodologies”, the most common names that come up are:
- Kanban
- Scrum
- Lean
- SAFe
Some of these are methodologies, because they provide specific practices that support Agility.
They are sets of practices that capture the spirit of Agility.
Some of them are strategies. They offer operating principles (like limiting work in progress) but do not give practices to express those principles.
Scrum As An Example
Scrum is an Agile methodology because it prescribes practices.
Each practice is intended to instill Agility in an organization.
It's important to mention that Scrum pre-dates the creation of the Agile Manifesto.
However, its creator was one of the architects of the Agile Manifesto.
This is a chicken/egg scenario - which comes first? The philosophy or the practices?
In the case of Scrum, the practices came first, and a philosophy emerged. Scrum has set roles (jobs), events (meetings), and artifacts (deliverables that assist in organizing work).
For example, Scrum defines a Sprint, which is a short period of time between one week and one month in which work happens.
Each Sprint has a handful of meetings with names, lengths, and purposes.
Just like in a meditation practice, sticking with the recommended parameters produces the best results.
This is why Scrum is a methodology - it offers a clear system of practices that have the best chance of leading to an Agile team.
However, not every name on the list above is a methodology.
Some are strategies.
Methodology vs. Strategy
Let's take Kanban as an example.
There are some who would call it a methodology. However, this is incorrect.
It is a strategy.
The word "strategy" has several definitions, including:
a plan of action or policy designed to achieve a major or overall aim
The key distinction here is in level of detail.
Kanban is a strategy because it offers a set of policies that teams can use to manage workflows.
Scrum is a methodology because it defines a specific system of practices.
Scrum has clear roles, meetings, and artifacts.
Scrum is prescriptive and makes clear that if any of the components of its system is missing, you are not doing Scrum.
Kanban offers principles and defines what a Kanban system is, but does not give practices to implement a Kanban system. Kanban leaves that to the team to decide.
Kanban is less prescriptive, and could be implemented without Agile as a backing philosophy.
In theory, the same could be said for Scrum. That’s why talking about Agile, Scrum, Kanban, and other industry buzzwords can get so confusing.
Why Is This Important?
The Internet is flooded with a lot of mis-information about Agile.
This means that the level of discourse online about Agile is reduced to "framework wars".
Kanban vs. Scrum. Agile Methodologies vs. Scrum. Can a Scrum Master Also Be A Product Owner? Is Agile Dead? And so forth.
The limitation of this discourse is how it fails to elevate professional conversation.
We need better conversation to elevate how change agents in organizations are able to embody and practice Agility.
To have better conversations, we need clear language and distinctions on what Agile is and what it is not.
We also need to understand how Agile as a philosophy becomes embedded in organizational culture.
This happens through consistent practice that leads to more frequent collaboration, more working software, and more fluid adaption to change.
Without clearly defined practice, those Agile consequences are difficult to express.
What's Next?
In future articles, we'll go deeper into different methodologies and strategies, like Scrum and Kanban. We'll also talk about when it may be best to reach for one or the other when setting up a new team or transforming an existing team. We will also talk about when it is best to leave those practices out altogether and help the team decide how they will work best. Until then!