Table of Contents
How Do We Calculate the Cost of Delay (CoD) and the Weighed Shortest Job First (WSJF)?
Or “What is the mechanism for prioritizing and scheduling work?”
Often priorities seem to come in from multiple angles at the same time - customer “yelling” at us for something, sales needing something in order to close a deal, new initiative required to expand the market, and so on. We have limited capacity (limited supply) and always have too much demand on that capacity. We need a better approach to really understand whether we are making the best use of that capacity, to step back and make more economic decisions.
The approach we use is based on Cost of Delay (CoD) and Weighted Shortest Job First (WSJF):
What is the Cost of Delay (CoD)
Cost of Delay (CoD) is a way of communicating the impact of time on the outcomes we hope to achieve. Cost of Delay combines an understanding of value with how that value leaks away over time. Imagine you are company that sells toys. If you choosing between shipping a toy that can be ready for the Christmas period, and another that cannot, it is pretty obvious which one you should choose to work on all other things being equal.
What is the Weighted Shortest Job First (WSJF)
Weighted Shortest Job First (WSJF) is a prioritization model used to sequence jobs (e.g., Initiatives and Epics) to produce the maximum economic benefit. In a flow-based system, priorities are updated continuously to provide the best economic outcomes and job sequencing, rather than theoretical, individual job return on investment, produces the best result. To that end, WSJF is used to prioritize backlogs by calculating the relative Cost of Delay (CoD) and job size (a proxy for the duration) and backlog priorities are continuously updated.
This is how we leverage these ideas in SAFe. For each Epic, we uses 3 values to calculate CoD:
- CoD = Business Value (BV) + Time Criticality (TC) + Opportunity Enablement or Risk Reduction (OE/RR)
Like Story Point estimates, BV, TC, and OE/RR are relative size estimates:
- Business Value (BV): using values 1, 2, 3, 5, 8, 13, 20
- Time Criticality (TC): using values 1, 2, 3, 5, 8, 13, 20
- Opportunity Enablement / Risk Reduction (OE/RR): using values 1, 2, 3, 5, 8, 13, 20
So, for example, a BV of 20 is 20 times more valuable than a BV of 1.
The CoD is divided by the Job Size (JS) to determine the WSJF which tells you the best scheduling order for a backlog based on an economic evaluation.
- WSJF = CoD / JS
JS is calculated either by:
- Guessing the total number of story points need to complete the work (pretend you have already broken down the Epic into its Stories) Note: you may need to normalize JS as otherwise the numbers for WSJF come out very small)
- Doing relative size estimates on JS using values 1, 2, 3, 5, 8, 13, 20
The highest WSJF should be scheduled first.
How Do You Get to a Common Understanding of Business Value, Time Criticality, etc.
The easiest way to have a room of relevant people (people who care about the business outcome), take two Epics and ask the room “which one has more business value?” and then “why?” Capture the why. Do this for a couple of Epics, and you’ll find that you have your starting list for Business Value criteria. Repeat for the other factors.
How do you generate these numbers? One facilitation approach is to use Facilitation - Play, Pass, or Move to establish the values for a couple of axes.
In the beginning some organizations don’t bother too much with OE/RR and just establish their WSJF based on BV and TC. This keeps things simple.
Want to Know More?
- Black Swan Farming view of CoD - includes the “why” of CoD.