Dealing with uncertainty in complex environments
“The only thing I know is that I know nothing”, Socrates wisely used to say. Fast forward a few centuries, and you’re sat comfortably in your chair, working from home for a famous software company. You’re assigned to a new team and your job is now to face and tame an ever-growing list of requirements and turn it into the beautiful, elegant, slick solution that your customer expects.
You start with tons of excitement, but as the days go by, you start to realise that ultimately you don’t really know a lot of things. For example, you are unsure about the timeline for release, you can only estimate it. You are unsure about the approach to take. And of course, there they are, the ‘unknown unknowns’, what you still don’t know that you don’t know, like technical impediments or changes in the requirements. On the other side, you’ve got your customer, with all their questions, expectations and eagerness to use the product.
So, like Socrates, you embrace the fact that there isn’t a definitive solution for knowing everything that’s out there to know. But you still need to find a way to act and move forward. Yes, you can definitely gather as much information as you can upfront, analyse it and try to make a prediction about the future. This approach is preferred in certain industries, especially with series production. But what happens is that - more often than not, an ‘unknown unknown’ will cross your path, and you will need to find quick ways to adapt.
What if there was a methodology, applicable to many different teams and contexts, that could offer you some tools to deal with risk and uncertainty so you can effectively respond and adapt to change? I bet you know already where I’m going with this: exactly, I’m talking about Agile.
Agile is based on Empiricism and Lean Thinking. Rather than trying to predict how everything will go upfront, Agile teams strive to get experience, and learn from that. You know that what’s important can change in a second in this crazy fast-paced world, so by adopting this approach you can focus on what’s important now, and proceed one step at a time so you can adjust the trajectory as you progress, as you get feedback, as you learn more and more. Yes, mistakes can happen, they are one kind of risks as mentioned earlier. As with any other kinds of risk, proceeding in small iteration should make them smaller as well, so they can be addressed more quickly.
Of course, there is much more to Agile than this brief article. If reading this succeded in making you curious, go check out the Agile manifesto, dig deeper into the various frameworks that have been developed over the years, or case studies of successful implementations by start-ups and larger organisations. And of course, feel free to reach out to any of us from the Agilistic Sircle if you have any questions or if you’d like to continue the discussion!