Weighted shortest job first, or WSJF, is a work prioritization tool that has its roots in the Scaled Agile framework (SAF). It is a scoring mechanism that allows businesses to better understand the impact of job sequencing.
In its simplest form, weighted shortest job first can be calculated by dividing the cost implication of delaying a job by its estimated duration.
Cost of delay / Job duration = WSJF value
And great news: this doesn’t require exact numbers to work. Values for each part of the equation are assigned on a fixed scale (1 – 10 for example) based on estimates. Providing this scale is consistent across all jobs being weighed, WSJF can be an effective tool for prioritizing workloads.
What you end up with after dividing the cost of delay by the job duration for all jobs being considered is a value: the Weighted Shortest Job First value. The job with the highest WSJF value will be the shortest in duration and/or carry the highest cost of delay.
The result of WSJF should look something like this:
User / Business value
Risk / Opportunity value
Cost of delay
(7+4+3) = 14
(10+8+6) = 24
(3+5+2) = 10
The cost of delay is comprised of 3 parts. To calculate CoD you should use your fixed scale to score the following criteria on each project:
User/Business value. Consider the relative value of each job to your customers or business. For example, projects or features which generate most revenue, or which customers most often request, will score higher.
Time criticality. Does the user/business value drop dramatically over time? If you know a competitor is working on something similar, then your project would carry a high time criticality score as you want to be the first to market with your new product or feature.
Risk reduction/Opportunity enablement value. What are the future implications of each job? Does one open up other business opportunities or reduce future risk?
Once all available projects have been scored using the above criteria, add them together to get a relative CoD score. The higher a project scores for user/business value, time criticality and risk reduction/opportunity enablement, the costlier it will be to delay.
Next you need to calculate the job duration for each project.
While it sounds straightforward, job duration can be tricky to work out.
Using the number of worker hours will produce values so large that the WSJF values become meaningless. So assigning a value based on relative estimated workers per month is more effective.
If you are unsure how long projects will take, then job size can be used in place of job duration to work out the WSJF value. For technical development projects you could use the volume of code required. For marketing projects, the volume of collateral needed. And so on.
Remember that the values are estimates and should be relative to the other projects under consideration.