What is it that actually delay our deliveries? What makes people plan for a delivery to take a certain amount of time, and then it takes 3-5 times as long to get them? Is the problem that people are lazy and don’t do what they should? That they are not productive enough? Is it that we are bad so bad at planning and that we need to be even more detailed in our plans to succeed?
No, it’s often about completely different things. What we are trying to deliver is often solutions to complex problems and therefore we can not plan our way to success. Instead we have to try things out to see what works or not. Then detailed plans quickly become obsolete. People are not the problem either. They work on it as best they can, but there are other system “errors” that affect us to a very large extent.
The biggest system “errors” for delayed deliverys are
These are the most common reasons why our deliveries are delayed and why people get frustrated and stressed. If the system is set up so that queues are formed, we work with large batches, many variations, and we are forced to task-switch often and pass things on to others – then it is difficult even for those who do their best to deliver on time. Most organizations start several initiatives at the same time. This forces people into task-switching, it builds up queues and it creates variations. In addition, people work in silos, which means that we get a lot of handovers between people, teams, etc. and here, too, people are forced to task-switch and queues are forming.
I will explain them one by one, in more detail, and why they delay deliveries and make forecasting difficult.
We start with queues. Queues can take many different forms. It is easy to see when people are queuing in a store, or on the highway, but it is more difficult to see queues of information as a queue. A backlog is a queue – of a bunch of different results we want to achieve, customer needs we want to satisfy. Just as a list of activities to perform is also a queue.
The problem is often that people don’t realize it’s a queue. What do we do when queues occur? Well, in the store we open more checkouts to get rid of the queues. On the motorway when queues have been created due to accidents, it is required that we divert the traffic on to other roads to get rid of the queues. But what do we do with a backlog that has grown too long? In most cases nothing is done I would say. Often it just keeps growing and growing, and those who are supposed to deliver from it don’t have the capacity do the work at the same speed as the backlog grows. Then we have created a queue. Queues contribute to the biggest delays and often result in long wait. Queues make the system unpredictable and queues will always form. Just look at the highway how queues form due to different variations in driving styles. Someone drives fast, others brake violently, someone pulls out suddenly, others drive more slowly, etc.
Just now I said that queues are managed by opening multiple checkouts or redirecting traffic, and this is required because once we create a queue the system become slower. It’s easy to see on the highway when all the cars are crawling along, or if you look at customers in the store who have to wait an unreasonable amount of time to pay for their goods. So if we want the teams to be faster, keep the backlog short. Delete what doesn’t need to be done. Then you can keep a good flow in the team. In every system there is a limit to when we maintain a high flow. When the limit is reached and queues are formed, the throughput speed has also been reduced. This means that the speed will remain low and stay in that state, unless the queue is emptied. Often the speed the team could have is halved by a long queue. When the queue is empty, you have to experiment and see where the limitation is for when the flow goes down to find the bottleneck.
When we forecast, we don’t usually include queues as a risk factor. But if someone asks you when you think you’ll get home from work, we often look at the clock and say “it’s 5:30pm, so there will be queues. I’ll probably won’t be home until 6pm”. Here we clearly see that delivery time can be predicted by the fact that queues have formed in the system. When doing delivery work, we need to look for queues between teams, between silos, workstations, backlog length, etc. Then we can make sure to eliminate them as much as we can to get to the finish line faster.
Batch-size is another thing that plays a big role in the speed of delivery. Reducing the size of what needs to be done makes it more predictable. Small things have small variations, big things have large variations, and we want as little variation as possible to make deliveries predictable.
What do I mean by that? Well, if I’m going to change a sentence of a larger text, it’s a small batch, fairly predictable without much variation. I know exactly what to change, I just need to do it. If instead I have to write a research report that several different researchers have to review and approve, then it is a large batch, which is much more difficult to predict how long it will take and when it will be finished. We simply have a lot of factors at play here that are not that predictable. For example, I don’t know how my text will be perceived by all the different researchers who will review it, if it is considered to contain the right parameters, if all the text is in the right order and is structured correctly, if the research is considered sufficiently well-founded, etc.
We can also easily see that batch sizes matter when we for example have to guess how long it takes to run 400 m, compared to guessing how long it takes to run 1 mile. If we look at 400 m as a small batch, then the variation within which I and other people manage to run 400 m, will be less than the variation when I guess how long it takes to run 1 mile.
The smaller batches we divide our work into, the less variation there will be and the more predictable it will be. Therefore, we divide our work into smaller parts that still creates value for our customers.
Variations allow queues to form in the flow as in the example above with different driving styles. Someone almost stops when meeting other drivers, others drive unevenly, some drive past narrowly and the other car has to brake, etc. Roadworks or other obstacles appear on the road and the speed must be reduced. This creates variations in traffic.
In the same way, variations (and queues) are created when we have handovers between different stations and we do not know when the work can continue. The work stops for a while, and starts at an unknown time. This makes it difficult to predict when it will be done.
We try to prevent these variations by managing queues, creating cross-functional teams with all the necessary skills in. The team then work on one initiative at a time (instead of task-switching between projects), and they work on small batches by breaking things into small, but still valuable parts for the customer.
Having focus increases the flow by 100% unlike when we task-switching. In addition, we lose context when we switch in between different things all the time. Of course, we do not take this into account when we forecast. Do you know that when you do task-switching between 5 different things, you will spend more time actually switching from one thing to another than you do on the actual job? Here we loose a LOT of the speed of delivery.
We’ve learned somewhere that it’s nice to have a lot to do, when in fact it keeps us from moving forward. Multitasking eliminates productivity. Interrupting what you’re doing to answer the phone or check what someone wrote in slack or in an email, increases the time required to finish the original task by 25% each time. Research also shows that multitasking impairs our focus, memory and learning. In addition, stress increases when we do several things at the same time, and the number of sick people has skyrocketed in recent years due to stress. Our brain is not designed to effectively switch between different tasks. It becomes easier to make mistakes. The email might go to the wrong recipient even though it was confidential, and the text about the troublesome father-in-law might have gone to him… Doing one thing at a time and giving it your full attention will make us reach the goal much faster and it makes us feel much better. Doing so it will also be easier not to procrastinate important things and actually finish what you started.
Handovers between individuals causes us to lose knowledge. We lose about half of the information during a handover because the person we hand over to is not familiar and therefore not capable of absorbing everything. And the person handing over the information has usually moved on to work on something else before the actual handover can take place, which means that you forget to inform about important things (involuntarily). We also often form queues where handovers are made, which makes the whole thing sluggish and slow.
To avoid handovers, teams of people with different capabilities swarm around the same job (swarming is focusing and working together with the same goal). To have the ability to swarm around the same job, the team needs to broaden their skills in different ways ensuring that the team has all the skills required to do the job. You also push down decision making in the team so they don’t have to wait for decisions from somewhere else. This also makes the team faster. It is important to have the needed information transparent and accessible to everyone.
What do you do to avoid these anti-patterns?
Canvas with 5 common anti-patterns that delay your deliveries
Source: Poppendeck, Mary, Implementing Lean Software Development, Poppendeck LLC, 2007, Queues – theory science Littles law, Tony Schwartz and Catherine Mc Carthy collection in Harward Business review about multitasking