Also called: Weighted Shortest Job First, WSJF, Weighted Shortest Job, Weighted SJF, WSJF Scheduling, and Weighted SJF Scheduling
See also: Return on Time Invested, Cost of Delay, ICE Scoring Model, RICE Scoring Model, MoSCoW Prioritization
Relevant metrics: Cost of Delay, Value of Work, Risk Reduction, Time Criticality, and Business Value
How to calculate Weighted Shortest Job First (WSJF):
WSJF = Cost of Delay / Job Duration
What is Weighted Shortest Job First (WSJF)?
Weighted Shortest Job First (WSJF) is a prioritization model based on the concept of Cost of Delay, which is the cost of not having a feature or product available to the user. WSJF assigns a numerical value to each feature or product based on its relative importance and urgency. This value is then used to prioritize the features or products in order of importance and urgency. The model is based on the idea that the most important and urgent features or products should be completed first, as they have the highest cost of delay.
Where did Weighted Shortest Job First (WSJF) come from?
Weighted Shortest Job First (WSJF) is a prioritization model developed by the software development company, David J. Anderson & Associates. It was created to help organizations prioritize their backlog of work and ensure that the most important tasks are completed first. The model is based on the concept of “job size”, which is a measure of the effort required to complete a task.
The model assigns a “weight” to each job based on its size, and then uses this weight to prioritize the jobs. The model also takes into account the “value” of the job, which is a measure of the benefit that will be gained from completing the job. The model then uses the weight and value to determine the order in which the jobs should be completed. The model was first introduced in the book “Kanban: Successful Evolutionary Change for Your Technology Business” by David J. Anderson and Andy Carmichael in 2010.
Why use the Weighted Shortest Job First method?
In a flow-based system, priorities must be continuously updated to ensure the most optimal economic results. Rather than simply relying on prioritization based on a theoretical return on investment for each job, job sequencing produces the best outcomes. By continuously updating priorities, a company can ensure that they are delivering the most value to their customers and stakeholders.
Taking Cost of Delay into account
One way to prioritize jobs in a flow-based system is through the use of the Cost of Delay (CoD). CoD is a measure of the economic value of a job over time, or the money lost by delaying or not doing a job for a specific time. For instance, if implementing a prospective feature would be worth 100,000 per month, and there was a delay of three months, the total CoD would be 300,000. The WSJF model supports the economic principles of Lean product development flow by taking an economic view, ignoring sunk costs, making financial choices continuously, and using decision rules to decentralize decision-making and control. If a company only quantifies one thing, it should be the Cost of Delay.
Estimating the Cost of Delay can be challenging in practice. The calculation of WSJF assumes that one can determine the CoD (numerator) in absolute financial terms per unit of time, and the job time can be estimated with some degree of accuracy. However, in reality, both numbers can be challenging to estimate. CoD is an estimate at best, and it is difficult for anyone to know the actual value of a new job (a new feature) that has yet to be delivered to the market. Nevertheless, Agile methodology can help quickly estimate on a relative basis. Since there are many ‘jobs to be done’ in the backlog, simply using relative numbers to compare jobs can be a useful approach.
Estimating Job Duration: A Proxy for Time
The next variable in the WSJF formula, the job duration, is often difficult to estimate, particularly in the early stages of a project when the available capacity and time requirements for each job are unknown. However, job size can serve as a useful proxy for duration, as larger jobs tend to take longer to complete than smaller ones.
Using job size as a proxy for duration is not without its caveats, however. For example, specialty skills may be readily available to enable a large job with high value to be completed faster than expected. In such cases, the job may provide more value in a shorter period, rendering job size a less reliable indicator of job duration. Similarly, a small job may be resource-intensive or have dependencies that lengthen its duration relative to a larger job. To account for such exceptions, adjust the relative estimated duration as needed. Nevertheless, minor errors in job selection are often not critical in a flow-based system, as the most important job will eventually rise to the top of the backlog.
Calculating WSJF Step by step
- Computing Cost of Delay. According to Scaled Agile, Cost of Delay in the WSJF framework comprises three components - Value to the business and/or user, Time criticality, and Risk reduction and/or opportunity enablement. You can create a scale for each component and add them up to obtain your Cost of Delay score.
- Determining Job Duration (or Size). Calculating job duration in WSJF can be challenging due to factors such as resource levels, dependencies, and skill sets. But it is crucial to assign a numerical value to each initiative on your list based on a methodology agreed upon by your team. The lower-number items will be your higher-priority initiatives.
- Dividing Cost of Delay by Job Duration (or Size). The final step is to divide your Cost of Delay by Job Duration for each initiative on your list. This prioritizes initiatives with the highest overall scores at the top of your list.
Using WSJF, you can quickly and efficiently prioritize work and ensure that high-value and time-critical initiatives are addressed first. By prioritizing initiatives with higher Cost of Delay scores and lower Job Duration scores, you can identify the most important initiatives to focus on.
- What is the relative importance of each job or task?
- What is the estimated cost of delay for each job or task?
- What is the estimated duration of each job or task?
- What is the estimated effort required for each job or task?
- What is the estimated risk associated with each job or task?
- What is the estimated value of each job or task?
- What is the estimated return on investment for each job or task?
- What is the estimated cost of completion for each job or task?
- What is the estimated benefit of completing each job or task?
- What is the estimated impact of completing each job or task?
You might also be interested in reading up on:
- John Cutler @johncutlefish
- Kanban: Successful Evolutionary Change for Your Technology Business by David J. Anderson (2010)
Want to learn more?
Receive a hand picked list of the best reads on building products that matter every week. Curated by Anders Toxboe. Published every Tuesday.
No spam! Unsubscribe with a single click at any time.
Community events
Product Loop
Product Loop provides an opportunity for Product professionals and their peers to exchange ideas and experiences about Product Design, Development and Management, Business Modelling, Metrics, User Experience and all the other things that get us excited.
Join our communityMade with in Copenhagen, Denmark
Want to learn more about about good product development, then browse our product playbooks.