The Search for Predictability
The Search for Predictability
Surprises are a part of any technical project. What can be done to minimize and even react more effectively to surprises in our search for predictability?
Join the DZone community and get the full member experience.Join For Free
[Latest Guide] Ship faster because you know more, not because you are rushing. Get actionable insights from 7 million commits and 85,000+ software engineers, to increase your team's velocity. Brought to you in partnership with GitPrime.
Every now and then, I need to remind people what is the point of this agile thing. I know, I know, still they forget.
Agility is the ability of the organization to react effectively to changes in a volatile environment. The “more” agile the organization, it can cope better, faster to things thrown at it. (I put the quotes in there to remind ourselves that it’s not really quantifiable, or comparable. In case we forget).
Change is Coming
You’ve probably heard the term “Embrace change”. In order to embrace change, we need to understand that a) change is coming, like it or not, and b) we need to do something when it comes.
Embracing change is not really in our nature. Whenever our “fight or flight” survival mode is triggered, we wish it didn’t.
We don’t like surprises. In work life, most of them are not well received, and require more work we didn’t expect to put in. For example, a product owner that just learned that the project is being delayed, needs to go re-prioritize the backlog, negotiate delivery dates, all kinds of things that ruin the day. Or when the testers find a bug, the developers need to work on solving it, rather than work on that new found feature.
And even when we have a good surprise, others may not agree. The customer has agreed to drop the scope, so less work for us, yay! But that means more work and pressure for the next release, boo!
Our logical response to dealing with surprises is to prepare for them.
We plan. We analyze the problems we’re trying to solve. We learn about the new technologies we need to involve in the solution. We analyze the gap between where we are now, and where we want to go. And draw up a plan.
And when that plan meets reality and get demolished. And then we’re even more surprised.
Why Didn’t We Think That Could Happen?
Some of it is because we’re optimistic, a bias we’re suffering from, so it’s easy to get blind-sided. And even if we draw the perfect plan for everything that can goes wrong, we still get surprised. Another human trait- we can’t think of everything.
The logical conclusion many take is that: next time we need to plan more. Deeper analysis, more checks and balances, more documentation and contracts, so when the next time comes, we’ll be prepared.
The problem is that at some point, planning become over-planning. And that time spent planning comes at the cost of actually working on the problem.
And after that, we still get surprised. The predictability we continue to look, is laughing in our face. The only thing that is guaranteed to happen, is that we’re going to be surprised again.
Life is Really Uncomfortable
So what can we do?
The most important thing to do is decide what are the pain points. The second is treat those pains with something that relieves the pain, but doesn’t takes us off the main path of our goals.
For example if it’s the poor PO getting surprises all the time, we should provide visibility of where we are, so we minimize the risk of surprises. Daily meetings, a clear board that shows the important information and short feedback loops help.
Remember that our plan may be providing the PO with confidence, but also builds up the chance of surprise. Knowing the actual status reduces those big surprises to small ones. Small surprises, less work. Or less stress, because there’s enough time to fix.
If however, it’s those damn bugs that ping us, we need others mechanism: more automation, better testing strategy, and short feedback loops. Hey, that word again.
How Do We Make Our Way in an Uncertain World?
Embracing is nice. At least in the physical sense. But much like “celebrate failure” it smells of marketing.
If we want to improve predictability, stop at check points. Make small steps, inspect and adapt.
Published at DZone with permission of Gil Zilberfeld , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.