TheProjectManagement.Guru -SAFe - Weighted Shortest Job First or WSJF
Definition
Weighted Shortest Job First (WSJF) is a prioritization model used to sequence work for maximum economic benefit. In SAFe, WSJF is estimated as the relative cost of delay divided by the relative job duration.
Source: Scaled Agile Framework (SAFe)
Contents
Weighted Shortest Job First (WSJF) is a key tool or algorithm to prioritize backlogs by continuously evaluating the jobs by considering the relative user & business value, time criticality, risk reduction and/or opportunity enablement, and job size. WSJF adheres to the fundamental principle of Lean economics by conveniently and automatically disregarding sunk costs.
For better economic returns, priorities must be evaluated incessantly. Always job sequencing results the better outcomes rather than just ranking the jobs based on hypothetical ROI.
In the book The Principles of Product Development Flow: Second Generation Lean Product Development, Donald G. Reinertsen describes a model (WSJF) for prioritizing jobs based on the Cost of Delay.
CoD is the monetary value lost by postponing or not performing a job for a specific time which measures the economic value of a job over time.
Swayam planned to sell lemonade part-time (after school) and orders a lemonade stand from Amazon estimating that he can make $1000 per month. Amazon delayed the delivery of the lemonade stand for 2 months (this may not happen in real life but assume the scenario for the purposes of example). Now, Swayam’s total CoD (cost of delay) is $2000 (given all other criteria remains constant).
Example : calculating simple Cost of Delay
In Scaled Agile Framework, jobs are categorized into Features, Capabilities and Epics in their respective backlogs.
In the context of SAFe, the WSJF model wires the economic principles of Lean product development flow by:
A company is evaluating which of the A, B and C jobs to pick first in getting best economic outcome for it’s business.
Job A
Given, Duration = 1; CoD = 10; => WSJF = CoD/Job Duration = 10/1 = 10
Job B
Given, Duration = 3; CoD = 3; => WSJF = CoD/Job Duration = 3/3 = 1
Job C
Given, Duration = 10; CoD = 1; => WSJF = CoD/Job Duration = 1/10 = 0.1
If you consider Low WSJF First approach, the order of performing the jobs would be C, B and A in sequence that means jobs B & A need to wait till C is finished and job A need to wait till C and B are finished.
Cost of delay for job C will be 0 as it’s the first job to start. For job B to start, it need to wait for 10 durations of job C and it CoD per unit of duration is 3 which accumulates a total of 30 units of total CoD. For job A to start, it need to wait for 10 durations of job C plus 3 durations of job B and it CoD per unit of duration is 10 which accumulates a total of 130 units of total CoD.
Total CoD = 130 units for job A + 30 units of job B = 160 units
Total CoD for the company in the Low WSJF First approach
If you consider High WSJF First approach, the order of performing the jobs would be A, B and C in sequence that means jobs B & C need to wait till A is finished and job C need to wait till A and B are finished.
Cost of delay for job A will be 0 as it’s the first job to start. For job B to start, it need to wait for 1 duration of job A and it CoD per unit of duration is 3 which accumulates a total of 3 units of total CoD. For job C to start, it need to wait for 1 duration of job A plus 3 durations of job B and it CoD per unit of duration is 1 which accumulates a total of 4 units of total CoD.
Total CoD = 4 units for job C + 3 units of job B = 7 units
Total CoD for the company in the High WSJF First approach
As the above calculations show, choosing the next best job can have a dramatic economic impact for a company.
Estimating the Cost of Delay is crucial in the calculation of WSJF. In practice, determining the absolute financial value per unit of time is extremely difficult and it’s not a one man activity but a collective effort of all the stakeholders.
Arriving at a best estimate of the absolute value of CoD is hard and not realistic – so we always calculate the CoD as a relative value w.r.t. the jobs or tasks at hand (Do you remember Einstein’s Theory of relativity? That might get handy in appraising the CoD – just kidding, it not that complex though 🙂 ).
Always compare all backlog items to each other to assign a relative weight (value) for each item which is derived from the modified Fibonacci sequence.
Cost of Delay can be derived based on three main components:
Customer-Business Value
We need to estimate the relative value to the customer or business by picking the next job
During estimation the business value for a job – all the stakeholders should consider the complete set of jobs available and assign a relative value to each job. You make ask yourselves some of the following questions.
Time Criticality
Evaluate if there is a decay of customer/business value over time?
While evaluating the time criticality of sequencing the jobs you need to consider deadlines, customer wait threshold and customer satisfaction. Some of the questions you may encounter during this process are as follows:
Cost of Delay (relative value)
=
Customer-Business Value
+
Time Criticality
+
Risk Reduction and/or Opportunity Enablement
Determining the job duration will be challenging especially in the early days as the available capacity and duration of each job is unknown. The ideal approach is to use job size as a good proxy for duration while calculating WSJF to compare jobs.
Considering job size is only an approximation and should very cautious as it’s not a perfect indicator of job duration. Some exceptional scenarios you may consider while proxying job size to job duration are as below:
In most circumstances, WSJF relative estimating is adequate (proxying job size) but rarely we need to worry about the above scenarios.
Let us consider an hypothetical example to understand the calculation of WSJF and picking the next best job to be performed.
Company XYZ Inc. is evaluating the tasks they have at hand to decide which of the following 3 jobs need to be worked on first.
A business case
1. Move to containerization deployment model
2. Create deployable application docker images
3. Hire DevOps personnel
Larger values assigned to user stories during estimation reflects higher uncertainty.
NOTE: It is important to ensure that each column contains a ‘1’ representing the smallest element to normalize the parameters to each other. Also, use the subset of the modified Fibonacci sequence while assigning the values to the items.
The item with highest WSJF is the highest priority item.
WSJF is a just a tool to frequently reprioritize jobs in flow-based systems to realize optimal economic value. It logically assists stakeholders in decision making to pick the next best job to perform.
Features are the key economic driver for trains (both at Agile Release and Solution level). So, it’s imperative that reprioritizing the features incessantly is the best ROI a team can realize.
A typical ART backlog will have 100+ features but at any given point in time not many features can be worked on simultaneously. In order to properly prioritize the jobs from the backlog, maintaining a rolling WSJF estimates over time are very useful. Also, a collaborative effort from all the stakeholders (Product Management, Architects, Business Owners, affected teams, and others) to reprioritize ART feature is critical to ART performance.
WSJF is key in prioritizing features and capabilities in ART and Solution Train backlogs.
Let’s please consider some exceptional scenarios as well.
EA Capability Leader spearheads the work performed to develop an EA Capability within an organization.
Organizations operating in highly secure environments, such as the governments, military or defense industry, rely…
The US Government agencies are subject to a wide variety of computing standards designed to…
Do not waste your time with explanations. People only hear what they want to hear.…
Who Is A Stakeholder? A party that has an interest in an enterprise or project.…
Project Management discipline is the process & activity of planning, organizing and controlling resources, procedures…
This website uses cookies.