Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Achieving Predictability in a Complex World

Achieving Predictability in a Complex World

Leia em Português

Predictability is the precursor and enabler for other important things people are looking for, like doing things faster and cheaper, argued Jose Casal at Agile Portugal 2019. He presented how to achieve predictability in three steps: focus on work in progress, reduce time to get work done, and consider how to get more done.

Casal started his talk by stating that when we ask people why they want to improve, we hear things like "we want to do things faster, cheaper and better; we want to deliver more, with better quality and with lower risk." All of those are important, but before we can achieve any of those, we must start with predictability, he said.

Casal presented Business Agility Nirvana: To reach a level of predictability and trust that enables us to deliver faster, better and cheaper than we did before. It’s something that can’t be achieved quickly; it takes time, patience, determination and above all focus, he said.

His suggestion, inspired by the work of Daniel Vacanti, is to achieve predictability in three steps, with each step focusing on one of the core flow metrics.

Normally, companies take on more work that they can deliver. Helen Meek, a colleague of Casal, calls this the "crocodile mouth". In this situation work stagnates in queues, it takes ages to be delivered, and predictability is a distant dream. If we don’t do anything, the crocodile mouth will eventually bite hard and kill our business, said Casal.

He mentioned that step 1 is to focus on work in progress and stop the crocodile mouth from getting worse, and suggested to create policies to start applying the "Stop Starting, Start Finishing" motto of the Kanban community. "In this phase we just want to bring some balance and stability to the system; without these, predictability can’t happen," said Casal. To achieve this, he suggested to experiment with putting a system-level WIP limit in place, or having a "One Out, One In" policy.

One we have achieved this balance, then it is time to go into step 2 and focus on elapsed time, said Casal. The reason for this is that even if we have balance, we probably still have far too much work on the go, he argued, so finishing work still takes ages.

In this phase, Casal suggested to make all sorts of process improvements to reduce the time it takes to get work done, for instance by identifying and dealing with the sources of delay and waste. "By the end of this phase, we would still maintain balance and stability and we will also see a reduction in the amount of work that is in progress and a reduction in the time it takes to complete work," said Casal.

Casal stated that at this stage, predictability would be present, but it may not be nirvana yet. "Now it is the time when we can start considering if and how we can deliver more," said Casal. Step 3 is all about throughput and how much work we can deliver. In this phase, Casal suggests to focus on making technical improvements. For instance, consider to skill up people and, for the first time, start considering growing the teams.

Most organisations try to scale too soon and jump straight to step 3 without making things predictable first, argued Casal. What they achieve is to scale their dysfunctions in an exponential way. Instead, we need to nail our system before we even try to scale it, he said.

InfoQ spoke with Jose Casal after his talk at Agile Portugal 2019.

InfoQ: How can we build a predictable system that works in complex and uncertain environments?

Jose Casal: Our work is complex and uncertain. Before doing any creative work, it is unknowable how long it will take us to do it, but this makes us very uncomfortable and we rather pretend to have certainty.

So, how can we build a predictable system? We use our past experience to forecast the future work using flow metrics to produce probabilistic estimates.

Measuring the elapsed time of work (also referred to as lead time or cycle time) and the throughput (also referred to as delivery rate) allows us to become predictable even in a complex environment.

I’ve worked with companies that agree on Service Level Expectations (SLE) using forecasts based on the elapsed time of their completed work. Using this approach to estimate completion time of single items of work is, in my experience, far more reliable and relatable than traditional estimation techniques (including popular techniques used by the Agile community). It is more effective to agree that we have "85% confidence to complete in five days or less" a product backlog item, than to say "it is 3 story points."

Other companies do release planning using Montecarlo simulations of their throughput metrics. Again, rather than traditional release planning techniques, it is far more powerful to use our flow metrics and be able to agree that we have "95% confidence that we can deliver at least 37 features in the next three months". With that forecast at hand, we can then prioritise the ones we think are more valuable.

Finally, there is a mind-blowing flow metric that most of the Agile world has not discovered yet: the aging metric. This metric can be incorporated into our daily scrum and allows teams to anticipate which stories that are in progress require the team’s attention, so that they can be completed in a predictable way and according to our forecasts. When I’ve seen the aging-based daily scrum in action, it has been a truly eye-opening, transformative change.

InfoQ: What benefits have you seen in organizations when they focus on predictability when adopting agile?

Casal: I think the main benefit is that they become a healthier environment for people to work in. Predictability enables trust in the system and the people working in that system. Once we have trust, we can truly start becoming more transparent. With transparency, we can build more sustainable environments that foster more collaboration and quality. This helps us inspect and adapt in a more meaningful and deeper manner. So, we have the chance to really improve what we deliver and how we deliver.

InfoQ: How does predictability enable trust?

Casal: Above all, predictability enables trust both in the system and in the people. There are questions like "when will it be done?" that are always going to be present.

How we answer them matters, as it creates an expectation. Unfortunately, our track record of meeting that expectation is poor, mainly because we answer the question incorrectly. We provide deterministic answers. However, our work environments are uncertain and our answers need to be probabilistic. That’s the only way to be predictable in a complex and uncertain environment.

Rate this Article