We’ve all had that iteration planning meeting. Your team spent the entire session arguing over which stories to include in the next iteration and you never even made it to sizing. By the time the session was over, you were no closer to having the next iteration planned and all that you’ve gained for your trouble is a frustrated and disheartened team.
If this sounds familiar, then it might be time to consider backlog refinement. Backlog refinement is a practice intended to help you keep the top of your backlog in a refined state so you can have better iteration planning sessions. But despite the value backlog refinement can yield, there is no officially prescribed approach for how to do it. However, if you’re looking for a simple way to introduce this practice to your team, then don’t despair: there’s an easy approach that you can use with your team today.
The blocking and tackling approach consists of two separate refinement meetings spaced evenly throughout each iteration. For example, if your team operates on two-week iterations, then you might hold the first session on the first Wednesday of the iteration and the second session on next Wednesday of the iteration.
In the first session, known as blocking, your goal is to select the stories that you expect your team to work on in the next iteration. Your selected stories will be a function of both your planned goal for the next iteration and your team’s forecasted capacity for that iteration. If your backlog has already been prioritized so your most important stories are near the top, and these stories already have a rough estimate applied to them, then this process tends to be relatively straightforward. However, it’s still helpful to do this session with the help of your team for two reasons.
First, sharing more detail about your goal for the next iteration and which stories you believe will enable that goal helps your team better understand the bigger picture of what they are trying to create. This understanding will allow them to make decisions in the current iteration that will put them in a better position to accomplish the work selected for the next iteration.
Second, while your team will save their final estimates for the next iteration planning meeting, they can often share their impression of whether or not the work selected seems too large for the next iteration—or even too small. If it turns out that the work you selected isn’t quite the right fit, then you have the rest of the iteration to decide how to adjust your selection accordingly.
Sharing more detail about your goal for the next iteration and which stories you believe will enable that goal helps your team better understand the bigger picture of what they are trying to create.
The rest of the session is saved for discussion. Introducing the stories you’ve selected to your team often leads to questions and discussions about alternative approaches…many of which you may not have considered. Surfacing these questions before the iteration planning meeting allows you to take time before the next refinement session to find the answers your team needs to confidently move forward.
The second session, known as refinement, is where the real work happens. During this session, you will work with your team to further refine the selected stories to ensure that they’re ready for the next iteration planning meeting.
This session begins with you reviewing the selected stories for the next iteration to help refresh your team’s memory of what was selected. This is also a great opportunity to call out any changes that were made to your story selection to better fit your team’s forecasted capacity.
Next, take the time to provide any answers to questions you were unable to answer in the previous session. Not only does this help further refresh your team’s memory of their concerns regarding each story, but it also improves the chances of productive discussion later in the session.
Once you’ve answered any outstanding questions, give your team the opportunity to ask any questions that may have occurred to them since the last refinement session. Your team has now had several days to more thoroughly consider their approach to these stories; therefore, a few questions are to be expected. This is their chance to pose those questions to you before the deeper discussion begins.
Finally, the remainder of session is focused on ensuring that the selected stories are in a ready state for the next iteration planning session. Many high-performing teams already have a checklist in place of what they consider necessary for a story to be ready for discussion in an iteration planning meeting. The contents will vary, but at a minimum they often specify that a story must have a brief description of its objective, acceptance criteria, and a rough estimate.
If your team doesn’t have a checklist of its own yet, then the INVEST criteria is a great place to start. INVEST specifies six qualities that are often associated with well-refined stories. Try comparing each of your selected stories against the INVEST criteria to see what gaps it exposes. After several iterations of this, you’ll likely start to recognize which qualities seem to add value to your team and which qualities do not. Once this happens, feel free to adapt the INVEST criteria to your own set of criteria that makes the most sense for your team.
Regularly holding backlog refinement sessions will result in smoother iteration planning meetings and, ultimately, more predictable iterations. However, the approach outlined above should be considered a starting point, so don’t be afraid to adjust this practice to better fit the needs of your team.
Regardless of how you ultimately approach backlog refinement for your team, what’s important is that your team is always ready to start the next iteration and that you or your team never have to suffer through a painful iteration planning meeting again.
Jeremy Jarrell is an agile coach who helps teams get better at doing what they love. When he’s not mentoring Scrum Masters or Product Owners, Jeremy loves to write on all things agile. You can read more of his thoughts at www.jeremyjarrell.com, see his videos at Pluralsight, or follow him on Twitter @jeremyjarrell.