Jeremy Jarrell

Agile Made Simple

Tag: sprint planning

Using the Blocking and Tackling Backlog Refinement Pattern to Ensure a Great Sprint Planning

This post originally appeared on the PivotalTracker blog. We’ve all had that sprint planning meeting. Your team spent the entire session arguing over which stories to include in the next sprint…

This post originally appeared on the PivotalTracker blog.

We’ve all had that sprint planning meeting. Your team spent the entire session arguing over which stories to include in the next sprint and you never even made it to sizing. By the time the session was over, you were no closer to having the next sprint 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 sprint 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.

Blocking and Tackling Your Backlog

The *blocking and tackling* approach consists of two separate refinement meetings spaced evenly throughout each sprint. For example, if your team operates on two-week sprints, then you might hold the first session on the first Wednesday of the sprint and the second session on next Wednesday of the sprint.

Blocking

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 sprint. Your selected stories will be a function of both your planned goal for the next sprint and your team’s forecasted capacity for that sprint. 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 sprint 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 sprint that will put them in a better position to accomplish the work selected for the next sprint.

Second, while your team will save their final estimates for the next sprint planning meeting, they can often share their impression of whether or not the work selected seems too large for the next sprint—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 sprint to decide how to adjust your selection accordingly.

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 sprint planning meeting allows you to take time before the next refinement session to find the answers your team needs to confidently move forward.

Tackling

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 sprint planning meeting.

This session begins with you reviewing the selected stories for the next sprint 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 sprint 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 sprint 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 sprints 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.

Getting the Results You Need

Regularly holding backlog refinement sessions will result in smoother sprint planning meetings and, ultimately, more predictable sprints. 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 sprint and that you or your team never have to suffer through a painful sprint planning meeting again.

Are you a Product Owner who wants to help your team better understand your vision for your product. Or do you want to understand how you can work more effectively with your development team? Check out my course series Product Owner Fundamentals, part of the Using the Scrum framework learning path from Pluralsight, to learn how you can use Scrum to help your team deliver great products that your customers love.

Don't have a Pluralsight membership yet? Try the entire Pluralsight course catalog free for 10 days here.

No Comments on Using the Blocking and Tackling Backlog Refinement Pattern to Ensure a Great Sprint Planning

Using An Estimation Grid To Improve User Story Estimation

Estimation is tough. We all know it and we all struggle with it. Most of the challenge of estimation is due both to the abstract the nature of software as…

Estimation is tough.

We all know it and we all struggle with it. Most of the challenge of estimation is due both to the abstract the nature of software as well as the challenge of estimating something’s complexity. In fact, due to the abstract nature of estimating in story points, teams find that their goal is less often accurate or precise estimates, but more often consistent estimates.

Although we often struggle with assigning specific values to items we’re actually quite good at assigning relative values to objects. For example, few of us could glance at a bucket of water and estimate exactly how many ounces that bucket will hold. But, we could easily estimate that the bucket holds more ounces than a glass and less ounces than a swimming pool.

Teams can also apply this same relative estimation technique when estimating a particularly tricky piece of work. However, this is often done by estimating new stories relative to the size of other stories that the team has not yet worked on, such as other stories that have also been selected for the sprint.

While any relative estimation can be helpful, it can be more helpful to compare new stories to stories that have already been delivered and that the entire team agrees were estimated correctly.

Meet the estimation grid

One of the most powerful ways to do this is with the use of a tool called an estimation grid, which is simply a grid containing a cell for every other number in your team’s estimation range.

For example, if your team estimates using the values in the Fibonacci sequence from 0 to 13 then your estimation grid would look like this.

In each cell, place a sticky note representing a story that your team has recently completed that everyone agrees was indicative of its original estimate. For example, if in the last sprint your team completed a story that was originally estimated at 3 points, and everyone still agrees with that estimate, then place it in the cell for 3.

Putting the estimation grid to work

Once the grid is built you can begin working through your estimation routine as normal, such as by playing a few rounds of Planning Poker. However, once your team gets stuck on a particularly tricky story then it’s time to refer to the grid.

For example, imagine that your team is trying to estimate a story to add support for a new payment gateway to your ecommerce app. While the act of supporting the new gateway seems straightforward, it will involve touching a particularly complex piece of the codebase. For this reason, many of the team are unsure of how to estimate this story.

But by comparing this story to the reference stories already found on the estimation grid, your team is able to spot key similarities between this story and the reference 3 point story, such as a relatively straightforward set of business rules coupled with a complex area of the codebase. As a result, the team estimates this story as a 3.

Later, when the team finds themselves stuck on another story to add a simple CSV export to an existing report they return to the estimation grid. However, this time the answer is not as straightforward. While they find that adding this export seems more complex than the reference 1 point story, it’s not quite as complex as the reference 3 point story. But since the complexity of the story seems to fit neatly between these two reference stories your team assigns the story an estimate of 2.

Getting the most out of your estimation grid

While the estimation grid is already a powerful tool, there are a few things that you can do to get even more out of this tool.

First, resist the urge to use the estimation grid for every story that your team encounters. You’ll still want your team to be able to evaluate the complexity of each story through discussion and shared discovery rather than simply defaulting to comparing every story to the same handful of stories. Your estimation grid should be an aide, not a crutch, so only refer to it when needed.

Next, be prepared to update your estimation grid periodically. As the work your team is doing evolves they’re likely to begin working with different technology stacks, in different areas of the codebase, or with different themes of your product. Occasionally checking that your reference stories reflect these changes and replacing those that do not will help keep your reference stories relevant to your team’s needs.

Finally, resist the urge to create a cell for every value in your team’s estimation range. For example, you may have wondered why we didn’t create a cell for each value in the Fibonacci sequence from 0 to 13. There are two reasons for this. First, finding a canonical reference story for each value in that range can become tiresome, especially for those values that your team rarely uses. But second, and most importantly, you don’t want to paralyze your team with too many choices.

Generally, speaking humans make decisions easier when presented with fewer choices. For more on this, you can check out this article from Harvard Business Review, but for our purposes simply know that presenting your team with more choices to compare a tricky story to is likely to make act of the estimation longer rather than shorter. Instead, keeping your estimation grid simple and only giving your team just enough options will help keep the entire estimation process as painless as possible.

Wrapping up the session

Once your planning session is complete, a great way to wrap up is by laying all of your team’s estimated stories over your estimation grid and looking for patterns or clusters. For example, did it seem as if your team estimated the majority of their stories at the high end of your range? Larger stories are more complex and, as a result, tend to be less well understood. While a single large story in a sprint is unlikely to be a cause for a concern a sprint that’s primarily comprised of large stories is likely to be a very risky endeavor.

Or does your sprint seem to have many 0 point stories? While some stories may be so simple as to feel as if they do not warrant a point, no story is truly free. Every story takes time and attention from your team to deliver. While a few 0 point stories may not be cause for concern, many 0 point stories can add up and threaten your team’s chances of delivering everything they’ve planned for the sprint.

While the right answer is going to vary for every team, generally speaking I like to see most of a team’s stories clustered in the lower end of their estimation range. Stories this size tend to be just large enough that you can understand the impact that each story will have on our team’s velocity but are not so large to contain large amounts of unknown.

If your team’s sprint doesn’t seem to be clustered as I just described then don’t panic, you can simply take some of your larger stories and try to split them into smaller stories to reduce your risk. And if your team gets stuck estimating some of those newer stories then now you have a tool to help them.

Want to see more about how to make agile work on real teams? Check out my course, Agile in the Real World from Pluralsight, for tips and techniques to help your organization get the most out of their agile adoption.

Don't have a Pluralsight membership yet? Try the entire Pluralsight course catalog free for 10 days here.

No Comments on Using An Estimation Grid To Improve User Story Estimation

3 Ways Product Owners Can Help with a Great Sprint Planning

A great Sprint Planning session sets the tone for the entire Sprint. Your team leaves the session energized, excited, and with a clear picture of how to hit the ground…

A great Sprint Planning session sets the tone for the entire Sprint. Your team leaves the session energized, excited, and with a clear picture of how to hit the ground running in the new Sprint. But, what if things don’t go as well as you’d hoped? Then your team will leave the session tired and frustrated.  They will leave without a clear idea of how to get started on their new set of work. They may even leave without any idea of what their goal for the next Sprint even is.

If you’re a Product Owner, you may appreciate the importance of the Sprint Planning session but consider a successful planning session the responsibility of the Scrum Master. While this may be true, there are a few simple tricks that you can use to help your team get the most out of this critical ceremony.

Paint a Clear Picture

The Sprint Planning session is your opportunity to paint a clear picture of the upcoming Sprint and the objective that you hope to complete. But to do so, you must come prepared with both an engaging vision for your team as well as fully prepared to discuss the details of each Product Backlog item that you’ve selected to support that vision.

The details that you provide will be essential for helping your team appreciate the depth and complexity of the items that you’ve selected. And, it's these details that will help your team give as accurate of an estimate, as possible.

Mind Your Body Language

Just accept it, it's going to happen. Sometimes your team will throw an estimate on an item that’s higher than you expected. But when it does happens, how you react will play a major role in setting the tone for your relationship with your team.

On many teams, the Product Owner is treated as a figure of implicit authority. For this reason, it’s imperative that you be acutely aware of your body language, facial expressions, or any other behavior that may put pressure on your team to reduce their estimates.  Even if this pressure is inadvertent.

Pressuring your team to reduce their estimates won’t reduce the actual work behind the estimate and will only make your job harder.  This is because your own long-term planning lives and dies by the validity of the estimates that your team provides. If you pressure your team into giving inaccurate estimates then it will be your release plan that suffers in the end.

Instead of applying pressure, take this opportunity to ask questions. Why is the estimate higher than you expected? Or, what hidden complexity exists in the item that you didn’t see before? Taking the time to understand why the estimate is higher than you expected may reduce your chances of being surprised in the future.  In fact, it may even uncover an alternative path to achieving the same goal with less complexity.

Remember That Estimates Are a Forecast

Above all, remember that the estimates your team provides are a forecast…not a commitment. Holding a team to their estimates creates a culture of fear. And, in such cultures, your team will invariably begin to sandbag their estimates to protect themselves from the possibility of occasionally under-estimating an item.

Once this happens, your team will begin to continually pad their estimates to create a larger and larger margin of safety. The result, of course, being that the amount of actual work completed each Sprint will continue to dwindle.

But, there's an even worse casualty of this trend. Learning can only occur when a team feels safe enough to embark on experiments and learn from their failures. If a team is punished for every mistake then all learning will eventually cease. And, without the ability to learn, your organization cannot hope to compete in the world of product development.

Helping Your Team Succeed

The role of the Product Owner is easily one of the most important roles on a Scrum Team but is also arguably the most difficult. The Sprint Planning session is your opportunity to invest in your relationship with your team each Sprint. Because it's only with an ongoing investment in that relationship will your product see long-term success in the market.

Have you suddenly found yourself in the Product Owner role and want to know how you can use this role to help your team be successful? Check out my course series, Using the Scrum Framework, to learn how you can help your team reach their highest potential and deliver a great product to market.

Don't have a Pluralsight membership yet? Try the entire Pluralsight course catalog free for 10 days here.

No Comments on 3 Ways Product Owners Can Help with a Great Sprint Planning

Type on the field below and hit Enter/Return to search