Feature Prioritization
Weighted Shortest Job First (WSJF) is a common prioritization technique for Features in the ART Backlog. Our backlogs often have many Features, and it can be difficult to know which to prioritize first.
Why WSJF?
Principles of Product Development Flow, by Reinertsen, [9] described a model where we want to minimize the amount of money lost by delaying a job. We refer to this as the cost of delay. Our organizations strive to get the most value in the shortest amount of time, and by using WSJF, we can empirically determine which jobs provide the most value in the shortest amount of time.
So, why WSJF? We want to identify the Features that will give us the most value in the least amount of time. Let’s look at how to do this.
Applying WSJF
WSJF can seem pretty complicated with the numbers and values, and math! Let’s simplify this. We need four things when we look at WSJF:
- User Business Value: How important is this to our business or customer?
- Time criticality: Are there key dates we need for the Feature?
- Risk Reduction and/or Opportunity Enablement (RROE): What risk are we avoiding, or what opportunity are we creating?
- Job size: How big or how long will it take to complete the work?
With these four pieces of information and some math, we can get the WSJF score and start working on the highest-valued items.
User Business Value, time criticality, and RROE are summed to determine the Cost of Delay (CoD).
The formula for WSFJ is simply the cost of delay divided by job size:
Pro tip
We use Job Size as a proxy for the duration; however, we still may need to refactor this as it’s not always a good proxy.
This seems simple, and it is when you have a few more tricks up your sleeve:
- Use a spreadsheet (or similar tool) to capture the values
- Use a modified Fibonacci for the values of 1 to 20
- Every column must contain a 1
- Use relative estimation in determining the values
- One at a time, estimate the CoD components (user Business Value, time criticality, and RROE) and then the job size for all Features
Let’s go through an example step by step. We are getting ready to sell our house. We have three things that we want to get done before we sell our house. We will consider each of these a Feature:
- Landscape the front yard.
- Fix a leaky faucet.
- Paint the bedroom.
Here’s an example:
Feature |
User Business Value |
Time Criticality |
RROE |
CoD |
Job Size |
WSJF |
Landscaping |
+ |
+ |
= |
/ |
= |
|
Fix Faucet |
+ |
+ |
= |
/ |
= |
|
Paint Bedroom |
+ |
+ |
= |
/ |
= |
Step 1
First, we will look at the User Business Value column and determine which Feature has the least value to us. It is important to note that when working through this with your organization, you will want to agree on what each of the columns means to your organization.
In our scenario, we think that fixing the leaky faucet would provide the least amount of value when selling the home, so we will give it a 1. We think that landscaping will give us the most value as first impressions and curb appeal are important when selling a house:
Feature |
User Business Value |
Time Criticality |
RROE |
CoD |
Job Size |
WSJF |
Landscaping |
13 + |
|||||
Fix Faucet |
1 + |
|||||
Paint Bedroom |
5 + |
Step 2
We will now look at Time Criticality. Our realtor (US)/estate agent (UK) wants to take pictures of the house for the listing, so both painting the bedroom and the landscaping are urgent priorities. Fixing the leaky faucet is our least time-critical item:
Feature |
User Business Value |
Time Criticality |
RROE |
CoD |
Job Size |
WSJF |
Landscaping |
13 + |
8 + |
||||
Fix Faucet |
1 + |
1 + |
||||
Paint Bedroom |
5 + |
8 + |
Step 3
Our third step is looking at the RROE. We think painting the bedroom is our 1 because buyers might still choose to repaint, so we have limited OE, and there isn’t any risk reduction we could identify. We think that the landscaping and curb appeal will create some opportunity, but there isn’t any risk we are reducing. The leaky faucet won’t pass an inspection, and there is a possibility that the leak could get worse and flood the house, so we scored that higher:
Feature |
User Business Value |
Time Criticality |
RROE |
CoD |
Job Size |
WSJF |
Landscaping |
13 + |
8 + |
3 = |
|||
Fix Faucet |
1 + |
1 + |
8 = |
|||
Paint Bedroom |
5 + |
8 + |
1 = |
Step 4
We now total the User Business Value, Time Criticality, and RROE into the CoD column and estimate the Job Size. We think that fixing the leaky faucet will take the least amount of time, so we have given it a 1. Landscaping is significantly more work, and we thought that painting was somewhere in the middle:
Feature |
User Business Value |
Time Criticality |
RROE |
CoD |
Job Size |
WSJF |
Landscaping |
13 + |
8 + |
3 = |
24 / |
8 = |
|
Fix Faucet |
1 + |
1 + |
8 = |
10 / |
1 = |
|
Paint Bedroom |
5 + |
8 + |
1 = |
10 / |
3 = |
Step 5
Divide the COD by the Job Size and review the results:
Feature |
User Business Value |
Time Criticality |
RROE |
CoD |
Job Size |
WSJF |
Landscaping |
13 + |
8 + |
3 = |
24 / |
8 = |
3 |
Fix Faucet |
1 + |
1 + |
8 = |
10 / |
1 = |
10 |
Paint Bedroom |
5 + |
8 + |
1 = |
14 / |
3 = |
4.6 |
Our results indicate that we should complete the work in this order:
- Fix the leaky faucet.
- Paint the bedroom.
- Landscape the front yard.
The secret to winning a WSJF is job size. We want to do the smallest jobs first. Our results would have looked different if we split landscaping into several smaller jobs, such as mowing the lawn, putting down mulch, and sweeping off the porch. While the smallest jobs win, don’t fall into the trap of making Features too small. The overhead of managing and maintaining so many Features outweighs the benefits.
What if we disagree with WSJF?
On occasion, there will be fundamental disagreement with the results, and organizations will determine that there isn’t any value in WSJF. When this occurs, it’s important to dig a bit deeper and understand the root cause of the disagreement. You will often find that the organization hasn’t broken down large initiatives into smaller deliverables to enable faster feedback.
WSJF is one way to prioritize the work and works well when there are many factors to consider – if you don’t need to do it, don’t. Often, Product Management has a good sense of priority and can simply order the work based on experience and feedback.
WSJF is one of many prioritization techniques you can use to prioritize the backlog. Leveraging the ART Kanban board with WIP limits is also a natural prioritization method and helps keep backlogs manageable. Whichever method you choose, having a prioritized backlog is critical as you head into PI Planning.