Agile in one sentence:
Working with what you do know to discover what you don’t know.
If you know everything there is to know and you can plan pretty smoothly without hitting any bumps and roadblocks, you don’t need Agile.
If surprises can be prevented with the right level of expertise: then you don’t need Agile, you need expertise.
However, that’s also where our prickly problems begin: our expertise.
The first problem is that we believe we know more than we do.
We’re not as smart as we think. The real world has its way of throwing unexpected curveballs at us. These unexpected projectiles will require us to reconsider and rethink our plans completely. There’s nothing we can do to prevent it from happening.
The second problem is that when we don’t know things, we turn inward to analyze and predict what we don’t know.
Prediction doesn’t work for unknown unknowns, because they’re the things we can’t see coming before starting the work. We’re unable to predict everything and big surprises lurk around the corner, making all our plans completely obsolete.
As a result of all this uncertainty and risk, we try to make our plans even smarter. This futile attempt to inject our plans with false certainty results in noise and over-fitting so our plans become disconnected from reality.
The problem is that the fundamental issues we will face can only be encountered when we put in the work and stumble upon those real-world problems. Because we spend so much time making our plans to prevent bumping into surprises, they will act as an anchor that stifles our ability to respond to the changes we actually will encounter.
Repeat after me: the more we try to prevent sucking at predicting, the more will guarantee to suck at adapting.
The third problem is that when we lack expertise, it may appear like we don’t know things, but we actually should have known better. Don’t let Agile be an excuse for sloppy work, and make preventable surprises acceptable. Expertise still matters and there are things we can definitely see coming.
The fourth problem is that we suck at keeping things simple. When we face a problem, our default approach is to come up with solutions by adding instead of subtracting. We don’t need scaling frameworks. We need to get rid of crappy existing processes and structures.
The fifth problem is that we hate losing what we already have. Our brain is hard-wired to value losses more than gains—it’s called loss aversion. When we overcomplicate solutions, we set ourselves up for failure in the future because we’re highly unlikely to get rid of complicated things due to loss aversion.
The sixth problem is that our organizations are not designed to work with what you do know to discover what you don’t know. Organizations are often designed to provide the illusion of control and provide information to leaders so they can tell us what we should be doing. They’re designed to give instructions to people, not to let people make decisions based on the best and latest information.
In short: we should focus on emergence over premature optimization.
Emergence over Premature Optimization
Premature optimization is one of the worst enemies of emergence. When we make decisions in advance, we limit our degrees of freedom to respond to what unfolds.
Organizations often have many departments and reasons for requiring premature optimization. It might be the way they do budgeting and planning or to appease leaders who crave the feeling of being in control. When we cave in to premature optimization, we actually constrain and impede emergence and discovery, which is crucial to coming up with the best solutions to complex problems.
Agile doesn’t mean we don’t know what we’re doing. It means we know what we’re doing, but we don’t know what we must do.
Unfortunately, many leaders don’t understand this crucial difference.
Surprises are conflated with a lack of expertise or planning, which actually means you’ll be forced to do more planning and analysis. Which only makes things worse.
You will have even more surprises due to premature optimization, solidifying your plans and decisions at the moment when you know the least - before starting the work.
Our organizations often put us on the road to premature optimization, to make decisions at a point in time when we know the least, so we provide the certainty everyone craves.
Instead, we should embrace the uncertainty and keep our options open. This feels incredibly scary, but the alternative, limiting our options and providing false certainty, is even more scary.
The deceptive part is it may not feel that way at all.
Great one, again. Thanks for being such an inexhaustible well of good thinking and writing.
This is excellent. I may use this as a springboard for my next retro; just have to think how to leverage the concepts.