Skip to main content

Throughput-Driven Sprint Planning

February 17, 2020

Over my 15 years of experience with Scrum, I’ve observed velocity-driven and capacity-driven Sprint Planning as our ways of working when we figure out the amount of work the Development Team can take during a Sprint.

While I believe these practices helped us adopt Scrum by planning our work at each Sprint, I believe we can now go one step further with throughput-driven Sprint Planning.

Before I dive into the details of throughput-driven Sprint Planning, I first want to define the word throughput to avoid any misunderstanding for the rest of this article.

I’ll use the definition of throughput as defined in the Kanban guide for Scrum Teams:

Throughput: The number of work items finished per unit of time.

Please note I am not talking about the number of story points per unit of time.

Having defined throughput, let’s imagine a Scrum team running on 2-week sprints. Their Sprint starts on Monday and ends on Friday. The throughput of this Scrum Team for the past 15 weeks is illustrated in the following chart.

Throughput run chart

On this chart, named a throughput run chart, the Scrum Team completes between 2 and 10 Product Backlog Items (PBIs) per week. If we do the average of the last 15 weeks, we get a trend of 5 completed PBIs per week on average (or 10 PBIs per Sprint).

Also, and this metric is going to be useful later in the article, our Service Level Expectation is 8 days or less, 85% of the time. For now, please keep this metric in mind.

Another thing I want to define is the workflow of the Sprint Backlog used by the Development Team in this imaginary Scrum Team. The Sprint Backlog workflow is the following:

Sprint backlog workflow

In the Development Team Sprint Backlog workflow, they decided to have 3 steps: Development, In Review and QA. There isn’t a WIP limit on the Deploy column because it is easy for the Development Team to catch all PBIs in this column at the end of the day and push them into production.

The Development Team decided to have sub-columns to make it more transparent when a PBI is completed on each step of the workflow.

The Ready column is the entry point of the Sprint Backlog workflow. At Sprint Planning, we move PBIs from the Product Backlog into this column to inform everyone these are the next items to work on.

The Development Team decided to set a WIP limit of 10 on its Ready column based on its throughput run chart. Historically, they can finish 10 PBIs/sprint. Based on this historical data, take around 10 PBIs at Sprint Planning.

Please note that in this Sprint Backlog workflow, the Development Team doesn’t use tasks to decompose its work. It focuses mainly on delivering Product Backlog Items through this workflow. Decomposing PBIs in tasks is a complimentary practice for them and in this example, the Development Team doesn’t see a need for them. For all the scenarios listed below, this Sprint Backlog workflow will always show Product Backlog Items moving from left to right.

As we move into a Sprint Planning event, the Development Team forecasts its work accordingly. With the throughput run chart seen above as new input in the Sprint Planning, here are a few scenarios I’ve bumped into when doing throughput-driven Sprint Planning.

Scenario A: No PBIS left in the Sprint Backlog workflow

Sprint backlog workflow with nothing remaining.

In our first scenario, the Development Team was able to move all its PBIs to the Done column on the last day of the Sprint.

During Sprint Planning, as our throughput chart showed initially, the Development Team does 5 items/week. So, we can put around 10 PBIs in for the next Sprint. Over the years, I haven’t been in this situation a lot of times but on the occasions it happens, this is how I would guide my team.

Scenario A.1: There’s nothing in the Sprint Backlog because it’s our first Sprint

I’ve used two approaches in this scenario. In a more project-based context where trust was low, I’ve fallen back on capacity-driven Sprint Planning to estimate the number of PBIs the Development Team can forecast.

In a context where trust is high and risks and/or expectations were low for the results of the first Sprint, the Development Team went with a rough guess based on their gut feeling and adjusted at Sprint 2 based from their learnings in Sprint 1.

Scenario B: Some items left in the Sprint Backlog workflow

Sprint backlog workflow with remaining PBIs

This is the scenario I’ve encountered the most often with my Scrum Teams. Incomplete PBIs are left in the Sprint Backlog when the Sprint finishes.

In the picture above, I have 2 PBIs in the Ready column, 2 PBIs in QA and 6 in the Done column. To give more context to our example, the 2 PBIs in Ready are not related to the sprint goal of the previous Sprint.

Two options lie in front of us at Sprint Planning:

  • Option 1: We can put less than 10 PBIs in the Ready column. Looking at the Sprint backlog workflow above, we see the development team completed 6 PBIs in their sprint. This lowers their historical average throughput. If the Development Team feels this will be their new “norm”, we can put less than 10 PBIs in the Ready column.

 

  • Option 2: We can fill up the Ready column up to 10 items. The Development Team wants to keep going at that pace even though they delivered 6 PBIs in this Sprint. They consider a series of unpredictable events slowed them down during the Sprint. They don’t believe they will face the same issues soon and can get back on track. 

Scenario B.1: Team members will be on paid time off (PTO) during the Sprint

I use ratios to calculate the amount of PBIs we can take. For example, if a Development Team of 6 people completes 5 items per week, and two team members will be away for a week during the Sprint, they can reduce their throughput to 3 or 4 PBIs per week.

Scenario B.2: The next PBIs to go into the Sprint Backlog are quite small

For example, the Product Owner only has a list of bugs she wants to fix in the Sprint. They are all around 1 day of work or less. In this situation, I find there's nothing wrong with going over our WIP Limit on the Ready column. You might want to keep your current WIP Limit at 10 for the Ready column as value-added PBIs (Ex: user stories) are scheduled after this bug-fixing sprint.

The size of the PBIs

If I am to use throughput to forecast the amount of work in a Sprint, what should their size be? How do I size my PBIs? These are questions I hear quite often when I bring up throughput-driven Sprint Planning. While I find story points were great to limit the size of an item in our Sprint, I believe story points are also a limitation when it comes to throughput-driven Sprint Planning.

A simple answer I heard from the questions above are “PBIs should always be around the same size when going in the Sprint Backlog”. I personally never felt right with this answer as it forces our Product Owner to resize stories or bundle them together. I don’t believe our Product Owner should adapt his work to fit this answer.

I found a great alternative to story points a few years ago when I stumbled on Daniel Vacanti book Actionable Agile – Metrics for predictability. In chapter 12 of his book, Vacanti explains how we perform a “right-size” check on the PBI we are about to plan. And this check is on the Service Level Expectation (SLE) that either your data tells you or one that you have chosen if you don’t have enough data.

According to the Kanban Guide for Scrum teams, the definition of Service Level Expectation is:

Forecasts how long it should take a given item to flow from start to finish within the Scrum Team’s workflow. […] The SLE itself has two parts: a period of elapsed days and a probability associated with that period (e.g., 85% of work items should be finished in eight days or less).

If we go back at the beginning of our article where we defined our imaginary Scrum Team, it stated the SLE was 8 days or less, 85% of the time. By doing throughput-driven Sprint Planning, each item that you add in your Sprint Backlog should have a quick question in the form of “Can this PBI be done in 8 days or less?”

To quote Daniel Vacanti from his book:

The length of this conversation should be measured in seconds. Seriously, seconds. Remember, at this point we do not care if we think this item is going to take exactly five days or nine days or 8.247 days. We are not interested in that type of precision as it is impossible to attain that upfront. We also do not care what this particular relative complexity is compared to the other items. The only thing we do care about is we think we can get it done in 14 days or less. If the answer to that question is yes, then the conversation is over and the item is pulled [in the sprint backlog]. If the answer is no, then maybe the team goes off and thinks about how to break it up, or change the fidelity, or spike it to get more information

Instead of using story points and velocity to decide if a PBI is going into the Sprint Backlog, we use the Development Team Service Level Expectation (SLE) to make this decision.

Scenario C: PBIs close to the SLE

As we are moving new PBIs into the Ready column at sprint planning, we realize all of them are close to the Development Team SLE. The Development Team indicates how the new PBIs are around 7, 8 or 9 days of work, thus being close to the SLE of 8 days or less, 85 % of the time. After a conversation, the Development Team can decide if they want to move forward knowing this or it might be sound to take a little less than 10 PBIs if all of them are close to the SLE.

Scenario C.1: PBIs small to the SLE

On the other hand, if all of the PBIs we are moving into the Ready column are worth a day or two of work, thus being far from the SLE, it might make more sense to add a few additional PBIs knowing they will flow fast through the Sprint Backlog workflow. We’ve already covered an edge case of this above in Scenario B.2 where the work for the Sprint was solely a list of bugs to fix.

The Sprint commitment

I’ve encountered a lot of Scrum teams who are asked to commit to their Sprint. Even when reading the capacity-driven sprint planning and velocity-driven sprint planning articles, there are conversations around committing to the workload we select at the Sprint Planning.

Let’s take a step back and read the Scrum Guide for guidance on this. It says:

The Development Team works to forecast the functionality that will be developed during the Sprint.

If you search for the word “commitment” in the Scrum Guide, you will not find it in the Sprint Planning section. I agree the “commitment” value is present in the Scrum Guide. I find it is a guiding light as we agree to commit to do the best we can. On the other hand, I find we can use empirical metrics such as cycle time, throughput, PBI age and WIP to help the Development Team forecast their work instead of asking them to commit to their work, knowing all the uncertainties they can face and will address.

From this perspective, I find throughput-driven Sprint Planning leaves a lot of breathing room for Development Teams to put the right amount of work in the Ready column at Sprint Planning.

To sum it up

I believe throughput-driven Sprint Planning is an alternative to the mainstream approaches known to the agile community. I find its strengths is the use of historical data and less about estimation and relative sizing. Historical data easy to capture, to teach and to use.

I’ve been teaching the Professional Scrum with Kanban (PSK) class for the last year and a half now where we address this on day 2. Participants are surprised at how we can reduce our time in meetings with this new approach. It's more time given back for developers to do what they do best. It's more efficient time spent on valuable conversation instead of arguing if it’s a 3 points or 2 points.

It’s a win-win for our profession and the customer we help build solutions for.

If you’re interested in learning more about Kanban in another context, visit KanbanGuide.org.


What did you think about this post?

Comments (10)


Rishi Markenday
05:12 pm February 17, 2020

Awesome article Louis - for scenario B above, do you have recommendations on how to take a Development Team through the thought process of re-assessing their Sprint Goal?


Louis-Philippe Carignan
06:03 pm February 17, 2020

Thanks for the comment Rishi. I'm having a hard time understanding your question. May I ask you to expand a bit more more on it and I will do my best to answer it?


Rishi Markenday
06:49 pm February 17, 2020

Sure - if the Development Team was able to complete 8/10 PBIs, they still have 2 PBIs left that relate to the previous Sprint Goal. Now if they pull in 8 more PBIs into their ready column, they will have to reconcile the Sprint Goal for the 8 PBIs with the old Sprint Goal of 2 PBIs. Do you have any facilitation techniques that help teams think through this?


Louis-Philippe Carignan
06:59 pm February 17, 2020

Thanks for getting back quickly and providing more details to your question Rishi.

I would turn to the Product Owner and ask him if the remaining 2 PBIs are still worth it. Maybe the value delivered with the 8 PBI is enough. On the other hand, maybe the PO needs those 2 remaining PBIs to close a customer request so they become the first priority of the development team at the beginning of the new sprint.

So the new sprint goal could be:
1- Complete customer request (2 remaining PBIs of the previous sprint)
2- Deliver feature X (8 PBIs that got pulled in the sprint backlog)

For technical reasons, it might not be possible to have the whole development team work on the 2 remaning PBIs. So it could make sense 1 developer finishes the 2 remaining PBIs while the rest of the development team focus on the second part of the sprint goal.

Does this make any sense to you?


Rishi Markenday
07:01 pm February 17, 2020

Yes, definitely Louis! Thanks so much for the response!


PeterMerel
10:48 am February 20, 2020

I'm sorry, but that really isn't Throughput. PBIs over time are the worst kind of vanity metric. This is Throughput: https://www.scienceofbusine...


Louis-Philippe Carignan
06:58 pm February 21, 2020

I'm sorry to hear that we see things differently Peter. I took the time to read the article and while I find it has a lot of substance, I could not see how it is relevant to the sprint planning in Scrum. Would it be possible to share an example where you've used this approach in a sprint planning so I can better understand where you are coming from?


PeterMerel
02:55 am February 22, 2020

Hi Louis-Philippe,

Disagreement represents a learning opportunity for both of us - we should not be sorry about that!

I expect you'll agree that business throughput per Goldratt is the only real metric by which we can prioritize any work a Scrum might do. And in bringing our work to market we deal with a field of constraints. The fundamentals are popularly understood using McClure's "Pirate" metrics of Acquisition, Activation, Retention, Referral and Return. I should hope most product managers/owners these days understand how to measure these things for their market.

But Goldratt tells us that, at any one time, only one of these will be the bottleneck. And that we should deprioritize everything else. So before we indulge in Sprint planning a Scrum must understand which constraint represents their current bottleneck or else it will deliver the wrong thing - or the right thing at the wrong time.

And then that brings YAGNI into play. There's no point in going to all the trouble of elaborating multiple PBIs into a sprint plan because mixing them up increases COD and decreases ROI. We need to pick just the highest priority PBI - the one that product management feels most likely addresses the bottleneck - and split just that one out into a sprint backlog. We deliver that as our shippable increment - never mind fixed length sprints - measure how it changes market conditions, and then do that again.

There are other release goals to consider if the product isn't actually in production yet. The main ones are RATs - Riskiest Assumption Tests - but if we define reducing risk as a form of return, the process is much the same. The difference is only in how we calculate priorities. Here Reinertsen's EMV calculation is the simplest way to go about it, and we can use set-based concurrent engineering to rationally evolve a low risk solution breadth-first.

As for an example, this is generally how we planned our work in CBA's breakthrough "Kaching" program 2012-13. We didn't use Scrum there - it was basically an XP shop with smatterings of XSCALE - but there's nothing particularly magical about Scrum per se so I hope it will do. And that program when on to win the Group CIO's award for best program in the bank. And several dozen external product awards. Of course a lot of that has to do with the good ideas of the good people involved. But the above represents some of those good ideas ...


SK
04:17 am January 22, 2021

My view on this is based upon what the scrum guide mentions, which is that any PBI that doesnt meet the DoD by the end of the time-boxed sprint, then it should be re-evaluated and placed back into the PB. If the PO then keeps the partially worked on PBIs at the top of the PB based on their value, then they would then be selected for the next sprint during its sprint planning event.


SK
04:24 am January 22, 2021

Great article. I have a couple of points though:

1) Although the sprint planning chapter of the scrum guide does not mention commitment, sprint planning does indeed create a commitment for the sprint, called the sprint goal.

2) For scenario A, if for instance all PBIs were done by day 9, would the developers then consult with the PO to discuss which other PBIs could be selected from the PB that could be completed during day 10, or would the developers look at using day 10 for working on one or more of their improvement actions they dreww up during their previous sprint(s) retrospectives, as the sprint doesnt end until its time-box is over?