If you go to an agile team and ask how feature work is being prioritized, you might get an answer that sounds something like, “Prioritize? Sure! Everything is number 1!” The team may try to laugh it off, but deep down, they know it’s true: every single feature feels urgent and is being given equal weight in the work that’s actually getting done.
It can be challenging to effectively prioritize, but it is essential to project success. Without prioritization, focus can get lost, leading to team members getting whiplash from switching from one activity to another.
Fortunately, there are a number of prioritization techniques that can transform your agile team’s strategy. Today, we’re focusing on WSJF (Weight Shorted Job First).
What is Weighted Shortest Job First (WSJF)?
As we pointed out in the intro, WSJF stands for Weighted Shortest Job First. According to SAFe, “Weighted Shortest Job First (WSJF) is a prioritization model used to sequence jobs (e.g. Features, Capabilities, and Epics) to produce maximum economic benefit. In SAFe, WSJF is estimated as the Cost of Delay (CoD) divided by job size.”
For example, if a job has a size or duration of ten weeks and has a relative value of $25,000 per week, it will cost the company $25,000 for each week the job is delayed past that ten week window. In this scenario, a delay of just one month can cost $100,000. Two months’ delay is $200,000 and so on.
WSJF allows us to understand the cost of delay compared with the size of the work. This helps to decide whether to tackle the low hanging fruit or the higher value, but perhaps larger, fruit first. Having this knowledge ultimately gives us the power to make smarter, more informed decisions.
Upon their introduction to WSJF, many teams may feel overwhelmed. They may find the technique clunky, cumbersome, or confusing. Getting resistant team members on board can be challenging, especially if they’re used to prioritizing everything equally, all the time.
If you’ve faced this kind of resistance on your team, it can be disheartening. You may even feel like the effort isn’t worth it, so you should just move on to a different method.
When this happens, it’s important not to give up, but to dig in and simplify.
The formula appears complex on the SAFe website, but in all honesty, everything can seem overly complex in the world of agile. Let’s take it back to simple math:
At this point you may be thinking: “How do you actually calculate these numbers?
This is where the Fibonacci sequence (1, 2, 3, 5, 8, 13, 20 etc.) comes in handy. You should also ask yourself simple questions about User/Business Value, Time Criticality, Risk Reduction, Opportunity Enablement, and Job Size.
Calculating business value requires asking yourself (and your team a few key questions):
- What does value mean for your company?
- Does the functionality provided by a job translate into profit or more customers?
- Will the completion of the job reduce operational costs?
- Are customers more likely to continue using your product once the feature is introduced?
- Will the feature help increase customer retention?
Similarly, to determine time criticality, ask yourself these questions:
- How important is it to do this work now?
- How quickly does the user/business value decay over time?
- How much value will you lose by delaying development?
- How much revenue will you gain by releasing early?
- Is there a fixed deadline or is there flexibility?
- Will customers be patient and wait for the roll out, or are they likely to go to a competitor who offers the functionality?
Risk Reduction/Opportunity Enablement
Calculating risk reduction and opportunity enablement? Here are the questions to ask:
- Does this feature allow our company to complete follow-up projects?
- Does it reduce the risks associated with one of those follow-up projects or a future delivery?
- Is there value in the information we will gain by completing the feature?
- Will the feature open up new business opportunities?
Job Duration or Size (in Sprints)
Now it’s time to calculate the size of the job. Ask yourself these questions:
- How big or small is the work?
- Does it require two sprints to complete? More? Ten sprints?
To explain how to facilitate WSJF on your team, I want to break down how I applied the model on my own team.
Once I had a firm grasp on the formula definitions of WSJF, I pulled my Product team into a room to prioritize the Product Backlog. I provided Planning poker cards and described the first category: User/Business Value. After I clarified the questions, we pulled a feature at random, and I asked the team to consider the user/business value of the feature. I also asked them to select the card that best represented the weight of that feature (the higher the card, the higher the value). I placed the cards facedown on the table. I then counted backwards from three and requested that the team members turn their cards over when I reached one.
After a brief discussion, I recorded the values on the cards in an Excel spreadsheet and totaled them up. Then, the values for the remainder of the features were decided and charted.
Once I had all of this information, I entered the user/business value data into a second spreadsheet, and continued the exercise with the three remaining categories—the ones used to calculate the WSJF score. Time criticality and risk reduction were calculated following the same process, while job size was estimated in sprints and then averaged across the group.
When all the data was captured, we were able to calculate WSJF (user/business value + time criticality + risk reduction and opportunity enablement / job size (in sprints). Having this data allowed the Product folks to identify the top three priorities, ultimately placing their focus on the most beneficial things.
Practice makes perfect
It would be dishonest to claim that it’s easy to apply the WSJF technique to your initiatives or that your team will never struggle (especially at the beginning). But once you get into the flow, you may find yourself quickly identifying values for the four key components, and your team can head back to their project work feeling confident in the rankings they applied to their features.
The more you practice the WSJF technique, the easier it will be to apply the process to future sprints. You’ll slowly begin to memorize the level of value delivered by certain tasks or the risks of one task relative to another.
Over time, this accumulated knowledge can help improve the accuracy of your scores and empower your team to make even more informed decisions about prioritization.
Learn more about Vaco’s Business Agility solutions today.