To many in the agile space, “consistency” sounds too much like “Taylorism” and so it is shunned. This is unfortunate because there is value in consistency. For example, if teams are to work together well, there must a consistent way of making agreements with each other. Consistency helps teams avoid reinventing the wheel when effective practices are discovered.
The Disciplined Agile promise, accelerate value realization, notes that consistency helps with value realization,
We use the term value to refer to both customer and business value. Customer value, something that benefits the end customer who consumes the product/service that our team helps to provide, is what agilists typically focus on. This is clearly important, but in Disciplined Agile we’re very clear that teams have a range of stakeholders, including external end customers. Business value addresses the issue that some things are of benefit to our organization and perhaps only indirectly to our customers. For example, investing in enterprise architecture, in reusable infrastructure, and in sharing innovations across our organization offer the potential to improve consistency, quality, reliability, and reduce cost over the long term.
Consistency is good but is should never be rigidly prescribed. It can inhibit innovation, looking for better ways to do things in different situations, improving continuously.
The question is what needs to be consistent and what can be varied to fit the situation of a team?
One problem is that agile has unintentionally reinforced a free-wheeling attitude: as if saying “people over process” means “lack of discipline is OK.” Or as if self-organization means “teams can do whatever they want”.
Organizations sometimes try to address this, to achieve consistency, through the adoption of frameworks.
Frameworks Fail to Achieve Consistency
At the team level, scrum is a natural choice for a framework. The Scrum Guide (2017) says that roles, events, artifacts, and rules are immutable and then, as a lightweight framework, it leaves it up to the team to fill in their practices. So, while the framework is consistent, what is put into it often is not. This immutability often works against Scrum when it is used in situations where it is not ideal. Some variation is needed but few guidelines are provided; what could be minor deviations from Scrum to make it work in a particular context often result in abandoning entire practices.
The reality is that some methods and actions need to be consistent but not all of them. How do we know which is which?
Why and How to Achieve Consistency
Consistency should be viewed as a means to an end. That is, always keep in mind what you are trying to achieve with it. Not everything has to be consistent. If teams are stable, then the methods used inside teams can vary as long as teams interact with each other and with product management in a consistent manner. If teams are not stable (and this presents its own set of challenges), then consistency across all of the teams may be useful so that people can move between teams more readily. In any event, consistency in team collaboration is important, to help achieve the goals of the organization.
To understand where consistency is needed, ask the question: “What challenges is inconsistency causing?”
Effective consistency rests on three pillars.
- Alignment around value realization consistent with the mission of the organization
- Agreements in how we are going to work with each other
- An understanding of the intention of practices being used
Pillar: Value Realization
An overarching goal in business agility is to realize value predictably, sustainably and with high quality.
Different companies define value differently based on their mission. For example, a financial company might focus on retaining assets, improving customer experience, lowering costs, compliance and lowering risk. Whereas a not-for-profit organization providing meals and housing for homeless may focus on number of meals served and beds provided, the amount of monetary donations received and the value of non-monetary donations.
However, value is defined, attending to achieving value is something everyone in the organization should align on. Therefore, the definitions must be made clear.
Pillar: Agreements on Working Together
Agreements are promises about how we are going to collaborate and work together, and explicit agreements on how to collaborate becomes increasingly important with an organization’s scale.
The first step towards consistency is making agreements with each other about how to work together, within teams, between teams, and across the organization.
To help with this, the Disciplined Agile promises define a collection of behaviors that enable effective and professional collaborations.
Pillar: Intention of Practices
The third pillar is understanding what the intention of the practices are that are being agreed to. With a shared understanding of the intention and objectives of practices, teams can decide how they best can meet those objectives within their own context.
Example: Consistency in Estimation
Estimating stories has several purposes. It ensures that people involved have a common understanding of the problem (wide swings in the estimate of a story indicates lack of shared understanding). It can also be used to compute the velocity of the team which is useful to forecast feature delivery.
If a team is consistent in their method of estimating, the actual method that they use – whether it is planning poker or team estimation – is up to each team to decide.
Example: Consistency in Daily Coordination
Daily coordination is crucial for internal collaboration within teams, but how each team does it should be left up to the team to decide. Some focus on the individuals and others focus on the work taking place. The point is that teams should coordinate but how they do it should be left up to the team.
Consistency in the Agile Work Itself
Frameworks are so embedded in Agile culture that when we discuss consistency, we invariably talk about the practices and rituals mentioned in the frameworks, such as how to plan and coordinate work across teams.
Equally important in achieving consistency is the actual engineering work that takes place within the framework by the teams, such as requirements capture and test automation. Teams that have a consistent method of identifying what to work on, and how to do it, work better together.
Putting It All Together
It is essential to take advantage of a few tenets of lean thinking to achieve the right degree of consistency. This should not be surprising since lean inspired agile.
Here are a few key tenets of lean to focus on.
- The ecosystem people find themselves in has a significant impact on the quality of their work.
- It is important to attend to the flow of work and eliminate delays in workflow and in getting and using feedback.
- How people work together must be visible so that it can be used a basis for improvement.
- Management’s role is to work with the teams doing the work to improve their ecosystem.
Developers, and people in general, like to know, “What’s in it for me.” Merely demanding consistency will rarely achieve it. Making it clear as to the why and how it works for them makes it considerably easier.