Skip to main content

How to assign Weighted Shortest Job First (WSJF) to work items

Learn how to set up and use the Weighted Shortest Job First (WSJF) technique to assign value to Jira work items and prioritize backlogs in Advanced Roadmaps.

Background

WSJF is a prioritization technique made famous by the SAFe framework. It’s intended to help teams identify backlog items that will deliver higher customer value with lower effort.
The following are some of the critical aspects of the calculation of WSJF:
  • Business Value (BV): relative value to the business or the end-user.
  • Time Criticality (TC): impact of delay in delivering value to the end-user.
  • Risk Reduction (RR) / opportunity enablement: enables new business opportunities or reduces the potential risks for present or near-future considerations.
  • Job Duration (JD): relative approximation of time based on an initial rough estimation of the work.
  • Job Size: can be used as a proxy for JD. This is a relative estimation of how large the expected effort will be.
The formula for WSJF calculation is:
WSJF = (BV + TC + RR) / JD
This formula shows that higher BV, TC, and RR numbers (or lower JD numbers) lead to higher WSJF numbers. In other words, the most value to the customer with the fewest drawbacks. Here's an example:
BV
TC
RR
JD
WSJF
Feature A
5
10
10
5
(25/5) = 5
Feature B
10
5
5
5
(20/5) = 4
In this example, feature A has a higher WSJF than that feature B. Even though feature B might have a higher BV, WSJF enables us to take a more holistic view of the value delivery and helps us make more informed decisions.
Also, the aggregate of (BV + TC + RR) can be summed up as the cost of delay.
You might also see WSJF described as: Cost of Delay / Job Duration.

Description

You will need Jira software administrator permission to create the five custom fields listed below. Refer to Atlassian product documentation for information about how to create custom fields and add them to the appropriate screens.

Create a custom field | Atlassian Support

Add a custom field to a screen | Atlassian Support

  1. Business Value
  2. Time Criticality
  3. Risk Reduction
  4. Job Duration or Job Size
  5. WSJF
Once the above fields are created, create the automation rule. You can make the automation rule for a single project to do a dry-run and then expand it to multiple relevant projects.

You will need Jira software administrator permission to create global automation rules.

Create and edit Jira automation rules | Cloud automation | Atlassian Support

Jira Software automation: basics & common use cases

First, in Jira, create the automation rule.
  1. Create a WSJF calculation rule in the global automation section under the admin system settings.
    1. Navigate to the rules page by selecting settings in the upper right corner.
    2. Select system.
    3. In the left navigation pane under the automation section, select global automation.
    4. Select create a rule on the top right.
  2. Define the trigger.
    1. Select field value changed and add all the custom fields for WSJF.
      1. Make the selections and verify everything matches the screenshot below.
      2. Select save.
        field value change
In the add component section, select new condition and select the if / else block. Next, you need to define two conditions to ensure that Job Duration or Job Size always have a valid value to properly calculate the WSJF value. (Product UI changes might impact the steps below. The screenshot is provided as a guide.)
  1. Select all conditions match.
  2. Select + add conditions.
  3. Select issue fields condition.
  4. In the issue fields condition, for field, select Job Duration or Job Size.
  5. For condition, select is not empty.
  6. Select + add conditions, select issue fields condition.
  7. For field select Job Duration or Job Size.
  8. For condition select greater than a value of 0.
  9. Select save.
    If Block
In the add component section:
  1. Select new action.
    1. Select edit issue (The action of WSJF calculation should be performed on the edit issue when the above if condition is verified).
      1. Search for and select the WSJF field to set. (We will be using Jira smart values math expressions to perform the calculations and update the WSJF number field.)
      2. In the WSJF text field, copy and paste the expression below. *Remember to replace the customfield_ids with the correct entries for BV + TC + RR / JD (or Job Size) for your Jira instance. {{#=}}({{Issue.fields.customfield_13034|0}} + {{Issue.fields.customfield_10019|0}} + {{Issue.fields.customfield_13035|0}})/{{Issue.fields.customfield_13036|0}}{{/}}
      3. Select save.
This is how the automation rule should look so far:
WSJF Calculation
  1. Select add else to the left or the WSJF Automation box. (We add this statement to make sure that the WSJF score is valid.)
    1. Leave the default value for the run actions if … selection as all conditions match.
    2. Select save.
    3. In the add component section, select new action.
    4. Select edit issue and select field WSJF. Leave the default at this field will be cleared.
    5. Select save
      Edit Issue
This is how the completed WSJF calculation should look now:
WJSF Cal 2
If you have not done so already, name your automation WSJF calculation and select turn it on.
In plans:
  1. Select plan settings.
    1. Select custom fields to include all the WSJF custom fields.
    2. Select save and go back to plan.
    3. You can also follow these instructions: Add and view custom fields in Advanced Roadmaps
  2. Update the view with the WSJF fields and show them as columns.
  3. Create a new view and name it WSJF
    WSJF View
    1. Below is an example of how your plan could look with all the visible WSJF fields. We recommend using WSJF for epics/features or investment-level work objects.
WJSF Fields
If you still see a blank value for WSJF, you might be missing a variable, or you might need to refresh the page in your browser to trigger the calculation.

We recommend facilitating the capture of BV, TC, RR, and JD across all the selected backlog items, then saving all the changes simultaneously to Jira by selecting review changes. Then refresh your plan to render the WSJF values.

Update the rank so the priority persists in other views and filters:
  1. Select view settings and select sort by rank.
  2. Drag and drop the work items in priority order.
  3. Select review changes and update the new ranking to Jira.

Output

  • New custom fields to collect Business Value, Time Criticality, Risk Reduction, Job Duration or Job Size, and WSJF on Jira epics.
  • New global automation rule to calculate WSJF.
  • Guidance on how to display and prioritize Jira backlog items using WSJF.

References

Was this content helpful?

Connect, share, or get additional help

Atlassian Community