Weighted Shortest Job First (WSJF)

Prioritizing with WSJF

Weighted Shortest Job First (WSJF) is a prioritization model used to sequence backlog items (e.g., epics, features and user stories) to produce maximum economic benefit [WSJF 2009]. In DevOps there is a continuous flow of value delivery and to “make sure” that this is the value needed, priorities must be updated continuously to provide the best economic outcomes. WSJF is used to prioritize backlog items by calculating the relative Cost of Delay (CoD) and duration (time needed to realize the item). WSJF is estimated as the CoD divided by duration.

Weighted Shortest Job First Calculation

In order to calculate WSJF, the team must determine the CoD and the duration as described in the next sections. To support you calculation you can download the template.

Cost of Delay

Three primary elements contribute to the Cost of Delay:

  • Business value (BV)
    Indicates the importance for stakeholders, but also possible risk (= possible negative impact * chance of failure) that is incurred when the realization of the item is delayed.
  • Time criticality (TC)
    Indicates how the business value decreases as time passes and considers milestones that must be achieved.
  • Risk reduction and/or opportunity enablement (RR|OE)
    recognizes the extent to which this item removes risk in this or a future delivery, or relevant information (for example, needed to make choices in the near future) can be obtained through implementation of this item.

These elements do not have to be calculated in absolute numbers. The team can just compare backlog items relative to each other using the same Fibonacci numbers as used in planning poker (refer to “Estimating the effort“). The relative CoD is calculated as shown below.

Cost of Delay

Duration

The time needed to realize the item can be difficult to determine. On the other hand, when the team has fixed resources, job size (in story points) is a good indicator for the duration. (If I tile a kitchen wall and the bathroom wall is 4x as large, it will cost me 4x as much time.) Actually, the DevOps team knows how to estimate item size in story points already (“Estimating the effort”), which helps estimating the duration.

Practical use of WSJF

In practice, we can estimate these parameters as follows: create a matrix with one item in each column and one of the parameters of the WSJF formula in each row. In the case of relative estimation, you look at one row at a time, set the smallest item to 1 and then set the others relative to that. Then – per item – divide the CoD by duration (in story points or hours). The item with the highest WSJF is the next most important item. In the example below “Item 3” would be the most important item.

Weighted Shortest Job First

When using this relative estimation, please be aware that if there are large deviations between the numbers for the different rows (for example when business value ranges from 1 to 3 and time criticality ranges from 1 to 8), then setting the smallest value to 1 may result in too little differentiation between the items, so keep an eye on the results of the calculation (especially if the results are rounded numbers).