How to Reduce Lead Times
Feeling the heat to deliver software faster? Do this one thing first.
“I can’t wait that long!”
In comes your manager with a new request, asking “How long is this going to take?”
Using Little’s Law, you quickly calculate:
- You currently have 19 items on the product backlog;
- Your team clears 2 items per week on average;
- This means the new item, being the 20th on the list, will take 20 ÷ 2 = 10 weeks.
“That’s unacceptable!”, your manager exclaims. “I can’t wait that long!”
So what are your options? Let’s take a closer look.
The Quick Fix
The quick fix would be to prioritize your manager’s request and move it to the top of the product backlog. Assuming a task of average size, it would be completed in about half a week.
But, is it the right thing to do?
By giving priority to the manager’s request, you delay each of the 19 items already on the backlog by the same half a week.
Those backlog items are there for a reason, and each delay carries a cost.
Moreover, as per Little’s Law, by allowing the backlog to expand, you’ve just increased your average lead time, as well as the lead time for new requests that come in.
If you continue to say “yes” to new requests, your backlog will grow beyond the development team’s capacity to deliver. And it will keep expanding until management decides that lead times have become too long and need to be reduced.
Other Options to Reduce Lead Times
So what are the other options to structurally improve lead times?
You could give the team incentives to work faster, for instance by offering a bonus. However they might be tempted to skip important steps like code review or testing, which will lead to quality issues. In addition, they would likely fall into the trap of working to full capacity, which would paradoxically slow things down rather than speed things up.
You could ask the team to work longer hours. This approach might work in the short term, but keeping people out of their beds, away from their families and on a diet of coke and pizza won’t do their productivity any good in the long run.
You might expand the team by hiring more people. While that sounds straightforward, communication and task management increase exponentially with team size. In addition, new team members need to be trained before they become fully productive. If not handled carefully, team expansion may cause delays, quality issues and rework.
You could try and find ways to optimise the development process. For instance if your team works with feature branches, they could switch to trunk-based development. Or if the code review process is causing delays, you could ask the development team to adopt pair-programming. While useful, these improvements will initially cause friction and cost before yielding actual benefits.
None of these options are without problems. Fortunately, there is a better option.
The Most Effective Way
The most effective way towards shorter lead times is to trim the product backlog. This not only reduces lead times, but also offers additional benefits:
- It lessens the burden of backlog refinement on the development team.
- It eases the pressure on the development team to squeeze too many tasks into a sprint. Smaller sprint backlogs are essential for productivity.
But how can the product backlog be made smaller, and stay that way in the future?
How to Trim the Product Backlog
To reduce your backlog size structurally, you’ll need to start saying ‘no’ to new ideas. This can be tricky, especially when they come from someone higher up.
In order to do this, you need an unbiased, objective method to prioritising tasks. My favourite method is Cost of Delay, which assigns an explicit dollar value to each task.
Using Cost of Delay brings compelling benefits:
- It makes discussions with those proposing tasks easier. Every task is ranked based on its payoff, and it’s difficult to argue with hard numbers.
- It invites considering alternatives of smaller scope, or workarounds that don’t even require any coding at all.
- It acts like a filter, leaving out tasks from the backlog that just aren’t worth the effort.
With this approach, you’ll be sure that the tasks with the highest value get done without getting delayed by less valuable ones.
Cutting down the product backlog is by far the most effective way to address long lead times.
With a bit of saying “no” and utilizing Cost of Delay, you can enable the development team to deliver important work faster.
The reward? Greater motivation for the development team, and more dollars for the company.