InCycle Software's Application Modernization and DevOps Blog

Adding WSJF Calculation to your Feature/Epic WITs

Written by David Jung | Feb 17, 2015 1:16:51 PM

A common topic when talking with clients is coming up with better ways to prioritize features in the backlog. Many product owners and Scrum Master might just look at the effort or stack ranking value and go from there. Then Scaled Agile Framework (aka SAFe) has a calculation rule called the Weighted Shortest Job First (WSJF) method to help you prioritize features and it's based on the economics of product development.

At its core, it calculates the Cost of Delay divided by Job Size. There are three factors used that contribute to the Cost of Delay (COD). They are User- Business Value, Time Criticality, and Risk Reduction-Opportunity Enablement Value.

  • User-Business Value – This is used to determine the value of implementing this feature over another feature
  • Time Criticality – This is used to measure if a feature loses its value to the system the longer its implementation is delayed
  • Risk Reduction-Opportunity Enablement Value (RR OE Value) – This is used to determine the relative value to eliminate risks early or the potential for new business opportunities derived from the feature
  • Job Size – This value is the estimated size or duration it would take the implement the feature

In order be consistent, your team should agree upon a number scale that is consistent for each value. Example of number scales are Fibonacci (1,2,3,5,8,13,21) or Doubling (1,2,4,8,16,32,64) sizes

So taking all this into account, the following formula is how you calculate WSJF:

WSJF=(User Business Value+Time Criticality+RROE Value)/Job Size

Once you have WSJF value for the features in your backlog, the most important features are the ones with the highest WSJF value.

Adding WSFJ fields to Feature and Epic Work Item Templates

[Note: The following steps assume you already have some knowledge of editing the process template.]

To capture this information as part of your Feature work item, you will need to add several fields to the template. Business Value is already part of the Feature Work Item Template, so you can either rename it to say "User Business Value" or leave it as is. The following table shows the field name, type, and reference name used for the WSFJ fields.

Name Field Type Ref Name
User Business Value Int Microsoft.VSTS.Common.BusinessValue
Time Criticality Dbl SAFe.TimeCriticality
RR OE Value Int SAFe.RROE
Job Size Int SAFe.JobSize
WSJF Int SAFe.WSJF

Adding WSJF Vales to the Form

In the Feature Work Item Template, the Business Value control is in the Planning group.

Create a WSJF Values group and move the Business Value control underneath it and add the other WSJF controls to the group.

The result should look something like what's outlined in orange.

You will follow the same steps to add this the Epic Work Item Template.

You can calculate the WSJF value by hand, but why not use Excel to do the mass calculation for you. To do that, you will need a query to extract the WSJF calculations values.

In TFS, create a WSJF query that will retrieve all the Work Items that are in the Epic and Feature Work Item Category, similar to the query below.

Then click on the Column options to include the WSJF columns.

Make sure you save the query. It should show up in your My Query list.

Now let's pull the data into the Excel. Go to the Team menu and click New List. In the New List dialog, select the WSJF query to retrieve all Epics and Features in the backlog.

To have Excel calculate WSJF for you, you will need to add the WSJF formula to the WSJF cell for each item retrieved similar to what's shown below.

Once you calculate the WSFJ values, click on the Publish button on the Team menu. You can use this worksheet also to add new Epics and Features to the back log with WSJF already calculated as shown above.

Share and enjoy!

Excelsior!

Image courtesy of watcharakun at FreeDigitalPhotos.net