As every engineer and engineering leader knows, it’s hard to take on the right amount of work for an iteration. The industry average planning accuracy is below 50%. This means that for a given item in the sprint backlog, there’s less than 50% chance that it will be completed.
If iteration planning accuracy is no better than a coin flip, what’s the point of even doing it?
Planning, especially when done accurately, is tremendously beneficial. When engineering can deliver on its promises, positive effects ripple through the entire company. New features can be promised to clients and deals can be signed. Marketing campaigns can be designed and launched. Executives can more confidently commit to revenue targets.
Inaccurate planning is not a permanent state. In this post, we’re going to look at how you can get a handle on how well you are planning, identify where you can improve, and how you can actively drive improvement in those areas.
The Purpose of the Iteration Planning Meeting
In the Agile framework, every successful iteration begins with an effective iteration planning session. Led by the scrum coordinator (formerly known as the scrum master) or product owner, the main aims during the iteration planning meeting is to establish the goals for the iteration, define the acceptance criteria, and select the product backlog items that the team will complete to accomplish the goals.
The purpose of iteration planning is not only to figure out who is going to work on which items but also to give the Agile team a clear picture of what business value is going to be created during the iteration. This enables people to connect the work they do to user stories and the larger goals of the business.
By giving team members the larger business context, you bring more meaning to their work and you empower them to make better decisions. This is all part of what Kathryn Koehler, Director of Productivity Engineering at Netflix, described as treating your team like adults on the Dev Interrupted podcast:
Why Typical Iteration Planning Meetings Are Inaccurate
Three of the main causes of inaccurate planning are:
- Misestimating effort and sprint capacity
- Unplanned work
- Slow release velocity
Story point estimating and determining sprint capacity are difficult but so important. When you don’t have an accurate sense of how much work backlog items require or how much your team can get done in a sprint, the chances are low that you’re going to commit to the right amount of work during the iteration planning meeting.
Once the iteration gets underway, unplanned work (like bugs or technical debt that has to be paid off) can spring up, throwing a wrench into your plans.
Writing code is just one part of the development cycle. There is also review time and deploy time. Bottlenecks at any of these stages increase the chances that your sprint goals are not completed in time.
How To Increase Your Planning Accuracy
Better planning starts with leveraging data. But it doesn’t end there. Let’s now look at the discrete steps you can take to improve your planning accuracy.
Step 1: Clean Up Your Data
Unless data is clean, it can’t be trusted. On engineering teams, shadow work is a big challenge to maintaining data integrity. At LinearB, we studied over 1,000 development teams and found that a stunning 31% of Work in Progress (WIP) branches are unlinked to Jira tickets.
The current solution to data integrity is to launch an initiative that drives awareness about its importance. This typically doesn’t work.
A better solution is to use a tool like LinearB. Our shadow work detector surfaces shadow work. Our WorkerB bot automatically prompts your developers to create tickets for unlinked branches, and they can do so in just one click from right within Slack.
Step 2: Take Stock of Where You Are
How accurately are you planning right now?
This is a straightforward question, yet most teams can’t answer it. The main reason is that it’s hard to calculate in project management tools like Jira.
In LinearB’s Project Delivery Tracker, our Planning Accuracy metric is front and center. In one number, we tell you what portion of your iteration commitments you’ve completed.
This number is great, but it still doesn’t tell you how well you’re performing. For that, you need a reference point. LinearB studied almost 2,000 development teams to establish benchmarks for 9 key engineering metrics, including planning accuracy.
Once you know how your team compares, you can dive deep and understand why you’re underperforming.
Step 3: Identify and Address Bottlenecks
If you’re planning inaccurately, there are 3 areas that are most likely to be driving this:
- Cycle time bottlenecks
- An inefficient pull request process
- Low code quality
1. Cycle Time Bottlenecks
Cycle time is the super-metric that reflects your performance in so many other areas. With so many determinants, it can be hard to understand why your cycle time is slow.
To do that, you need to break cycle time into smaller pieces. LinearB’s Cycle Time metric decomposes cycle time into its 4 sub-phases right out of the box. Click on any of those sub-phases and you can see the specific issues blocking things up. With LinearB, in seconds you can understand why your cycle time is slow and take action to raise your team’s velocity.
Get context around cycle time bottlenecks in one click. Diving into your data has never been this easy. Get started with our free-forever account today!
2. Inefficient Pull Request Process
On most teams, the biggest bottleneck in the development cycle is pull request review time. This is something we’ve talked about in this blog (for example here) because it is such a high-leverage way to improve your cycle times.
The main reason reviews take so long is that they spent so much time sitting idle. In our analysis, we found that:
- 50% of pull requests were idle for 50.4% of their lifespan
- 33% of pull requests were idle for (a whopping) 77.8% of their lifespan
You can leverage LinearB’s Team Goals system and WorkerB bot to drive improvement here. Once you benchmark the speed of your team’s review process, you can set a goal for improvement. We recommend aiming for a one tier improvement (e.g. from “fair” to “strong) over one quarter.
With that goal set, you can configure WorkerB to help developers attain that goal. For example, if a developer creates a PR that is larger than the goal set by the team, WorkerB will alert them in Slack or Microsoft Teams. If a PR has sat idle for a long time, WorkerB will remind the reviewer about it.
Promote your pull requests to merge 10x faster. Get started with our free-forever account today!
Developers can also use WorkerB’s Slack shortcuts to see the status of the PRs they created and that have been assigned to them. They can even review PRs from right within Slack! This enables them to stay on course while saving them time and context switches between their IDE, Slack, and Jira.
3. Low Code Quality
Low code quality refers to code that more often results in bugs and technical debt. These cause unplanned work during an iteration, which eats up time meant to be spent on completing the planned work and achieving the iteration goals.
There are a number of metrics you can leverage to monitor and improve quality. Two of the increasingly-popular DORA metrics are aimed directly at quality: Mean Time to Restore and Change Failure Rate. LinearB also has leading indicators like review depth which you can use with our Team Goals system and WorkerB bot, like we saw above with PR size.
LinearB’s Investment Profile is another powerful metric. It enables you to answer questions like: How much work was introduced halfway through the sprint? And did you spend more than 15% of your time on bugs?
By understanding where your team is spending their time, you can understand why you’re not completing what you committed to and ultimately you can reduce the number of fire drills and unplanned work that arises during your iterations.
Conclusion
Although planning accurately is challenging, it isn’t impossible. With the right data, you can get the insights into the specific factors preventing you from planning more accurately, like slow cycle times and low quality code.
By combining data from Jira and Git and presenting it in easy-to-use metrics and data dashboards, LinearB makes it easy to deeply understand your engineering processes. With our Engineering Benchmarks, Team Goals system, and automation, you can use metrics to align your team and drive sustained improvement.