Monday, September 10, 2018

Why one size of "Agile" can't fit all

Have you ever wondered why there isn't one "Agile" approach that works everywhere? After all, being agile is about being flexible - so why not invent a sufficiently flexible method that's suitable in every context?

This model is an attempt at explaining:

Your context defines your approach!

The domain of Understanding

On the horizontal axis, we have the domain of "Understanding". It's what we know and understand about the things we do. Discounting dumb mistakes, we can just assume that we put our understanding to good use.


In the Known, we're very clear what the outcome of our actions is, and therefore, which action is best - for example, what happens when we produce 100000 more of the product we have already produced 1000000 of, that is: mass production, factory work.

Working with Known domain basically centers around doing the same thing as good as we can.
We try to minimize cost and effort in our attempts to maximize productivity.

Dwelling in the Known is about optimizing.


In the Unknown, we either lack prerequisite information on the consequence of our actions - or there are simply too many possible outcomes to predict which one we will receive.

Working with the Unknown tends to boil down to eliminating potential undesirable outcomes until the only possible outcomes left are desirable. It means doing variations of things we know until we know what works best - and what doesn't.
We try to maximize the result of doing something successful while systematically evading the things we know to be unsuccessful - we explore.

Dwelling in the Unknown is about exploring.


The Unknowable is the realm where regardless of how much information we had, we still couldn't predict the outcome. The Unknowable is full of opportunities - and that's what makes it attractive. Untapped business opportunities only reside in this domain. A new board of Minesweeper would be a case of the "Unknowable".

An example of the Unknowable would be next week's lottery numbers - a future action has to occur before we have a chance of knowing the result of our action.

Working with the Unknowable is taking best guesses at what might potentially work and hoping that we don't hit on something we can't recoup from. It means trying out something we haven't tried before - and learning from experience.

Dwelling in the Unknown is about discovering.

The domain of  Risk

On the vertical axis, we have the domain of "Risk", or "Control". It's how well we can influence the outcome of our actions, how likely a predicted result can be produced. Again, discounting dumb mistakes, we can just assume that our controls work as designed.


Working with controlled processes, we would deterministically get what we bargained for. For example, dropping a needle will always result in a needle on the floor, everything else would be outlandish.

Controlled processes can be fine-tuned. We try to eliminate any activity that doesn't result in the desired outcome and introduce more activity that does get us the desired outcome.

Dwelling in the Controlled is about simplifying.


There's a lot of uncontrolled stuff - things that either simply aren't likely enough to warrant a control action or things that are off our radar. A typical example of the Uncontrolled may be the likelihood of a Nuclear Meltdown causing fallout and radiation poisoning our Lead Developer. We might simply choose to keep this risk uncontrolled, because investing into ABC-Suits for our office doesn't sound like the most sensible way of spending money.

Uncontrolled factors in our processes are risky. There are risks we choose to take knowingly - and risks we simply forgot about. While it's haphazard to take high impact risks with simple mitigation plans, we can never eliminate all risks we can think of.

Uncontrolled processes can be improved by reducing the impact of variation.

Dwelling in the Uncontrolled is about standardizing.


And finally, there's the uncontrollable stuff. Those are things we couldn't control even if we tried to - for example, flu season. We can get flu shots, but we can't guarantee this year's virus isn't resistant to the vaccine. We have to live with the Uncontrollable and hope it doesn't kill us.

At best, we can try to pull things from the Uncontrollable into the realm of the Controllable. That may work best by changing our strategy to not rely on uncontrollable things.

Dwelling in the Uncontrollable is about stabilizing.

The Domains

Having explained the model, let's take a really short look at each of the quadrants:


Competing in this area, the winner is determined mostly by efficiency.

Known & Controlled

Here, we can reliably plan and trust in the plan's execution. The best way forward is to create the best plan we can think of and follow it through.
Given two competing organizations, the one with the most efficient process wins.

Known & Uncontrolled

Our plan may be disrupted by day-to-day events, slowing us down, leading to extra costs and causing inefficiency. The best way forward is to learn from mistakes, improve and return to the plan.
Given two competing organizations, the one who is best at eliminating errors wins.

Known & Uncontrollable

Our plan can also be disrupted by events outside our sphere of influence and control. This may throw us off track, requiring in major efforts to return to plan. The best stratetgy is to have a watchful eye when something Uncontrollable infringes on our process and design a way to make the process resilient to identified disruptions.

Given two competing organizations, the one with the most resilience wins.


Competing in this area, the winner is determined by speed of learning.

Unknown & Controlled

Having a clear way of taking steps to reach something that is either useful or not - and we use simple experiments to determine our path. We make the Unknown Known, then optimize.

Given two competing organizations, the one who can turn experiments into results faster wins.

Unknown & Uncontrolled

There is unpredictability in both process and in the results. Our best strategy forward is one of small steps to minimize the risk of having variance leading to undesirable outcomes. We build upon good results and backtrack from bad results.

Given two competing organizations, the one who is most scrutinous at dealing with problems wins.

Unknown & Uncontrollable

There's a constant danger that we're thrown off-track and we don't even know what the right track is., much less what the "best" track would be. We need to safeguard our path with measurements, as the path might collapse right under our feet. We constantly need to innovate in order just to maintain that which we have.

Given two competing organizations, the one that can adapt to circumstance best wins.


In this area, those who happen not to stumble upon anything of value lose by default. On the other side, there's no guarantee of winning, either.

Unknowable & Controlled

Science is full of the Unknowable. We hypothesize, we explore - and we see if we're right. The most solid guesses lead to something we can build upon. When we discover something of value, we still need to explore the context until we have something workable.

There is no predictable or reproducible winning strategy, but if we have a means of turning discovered value into profit, we're more likely to succeed.

Unknowable & Uncontrolled

Being exposed to an unfamiliar environment requires us to make the best use out of whatever means we have. If we can't manage to get into familiar terrain, we might at least familiarize ourselves with the terrain, then work from there.

Those who lose have no success story to tell, while those who won oftentimes make it look like their success was planned all the time.

Unknowable & Uncontrollable

There is no predictable strategy for anything. We can try something - and if it works, we try more of it to see if it still works. And just because something didn't work, it doesn't mean it was bad. It might have been the right thing turning out wrong.

In this realm, everyone who manages to survive is a winner.


What does "succeeding with agile" mean? It depends on what you're looking for.
Those who operate in known, controlled circumstances will be much more successful with improved planning - while those who operate in unknowable, uncontrolled circumstances are served best by not wasting time on planning.
Those who try to adapt to external risk in known processes need a different strategy than those who explore in a lab environment.

None of these environments is pure. Oftentimes, we have some things we know and control, while other things are neither known nor controllable. It would depend on what the ratio of these areas is in our work - and where we want that ratio to be.

What does that mean for agility?

We need to determine which circumstances we are in, then tailor our approach to doing that which is most likely to be a winning strategy. And we must know many different approaches, in order to select that which helps us best.

We're not served well by introducing Scrum into a Known/Controlled environment that would perform better with a linear approach - and we're not served well by introducing SAFe into an environment that would have their problems solved by Six Sigma. Likewise, we're not helping anyone by putting Kanban on top of an undetermined, unpredictable process.

What is appropriate where - fully depends on where we are and where we want to go.

And what does that mean for agile practitioners?

There is no universal context that makes any approach valid or invalid. As practitioners, we must:

  • Leave our dogmatism
  • Tailor "agility" to context
  • Understand and remove hindering constraints
  • Acknowledge Unknowns and seek help
  • Remember that "agility" isn't the end goal
  • Recognise that there is more to "agile" than "agile"

And that's why we came up with Agnostic Agile.

1 comment:

  1. Good post. But the real reason is "Agile" is more an attitude than a doing. There is no "doing" that works everywhere. But there are a set of principles and laws that do - Lean.

    The challenge is people want an answer to the "what do I do question?"
    Scrum and Agile have been conflated and that's causing a lot of problems. Scrum is a framework having nothing to do with software development.
    Why does anyone assume it _is_ Agile as in they are equivalent.