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)

Weighted Shortest Job First (WSJF) – A Key Lean Prioritization Tool

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.

TheProjectManagement.Guru – WSJF

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.

What is CoD (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

Jobs deliver the best economic return if they bring the most value in the shortest time.

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:

  • Performing an economic assessment
  • Disregarding sunk costs
  • Making monetary choices incessantly
  • Considering decision rules to decentralize decision-making and control
  • At least quantify the Cost of Delay if you cannot quantify any other factors.

Understanding Reinertsen’s WSJF modelling

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

Let us analyze what is the total cost of delay if the company picks the job order based on Low WSJF First.

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

Let us analyze what is the total cost of delay if the company picks the job order based on High WSJF First.

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.

If effort and CoDs are different, do the WSJF!

Weighted Shortest Job First 5

Appraising the CoD

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
  • Time Critically
  • Risk Reduction and/or Opportunity Enablement

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.

  • What is the customer preference while selecting a job over the other? Assign a relative weight (a number) based on this.
  • Is there any revenue impact on the business? Do not always blindly select the job with a higher revenue impact, you need to consider various factor while assigning the right relative weight.
  • Is there a potential penalty or other negative effects if we delay a job over the other? Evaluate the dependency chain, resources availability, and any other factors which might adversely effects the sequencing the the jobs to assign right relative weights.

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:

  • Are there any fixed deadlines? Consider the deadlines for the jobs and make sure you sequence them to meet the deadlines without slipping.
  • Will the Customer wait for our solution or move to other solution available in the market? Be sure you evaluate the Customer’s wait threshold and sequence the job or jobs which deliver that solution within the estimated threshold otherwise you will be at a risk of losing your customer. If you are in question, make sure you talk to the Product owner or Solution owner or Customer directly.
  • What is the current effect on Customer satisfaction? In today’s fast pacing business, always uphold the customer satisfaction at the highest level possible. As dissatisfied customer will never return to you and also lead to a negative WOM (Word-Of-Mouth) at your business interests.

Cost of Delay (relative value)
=
Customer-Business Value
+
Time Criticality
+
Risk Reduction and/or Opportunity Enablement

Appraising the Job Duration

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.

TheProjectManagement.Guru – WSJF (Relative)

A Note on Using Job Size as a Proxy for Duration

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:

  • A small job which require a speciality expertise might take longer than a bigger job due to resource scarcity.
  • A large job with a high business value can be delivered more quickly than expected if specialty skills are readily available which yields more value in a shorter period.

In most circumstances, WSJF relative estimating is adequate (proxying job size) but rarely we need to worry about the above scenarios.

Calculating WSJF

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.
1. Move to containerization deployment model
2. Create deployable application docker images
3. Hire DevOps personnel

A business case

Larger values assigned to user stories during estimation reflects higher uncertainty.

  • Step 1 – Start by accessing the CoD parameters – Customer-Business Value, Time Criticality and Risk Reduction and/or Opportunity Enablement – one at a time. Always set the smallest item to 1 and then determine estimates for other items in the selected parameter in relative to the smallest item identified.
  • Step 2 – Once estimating all the 3 parameters of CoD, now it’s time to estimate the job duration. As we usually use job size as a proxy for the job duration assign weights using the technique followed in the step 1 by assigning 1 to the smallest job size.
  • Step 3 – Calculate the CoD per item by adding individually calculated parameters for each job
  • Step 4 – Calculate WSJF by dividing the CoD with job duration calculated in Step 2.

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.

TheProjectManagement.Guru – Calculating WSJF

The item with highest WSJF is the highest priority item.

Applicability of WSJF

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.

  • Team backlog prioritization – Typically, multiple job will be parallelly worked at the team level and the prioritization should have already decided and need to be completed with the iteration, so reevaluation the priorities which are local to team is not worth.
  • Portfolio Epic prioritization – During early stages it worth prioritizing the items in the portfolio backlog based on WSJF, but continuously prioritizing the items only based on ONLY WSJF is not ideal as we need to consider the substantial investments in the estimates along with the value or potential monetary returns and better-informed assumption on the likely duration.
Kotesh Kommanaboyina

MBA | PMP | PgMP | TOGAF® 9 Certified | SPC6

Recent Posts

Forming an Enterprise Architecture (EA) Team

EA Capability Leader spearheads the work performed to develop an EA Capability within an organization.

11 months ago

Confidential Computing with TEEs: Protecting Data in Use

Organizations operating in highly secure environments, such as the governments, military or defense industry, rely…

1 year ago

Government Cloud Standards

The US Government agencies are subject to a wide variety of computing standards designed to…

2 years ago

Importance of meetings in Project Management

Do not waste your time with explanations. People only hear what they want to hear.…

3 years ago

Program Stakeholder Engagement

Who Is A Stakeholder? A party that has an interest in an enterprise or project.…

4 years ago

Challenges for Project Management discipline in the rapidly changing world

Project Management discipline is the process & activity of planning, organizing and controlling resources, procedures…

5 years ago