Prioritization is the activity that organizes a set of items or work in order of importance relative to each other.

While prioritization is crucial in all aspects of life, it is a vital capability required in complex product development for ensuring the best possible economic outcomes. Given the fixed capacity available and the multitude of constantly changing requirements, prioritization helps focus energies on what needs to get done now versus what can be done later.

Prioritization provides an opportunity to evaluate options, gather customer feedback, and acquire more knowledge of the most important work by delaying decisions about lower priority items.

Despite its importance, prioritization isn’t effectively practiced in many organizations—the most common issue being the poor ability to estimate the ‘Cost of Delay.’ Cost of Delay (CoD) can be interpreted as the impact of time on the total expected value we hope to accomplish.

In other words, the Cost of Delay is the money that we could lose by delaying or not doing a job for a period of time.

So, equationally speaking, the priority of a work item is the Cost of Delay divided by the time it takes to accomplish the work item. This equation is popularly known as Weighted Shortest Job First or WSJF for short.

Weighted Shortest Job First   =   Cost of Delay / Job Duration

In SAFe, the job could be an Epic at the Portfolio level, a Capability at the large solution level, or a Feature at the program level residing in their corresponding backlogs.

To identify the WSJF, it is essential to quantify the CoD.

When using SAFe, the CoD is the sum total of three components Value to the business and/or the user, Time criticality and Risk Reduction, and/or Opportunity Enablement (RR|OE) value.

CoD = User-Business Value + Time Criticality + RR|OE

Let’s start by understanding what the individual parameters are –

User-Business Value

Value the job provides to the business and/or the user is usually arrived at by evaluating (but not limited to) the following –

  • What is the relative value to the customer or business?
  • Why would a user prefer this job over another?
  • What is the revenue impact on the business?
  • Adverse effects (like a potential penalty) if it gets delayed.

Time criticality

Time criticality indicates the importance of doing the job right now and is usually arrived at by evaluating (but not limited to) the following –

  • Is there a fixed need by date or deadline?
  • How does the value of the job decay over time?
  • Dependency on any milestones?
  • What is the current effect on customer satisfaction, and will they move on to another solution?

Risk reduction and/or opportunity enablement (RR|OE)

RR-OE indicates the requirements capability to generate follow-on options or to either mitigate or better manage risks. RR|OE is usually arrived at by evaluating (but not limited to) the following –

  • What additional benefits does this job do for the business?
  • Will the job reduce the risk of current or future deliveries?
  • Will the job enable new business opportunities?

Job Duration

To calculate WSJF, we now need to estimate the Job Duration, and this tends to be difficult, especially since we do not know the capacity allocation or who is going to work on it. So, we use job size, which is a good proxy for the duration to calculate WSJF.

The Challenge & The Solution

Challenge – 1: To apply WSJF on a Program backlog, how do we calculate the values of features that aren’t yet implemented.

Challenge – 2: we need to calculate the $ value in terms of user-business value, time criticality, and RR|OE and then size the jobs. Given the number of features in a program backlog, this definitely is a lot of work with very low ROI.

The solution – turn challenges into opportunities. When there are a lot of jobs to prioritize, we do not have to estimate absolute numbers. Instead, we simply compare jobs relative to each other for both the CoD and Job Size.

So, when applied to WSJF, the equation now looks like:

WSJF = Relative Cost of Delay / Relative Job Duration

A higher WSJF value indicates a job that can potentially deliver the most value in the shortest time. So, those jobs are selected first for implementation.

Prioritizing workshops is the preferred approach when prioritizing the Program backlog.

The Product Management, Business Owners, Product Owners, and other Key Stakeholders collaborate to adjudge the relative cost of delay for the upcoming features.

System architects and Solutions architects provide the relative cost of delay for Enablers.

Representatives from the Agile Teams participating in the workshop provide the estimates for the job size.

Advantages of WSJF

Benefits of the Weighted Shortest Job First Model

Apart from helping the teams to deliver the maximum value in the shortest amount of time with the least amount of effort, the other advantages of using WSJF are –

It prevents big jobs from blocking the development pipeline by giving preference to smaller features that are faster to implement. This further promotes the incremental and iterative approach to development.

  • Supports taking an economic view by helping teams understand the economic impact of their decisions.
  • It prevents sunk cost fallacy to ensure that the most meaningful job gets the funding they deserve.
  • Supports the use of decision rules to decentralize the decision-making process.

Weightiest Short Job First is a technique to sequence jobs to deliver the maximum value in the shortest time to maximize the economic benefits and efficient customer value delivery.

Author's Bio

Preeth is a pragmatic coach, Professional Scrum Trainer (PST) & SAFe 5.0 Program Consultant (SPC 5.0) and is passionate about all things agile and leadership. With over 20+ years of experience and commitment, he trains and coach organizations to be agile and more importantly to stay agile. Preeth holds an enviable record of conducting over 10,000 hours of industry-specific training and coaching.