fbpx

How to Prioritize Features Using Weighted Shortest Job First (WSJF) in SAFe

The Scaled Agile Framework (SAFe) is brilliantly designed to provide both agility and a solid structure for organizations to function. It allows the management of a vast, complex and ever changing scope of work through different processes and techniques.

 

The first step towards having a clear scope is to have well written and documented Features for successful implementation. They should provide a clear understanding of the business and the developmental work that needs to be done which should be very easy to understand.

 

In SAFe, the product management has the responsibility for the readiness of the features and populating the product backlog. But what factors define the importance of having to implement one feature over another? What is the process that ensures a certain feature has the priority over the other and would eventually sequence the backlog? This will be done by prioritization.

 

In this article we will explore the how, what and why prioritization is done and how it truly benefits you in your feature management.

What is Prioritization?

Prioritization is the process of arranging the Features of the backlog in order of their importance so that they can be implemented by the agile teams. It helps bring forward and expresses the urgent need or the objective of the customer that needs to be fulfilled. This straightforward case is for Features that are devoid of any order of dependency.

 

For some Features they will already need to be prioritized given that the functionality needs to be in place prior to the subsequent Features. As we know, true Business features are the enhancements of customer value. There could also be enhancements to the system that need to be embedded first. In these cases, the order of work has already been determined and the prioritization has been defined.

What factors determine which feature needs to be done first?

Prioritization is essentially a negotiation of the features present in the backlog, where the customer or the end user’s needs are kept as a primary focus to plan what needs to be done first. During the process of prioritization, input from the product owner, development team, architect or the involved stakeholders has a vital role.In order to proceed with the prioritization process, it may be best to involve having a significant understanding of the following factors.

  • Risk
  • Commitment
  • System Architecture
  • Business Value
  • Benefit
  • Cost
  • Implementation Time
  • Complexity
  • Implementation Difficulty
  • Stability
  • Dependencies

Why Do You Need to Prioritize?

Some features are more important than others; therefore, features must be prioritized. It is about understanding what the needs of the end user are, more importantly than something that can be done later. A great deal of collaboration and coordination is needed with the customer to perform prioritization.

 

It is not just about working on an item that needs to be done first, rather it is about improving the customer satisfaction by increasing the likelihood that the customer’s most important requirements are being implemented and delivered first.

 

Thus being able to display for the demo quickly as possible to get feedback as quickly as possible. Prioritizing features eventually reduces discussion times at meetings and reviews. Low-priority features should be renegotiated with the end user to see if they are really necessary so that they can be pushed to the next iteration.

 

Prioritization of features helps determine which features get delayed. It also helps balance customer expectations against available resources and produces realistic schedules. The product can be developed incrementally with high-priority requirements in early versions and low-priority requirements in later versions.

How is it Done?

Typically, when an organization has large features, they are prioritized immediately without considering the financial or sales implications or being unable to assess how many customers will be lost.

 

To ensure that the features are prioritized correctly, there are various prioritization methods. These prioritization methods ensure that a sequence of work is established and focus is retained on the things that need to be done. The commonly used prioritization methods are:

  1. RAID (Risks, Assumptions, Issues and Dependencies): Consists of documenting all the Risks, Assumptions, Issues and Dependencies into a RAID log. With these aspects documented all in one place, it helps present a clear picture of the overall project, rather than focusing on individual features, to the management so that informed decisions can be made.

  2. MoSCoW (Must Have, Won’t Have, Should Have, Could Have): A common prioritization method that focuses on requirements and which tasks to be done first. The requirements are allocated in one of the following categories that are listed below to help in prioritization:

    • Must Have – Work items in this category are of high importance and are non negotiable. The project cannot be complete without them.
    • Should Have – The work items in this category are important as they will add value but not crucial that they will block the rest of the progress.
    • Could Have – This category describes work items that are nice to have.
    • Won’t Have – The work items that are in this category, are at the lowest priority but cannot be considered rejected. They can be planned for later iterations.
  3. RICE (Reach Impact Confidence Effort): This is a quantitative prioritization method that is used by product managers for product roadmapping purposes. This prioritization method focuses more on the effects of an item that will have on the business. Items are scored according to the four following categories:
    • Reach: This consists of how many people the new item will reach in a period of time. For example, what is the number of new users or sign ups. It is better to use an actual number to determine rather than using an estimated value.

    • Impact: This is the effect that you think your item will have on the end user or customer. It can be difficult to measure it quantitatively so it is best to estimate this variable by assigning a value to it. These values can be:

      • Massive Impact = 3
      • High Impact = 2
      • Medium Impact = 1
      • Low Impact = 0.5
      • Minimal Impact = 0.25
    • Confidence: This value aims to balance out the scores of Reach and Impact where you have two variables one of which is more data focused and the second represents your instincts, respectively. The value for confidence is given with a percentage as follows:

      • 100% – High Confidence
      • 80% – Medium Confidence
      • 50% or lower – Low Confidence
    • Effort: This variable focuses on the time or resources that will be needed by the teams for completing an item.

    The formula for calculating the RICE score is as follows:

    Reach x Impact x Confidence / Effort

    These elements are added to give a score which determines if the item shall be added to the roadmap or not.

     

  4. WSJF (Weighted Shortest Job First): This method calculates a WSJF score by assigning values or weights to your features or epics present in your backlog so that they can be prioritized to provide maximum value. The results for these are interpreted as the work item that has the highest WSJF score, will be given the highest priority in the backlog. It is calculated using the formula described below.
    Formula for Weighted Shortest Job First
    The two elements for calculating WSJF are Size of the Job and Cost of Delay.
    The Size of the Job means how long it will take for a job to finish using relative sizing for estimation.
    The Cost of Delay is the money that will cost an organization for being delayed.

Importance of Cost of Delay in Scaled Agile Framework

In every organization, there are many features that are planned and kept in the backlog. As the features remain in the backlog and are not being implemented, they are getting delayed and can eventually lead to huge costs that would result in severe losses for an organization. Thus knowing the Cost of Delay is very important and a very crucial factor in prioritizing the features. Apart from helping in prioritization, knowing the Cost of Delay helps in making better decisions as it highlights the speed and efficiency of the feature that needs to be delivered along with shedding light on the economic trade offs that need to be made. It also helps create a sense of urgency and maintains focus on providing value.

 

There are many factors that can be used in place of the Cost of Delay to calculate WSJF such as technical or market risk, influence of the stakeholders and so on. It all depends on what you are trying to prioritize. But regardless, Cost of Delay seems to be the right and widely used choice when prioritizing features as people are more interested in calculating the economic return.

Calculating Weighted Shortest Job First in the Scaled Agile Framework (SAFe)

For prioritizing features or epics in SAFe, WSJF method is used where the cost of delay and the duration of the feature needs to be known. The components that help calculate the Cost of Delay are:

  1. User Business Value: An estimated figure that of the value the user can get from the feature.
  2. Time Criticality: This variable focuses on the importance of delivering the feature within a time period or at a desired deadline.
  3. Risk Reduction/Opportunity Enablement Value: This focuses on the amount of risk that can be reduced with the delivery of the feature and if the rolling out of the feature will open new opportunities.

Formula for Calculating Cost of Delay

Values from the Fibonacci series, which are used in “planning poker ”, can be used to represent each component in calculating the Cost of Delay.

 

It can be tasking to determine the job size accurately so to make it simple, the numbers from the Fibonacci series can also be used to estimate the job size. Fibonacci series is a good way of determining the complexity and uncertainty as the size gets bigger.

Calculating Weighted Shortest Job First

Lets understand how important Cost of Delay is in calculating WSJF in the SAFe. As described in the table above, there are three features for which the WSJF score is being calculated. Which feature shall be kept at the highest priority?

 

Remember to keep the focus on the Cost of Delay. Feature A is the one that needs to be done first and for the following reasons. The cost of delay is highest for Feature A and not to forget the job size is also the lowest. This means that you are getting the most value from a feature that will not take you so long to build but also relieve you of the large amount of cost of delay. Let’s examine this scenario more closely with the help of a graph.

Grpah that shows how WSJF is calculated

From the graph it can be noticed that after Feature A is done, with a duration of 1 day, when Feature B started, it was delayed by 1 day. When feature B was complete, then development on Feature C started which had now been delayed by 3 days. So it is important to understand that although the value of WSJF was the highest, focusing on the cost of delay needs to have more precedence when prioritizing features rather than just considering the WSJF score. It is important to factor which feature is providing the most value, in the least amount of time and having the minimal effect on the cost of delay.

Prioritization in Kendis

You can now prioritize your features using WSJF in Kendis. It is a one of a kind and truly unique feature to Kendis. Each feature can be assigned a value called the WSJF score, that will help you prioritize your backlog and thereby simplify your decision making.

 

To calculate the WSJF score for a feature, you add its User Business Value, Time Criticality, Risk Reduction and Job Size. With the WSJF calculated, all of your features will be sequenced and reordered in your backlog according to the WSJF score that has been calculated.

 

Calculating weighted shortest job first in Kendis

You can also set a comparison criteria where you can create batches of your features. These batches will allow you to group your features in accordance to a particular project, product or release and contrast between which features need to be done.

 

Want to learn more? Click here

 

Leave a Reply

Your email address will not be published.Required fields are marked *