What is WSJF?
Weighted Shortest Job First (WSJF) is a prioritization model used to sequence jobs (e.g. Features, Capabilities and Epics) to produce maximum economic benefit. In SAFe, WSJF is estimated as the Cost of Delay (CoD) divided by job size.
© Scaled Agile, Inc.
Weighted Shortest Job First is a method developed by Don Reinertsen. It basically says:
- Shorter is better. If it doesn’t take long, do it first.
- Do whatever brings you the most economic benefit as soon as possible.
You can rate your “jobs” (Features, Capabilities and Epics) with the following criteria:
- User Business Value: What is the relative value to the customer or business? Do our users prefer this over that? What is the revenue impact on our business? Is there a potential penalty or other negative effects if we delay?
- Time criticality: How does the user/business value decay over time? Is there a fixed deadline? Will they wait for us or move to another solution? Are there Milestones on the critical path impacted by this? What is the current effect on customer satisfaction?
- Risk reduction-opportunity enablement value (RR/OE): What else does this do for our business? Does it reduce the risk of this or a future delivery? Is there value in the information we will receive? Will this feature enable new business opportunities?
- Job Duration (Job size): For duration or size, you can usually use either some rough or detailed estimates (e.g. story points) or planned costs/budget.
User Business Value, Time criticality and RR/OE are added together and called “Cost of Delay”.
CoD is the money that will be lost by delaying or not doing a job for a period of time.
You obtain your WSJF value by dividing the Cost of Delay by the Job Duration:
How to apply WSJF to your Features
If you are working with Jira or Azure DevOps, you can either use plugins or extensions or you can simply export your features into a table and add a column for each criterion you need to rate: User Business Value, Time criticality, etc.
The first time you apply the calculations, you may be very surprised about the new priorities. It may also lead to some discussions with your Product Management and/or your System Architects. Maybe some parameters were not set correctly the first time and you have to re-estimate them. I recommend to review the results; but in any case, do not fake the numbers.
Calculate your Capacity, Cut and Communicate!
In order to best prepare a PI planning, you should calculate your teams capacities in advance. Estimate how many Story Points you can use for the planning. Consider some risks in your capacity estimation.
After you get your estimation, go through your WSJF list and cut out the Features which can’t be done. Afterwards be transparent as soon as possible with Product Management, Architecture and Business Owners about the priorities and communicate if Features have to be postponed. With your WSJF list, you now are able to explain in detail as to, why you are doing some work first and why some things need to be cut.