Why do we need Prioritization?
We all do prioritization in our everyday life, because we have limited time for every set of items to execute, and that’s why we choose the most important actions to execute first and followed by lesser important ones. Similarly, we prioritize functionality or tasks in software development, because few functionalities are more important than others. Let me explain a few real-life situations, and how we prioritize our actions within that situation and then will relate those concepts to the situation of software development to prioritize stories in Product Backlog.
30 min break within 1-day of training, Your phone was switched off during the training, and You found 10 missed calls during the break. and wants to call back a few of them.
Identifying expenses with a limited budget
Visiting remote town far from your home location for business purposes, and planning to meet a few of your friends and family member as on when you get time from your business meetings.
Situation: Product backlog Prioritization. you have 35 stories in backlog not yet committed, want to prioritize the stories for the next sprint.
Amount of Money
Situation: Backlog Prioritization
What to Prioritize
Whom Should I call first and whom should I call later. and order I will call them
What are the expenses I should plan first, and can not skip, and what are the nice to have kinds of expenses I can plan for later?
The sequence of the friend I will meet so that In case I don’t get enough time to meet all, at least I will end up meeting the most important friends.
Situation: Backlog Prioritization
Which story should I put at the top of my list by making its rank 1, and following my comparatively less important stories? So that during sprint planning or grooming I can identify which story to pick first followed by the next story in rank.
What to consider during Prioritization
- Possible duration of the call
- importance to make that call
- any other call related to the important calls
- Amount of each expense
- how important to make that expense
- Related or dependent expenses
- Distance from my business location
- what is the important level it is, for you to meet your every friend?
- friends living in close proximity
Situation: Backlog Prioritization
- Business Value of each story
- Amount of work for the stories
- Associated Risks and its mitigation time for the stories
- Dependencies associated with the stories
- any related story can be done together
What is Product backlog Prioritization?
Product Backlog prioritization is one of the most important exercises in agile software development. Any project is successful if the stakeholders or clients or business gets the most valued functionality at the earliest. And that is possible by effectively and consistently prioritizing the requirements (users’ stories). Backlog prioritization is required to organize the product backlog items (user story/Defects/Spike etc) to make the sequence of its development and deployment. This Sequence is followed by the scrum team to choose product backlog items during grooming or sprint planning.
The influencing factors for prioritizing product backlog items are
- Customer Satisfaction
- Business Value
- Risk & Opportunity
Benefits of backlog prioritization
These are the key benefits of an effective and consistent backlog prioritization
- Fastest return on investment
- Customer or Business satisfaction
- Better management of dependencies
- Minimizing Risks
- Keep focused on Value-driven development.
Benefits to the Scrum Team
- Effective Grooming by saving time of selection story
- Effective Sprint Planning by saving time of selection story
- Better visibility to pick stories within the current sprint scope, if there is bandwidth
- Better visibility to drop stories from current sprint scope, if bandwidth reduces because of many reasons like Team members’ absence, emergency production fix, etc.
Treatment of different backlog Items during prioritization
All Items in the product backlog are treated equally during backlog privatization, which can include, Defects or bugs, New Functionality, Enhancements, and Spikes.
What to Consider during prioritizing agile work items?
There are many influencing factors to consider during prioritizing backlog items. The most important consideration factors are.
1. Customer Satisfaction
We always prioritize stories by keeping in mind the factor of customer satisfaction, by assigning the functionality (backlog item) a high priority that have have a probability of higher customer satisfaction. and prioritize that functionality first without that customers may get dissatisfied.
So we need to implement the basic needs first, then the performance area, and then the delightful functionality check out the section below for Techniques of product Backlog prioritization, which explains the Kano Model to understand how the measurement of customer satisfaction helps us to prioritize our Product backlog item
2. Business Value
Understanding the business strategy and business goal is very essential to prioritizing the functionality. That’s why the product owner or the business Analyst is the best person to prioritize product backlog items. Identifying which functionality will add the most value to meet the business goal is helpful to prioritize the product backlog item. The sponsor, Sales team, or strategic thinker influences the business value by targeting long-term benefits or immediate value addition to counter competitors.
3. Effected number of users / or frequency of use
This factor is product specific, not everywhere considered a prioritization factor. The functionality may be prioritized by keeping in mind the number of users will be affected. for example, in an eCommerce web site look and feel of a consumer home page will get higher priority than a supplier home page. Similarly, if a functionality will be used more often, that should be prioritized early to work on any additional optimization work for it if needed.
4. Cost to develop and implement the functionality
High costs not necessarily be on low priority, we need to think rationally, about each functionality’s cost and ROI. Cost is not the only factor, during prioritizing we need to think about the return of the functionality as well. Definitely, Low cost – High return will be on top priority and similarly High cost – low return can be a low priority. But High cost – high return can also be at top of the list, considering other factors of prioritization.
Ranking high risks functionality at the top of the list maximizes the early mitigation. Where keeping high-risk functionality for a later stage of the project, increases the overall risk of implementation.
Functionality with high complexity or difficulty is advisable to start working on the early stages of the project, As the team is fresh so allocation of the skilled and experienced members is easy. And If it takes more time than estimated, the team will also have more room to adjust the extra time.
Let’s utilize these consideration factors to get the Priority rank:
There are many techniques to prioritize the product backlog, we will discuss in detail about Moscow method and Kano Model, later in this article.
Here let’s talk about getting priority by considering a few of the above factors.
- Identify the factors your project will consider to analyze the priority, you can use all the above factors or the most impact-full factors to do this exercise in this example we are using three factors a.) Customer Satisfaction, b.) Business Value, c.) Cost.
- Allocate the weightage to each consideration factor, in case you think all the factors are of equal weight for your particular project, just give 1 to all. in this example, we have allocated 12 to Customer satisfaction, 10 to Business Value, and 7 to cost.
- Have your backlog ready with the items including Defects, stories, Spikes, etc. In this example, we are assuming our backlog has 10 stories that we are prioritizing.
- Define a scale to provide a rate to each story against its consideration factors. In this example, we are having a scale of 1 to 10.
Refer to the below Matrix. followed by the explanation, to get the calculation mechanism to achieve the priority Ranks
This matrix has the consideration factors and their weightage as columns and the 9 backlog items (Story 1 to story 9) as rows. The numbers inside the matrix are the relative values to denote the rate for each story for its respected consideration factor. The rates are on a scale of 1 to 10. Each story has a total value in the 2nd last column. It represents the cumulative value of all the factors for that story. Factors value for a story is calculated as weight multiplied by its Rate. The last column represents the priority or rank of the story, the maximum value is on high priority with rank 1, and the minimum value is low priority. In this example, the top priority story is story 6, and the lowest priority story is story 3 and story 4.
End of Section Product backlog Prioritization
Scrum team members’ role during Prioritization?
- Product OwnerThe Product Owner is responsible for prioritizing the product backlog, and ensuring the team delivers to the customer, the most valuable functionality first.
- Scrum MasterThe Scrum Master facilitates the prioritization, by working closely with the product owner, and does not work directly to prioritize backlog items.
- Development TeamThe development team members are typically observing the process and may provide inputs on request.
When to prioritize stories in Backlog?
Backlog prioritization exercise is advisable to conduct frequently, at least once a week. the candidate backlog items for prioritization are depended upon what stages that item is in.
Generally Backlog Items under the Initial stage (Backlog) or in Groomed or Defines stage are potential candidates for prioritization. The Backlog item that is already committed for the current sprint, currently in progress, or completed or accepted, does not need to be prioritized. Because those are already prioritized or ready to deploy.
Some prioritization techniques need the size or estimated value to prioritize, thus it takes only the backlog items from the Defined/ Groomed state to prioritize.
Backlog items in a different state to prioritize
Techniques to Prioritize Product Backlog Items
There are many ways of doing prioritization. The most common areas below
With this technique, we categorize our user stories into different baskets like high low medium, etc., and pick backlog items to groom, plan or construct. These are techniques of basketing Product backlog items to prioritize in groups. Play the video below to watch the practical demonstration in ALM tools like Jira, Rally, etc. prioritizing backlog with different techniques including affinity analysis.
With this technique we arrange our backlog items, rather I will say the functionalities, keeping in mind the customer satisfaction factor. The Kano Analysis chart has different areas of customer satisfaction, and we place our backlog items in those areas and prioritize accordingly. The different areas of functionality are as below
- Must be Functionality
Customers usually take those functionalities for granter, If implemented customers are just neutral, but if not implemented or poorly implemented, customers are very dissatisfied.
- One Dimensional Functionality
Those are the functionality satisfied the customer if implemented and dissatisfied if not implemented. Those functionalities are often discussed with mutual agreement between the development team and the business/customer.
- Attractive Functionality
Those are the functionality that satisfied the customer if implemented but don’t dissatisfy the customer if not implemented. Those functionalities are often not demanded by the customer, but customers get delighted by having those functionalities.
- Performance Functionality
Those are the functionality are proportional to implementation and satisfaction. The more we implement more the satisfaction will be.
- Indifferent Functionality
These functionalities are neutral neither good nor bad, implementing them or not implementing them does not satisfy or dissatisfy the customer.
Play the video below to watch details of Kano Analysis and how we can prioritize our backlog items using this technique.
Moscow is another method of prioritizing work items in Product development. The acronym is derived from the first letter of its 4 prioritizing categories (Must Have, Should Have, Could Have, Would like to have). This is another way of Affinity analysis by basketing the product backlog items in four categories. As the name of each category, the team prioritizes the Must have functionality first followed by Should have, Could have, and would like to have, to get the return of benefit faster, reduce the loss of high importance functionality in case of time or budget constraint. Play the video below to watch the practical use of prioritizing backlog items in ALM tools like Rally and Jira.
Ranking items is another way of prioritizing backlog items in the stack, A rank value (1,2,3,4,5…). With this method, we organize our backlog items in stacks, one above another. Rank 1 is considered a high priority than rank 2. In our backlog, the higher ( low number value) rank or high priority appears above the relatively lower rank (high number value). We pick the top product backlog item first to groom, plan, construct, etc followed by the lower rank. Play the video below to watch a practical demonstration of prioritizing product backlog items using the Ranking method