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 ValueValue 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 criticalityTime 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 DurationTo 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 SolutionChallenge - 1: To apply WSJF on a Program backlog, how do we calculate the values of features that aren’t yet implemented.
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 estimates for the job size.
Advantages of WSJFApart 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.