DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • Improve Your Agile Processes With Artificial Intelligence
  • Feature Owner: The Key to Improving Team Agility and Employee Development
  • Agile Practices That Developers Can Use to Create Better Projects
  • Enhancing Agile Product Development With AI and LLMs

Trending

  • Blue Skies Ahead: An AI Case Study on LLM Use for a Graph Theory Related Application
  • How to Practice TDD With Kotlin
  • Immutable Secrets Management: A Zero-Trust Approach to Sensitive Data in Containers
  • A Modern Stack for Building Scalable Systems
  1. DZone
  2. Culture and Methodologies
  3. Agile
  4. In Sprint Planning, How Do You Prioritize the Requirements in the Backlog?

In Sprint Planning, How Do You Prioritize the Requirements in the Backlog?

In this post, an Agile expert discusses how to go about deciding what are the most important items in your backlog, and how to plan accordingly.

By 
Zhi Lee user avatar
Zhi Lee
·
Nov. 09, 17 · Opinion
Likes (5)
Comment
Save
Tweet
Share
28.3K Views

Join the DZone community and get the full member experience.

Join For Free

Background

Having worked with many Agile teams, I find that every team has a slightly different approach to prioritization, and some teams are better at it than others. I’ve recently observed a Sprint planning session where a team couldn’t agree on priorities, and it was an unpleasant place to be. My mission in writing this article is, therefore, to share some personal experiences with prioritization, specifically some techniques and considerations during and outside of Sprint planning. I hope that these suggestions can help you avoid the sticky situation of not knowing how to prioritize during Sprint planning.

Why Prioritize?

Have you ever been stuck in a Sprint planning meeting, where everyone has a different opinion of what to do first in a Sprint?

Prioritization is one of the most important aspects of any form of development work because choosing the right thing to do allows you to maximize the value delivered in a Sprint. Having a shared understanding of priorities empowers a team to move in a uniform direction towards a common goal.

Outside of Sprint Planning

There isn’t a “one-size-fits-all” approach to prioritization but here are some general things you can do outside of Sprint planning to help prioritization decisions.

  1. Continually groom your product backlog.

  2. Apply learnings from the Sprint review.

  3. Have a “Split of work” working agreement in place.

Continually Groom Your Product Backlog

If at all possible, you should avoid the prioritization conundrum in a Sprint planning meeting. Remember, the Product Backlog is shaped like a triangle, with the most refined and high priority user stories on the top of the backlog, and the least important and least refined epics on the bottom. Continually prioritizing and refining the product backlog, through the practice of frequent (usually mid-Sprint) “Product Backlog Refinement” sessions, means that Sprint planning is less of a prioritization discussion than a “what’s the best way to do the work” session.

Shape of the Product Backlog (Credit: www.teamworx.co.nz)

Apply Learnings From the Sprint Review

It’s important to consider the feedback from a Sprint review. They could invalidate the top items in the product backlog, making for an unfruitful Sprint planning session. By feeding these learnings into your product backlog, you will ensure that the product backlog items are always relevant when it comes to time for Sprint planning.

Have a “Split the Work” Agreement In Place

Create a working agreement that defines what proportion of a team’s time should be spent on a particular type of work. For example: “Surprise and Delight” type work versus “Maintenance” versus “New Features.”

In their book, A Coach’s Guide to Mastering Backlogs, Karen Greaves and Samatha Laing describe any type of work to be largely classified as one of four types.


  1. Past and Business: work on existing features, or items that customers would care about. This type of work focuses on the retention of customers versus getting new ones.

  2. Future and Business: work to get more customers in the future.

  3. Past and Technical: Technical work that doesn’t bring in revenue but is important for maintainability, performance, and efficiency within the team.

  4. Future and Technical: Forward-looking work with a technical slant such as upgrading to a new version of .NET.

From A Coach’s Guide to Mastering Backlogs by Karen Greaves and Samantha Laing

Questions to Ask During Sprint Planning

When it comes to prioritization at the Sprint planning session itself, here are some possible questions that can help guide your decisions.

  1. Which items provide the most customer value?

  2. Which items provide the most benefit to the business?

  3. What is the lowest-hanging fruit?

  4. Which items are the riskiest?

  5. Which items result in the highest cost if not done now?

  6. What are the dependencies between items?

  7. Which items contribute most to our Sprint goal?

Prioritize by Customer Value

Ask: “Which items provide the most customer value?”

Working this out is simple, and can be done in several ways, such as having a verbal discussion, validating the user needs through user testing, and surveying what current solutions lack through market research. You can simply have a discussion around those activities or use a framework such as “Importance versus Satisfaction.” Dan Olsen describes the framework in his book, The Lean Product Playbook, as a useful one for thinking about how to create customer value in a rigorous, analytical manner.

The framework compares Importance (the measure of how important a particular customer need is to a customer) and Satisfaction (how satisfied the customer is with a current solution that provides customer benefit).

Importance Versus Satisfaction Framework from the "Lean Product Playbook" (Image credit: www.teamworx.co.nz)

Prioritize by Business Value

Ask: “Which items provide the most benefit to the business?”

Business value is the cumulative sum of things that affect the health of a business. It entails many things such as Shareholder Value and Customer Value.

Ensure that every piece of work has its business value articulated. One of the most common faults of development teams is not articulating the business value of technical debt (the “Past and Technical” work as referred to by Karen Greaves). As a delivery manager, I always encourage my teams to use simple one-liners. “Create a separate database” becomes “Create a separate database because the tight-coupling makes it time-consuming to make changes.”

Factor in the Estimated Effort to Do the Work

Ask: “What is the lowest-hanging fruit?”

Factor in the effort for a piece of work into the discussion. Tackle the “low-hanging fruit.” If two pieces of work are of comparable business value, pick the one with less effort.

Mitigate Your Risks by Tackling Risky Items First

Ask: “Which items are the riskiest?”

Look ahead and consider de-risking high-risk pieces of work by doing a “spike” (an investigation or proof-of-concept). You may want to prioritize higher risk items to mitigate the risk early on in a project or Sprint.

Consider the Cost of Delaying a Piece of Work

Ask: “Which item results in the highest cost if not done now?”

Consider the cost of not doing certain items, such as loss of competitive advantage, or inability to use a new piece of technology further down the line.

Identify Dependencies to Work Out a Natural Order of Priorities

Ask: “What are the dependencies between items?”

There may be a natural order in which items need to be completed. For example, you might need to do a user survey to sound-check a new layout before implementing it.

Determine What Items Contribute Most to Achieving the Sprint Goal

Ask: “Which items can help us best achieve our Sprint goal?”

Last but not least, remember that Sprint planning should happen around a Sprint goal. Every item in a Sprint backlog contributes to the Sprint goal, some more than others. Consider prioritizing the items that contribute most to the Sprint goal.


About the Author

Zhi Lee is the owner of Teamworx, a consultancy based in Auckland that provides Agile Coaching services.

Sprint (software development) agile

Opinions expressed by DZone contributors are their own.

Related

  • Improve Your Agile Processes With Artificial Intelligence
  • Feature Owner: The Key to Improving Team Agility and Employee Development
  • Agile Practices That Developers Can Use to Create Better Projects
  • Enhancing Agile Product Development With AI and LLMs

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: