Prioritizing your Roadmaps – Lessons in WSJF

When asked how feature work is prioritized, have you ever heard the response of: “You expect me to prioritize? Sure! Everything is number 1!!”. The participants in the room all laugh nervously, but it’s quite clear to all – every single feature is urgent and the very last thing they want to do is rank them.

There are a number of prioritization techniques to pull from, but I’d like to focus on Weighted Shortest Job First (WSJF).

What is Weighted Shortest Job First (WSJF)

I first learned about WSJF during SAFe training several years ago. According to SAFe, “Weighted Shortest Job First (WSJF) is a prioritization model used to sequence jobs (eg., Features, Capabilities, and Epics) to produce maximum economic benefit. In SAFe, WSJF is estimated as the Cost of Delay (CoD) divided by job size.

In layman’s terms, 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. Having this knowledge ultimately gives us the power to make smarter, informed decisions.

Upon my initial introduction to WSJF, I was overwhelmed and felt the familiar twinges of belligerent resistance. It “felt” cumbersome. Clunky. Confusing. I immediately did not like it, therefore I turned my nose up and promptly tossed that particular technique aside.

Not long after the SAFe training, I was asked to facilitate a Product prioritization meeting using… you guessed it – WSJF. Realizing that I haven’t fully embraced this technique, I agreed halfheartedly and made it my mission to give WSJF a chance.

Simplifying WSJF

The formula appears complex on the SAFe website, but in all honesty, everything seems overly complex on that site in my humble opinion. Let’s take it back to simple math:

At this point you may be thinking: “Well, Miss Smarty Pants – How do you actually CALCULATE these? Math typically includes numbers. Also, what does ‘Opportunity enablement even mean’?”

This is where Fibonacci sequence (1, 2, 3, 5, 8, 13, 20 etc.) comes in handy. Oh, and simple questions to ask when trying to understand User / Business Value, Time Criticality, Risk Reduction / Opportunity Enablement, and Job Size.

User / Business Value

What does value mean for your company? Does this functionality translate into profit? Or more customers? Will it reduce operational costs? Are customers more likely to continue using your product if you introduce this new widget? Will you increase customer retention?

Time Criticality

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 can you gain by releasing early? Is there a fixed deadline? Will customers be patient and wait for us, or will we lose them to a competitor?

Risk Reduction / Opportunity Enablement

What else does this do for our business? Does it allow your company to complete follow-on projects? Does it reduce the risk of this or a future delivery? Is there value in the information we will receive? Will this feature open up new business opportunities?

Job Size (in Sprints)

How big or small is the work? Are we looking at 2 sprints or 10? How does it compare to other projects in the past?

Facilitating WSJF

Once I had a firm(er) grasp on the formula definitions, I pulled the Product folks into a room to prioritize the Product Backlog.

I provided Planning Poker cards and described the first category: User / Business Value. After all questions were clarified, we pulled a feature at random. I asked them to consider the user/business value of that feature and to select the card which best represented its weight, placed face down (the higher the number, the higher the value). I counted down from 3-1 and requested they turn their cards over. After a brief discussion, I recorded the values in an excel spreadsheet and totaled them.

The values for the remainder of the features were decided and charted.

Following, I entered the User / Business Value data into a second spreadsheet:

This exercise continued with the remaining 3 categories, which WSJF was calculated from. Time Criticality and Risk Reduction followed the same process as User / Business Value. However, “Job Size” was estimated in sprints and averaged across the group.

When all the data was captured, we were able to calculate WSJF (User, Business Value + Time Criticality + Risk Reduction & Opportunity Enablement / Job Size (in sprints)).  Having this data allowed the Product folks to identify the top 3 priorities, thus putting the focus on the right things.

I won’t lie and say this process was easy. We struggled at the beginning, but once we got into the flow, the team was able to nimbly identify values to the 4 key components. They walked away feeling confident in the feature rankings and I walked away learning something as well: If I have an immediate negative reaction to something, it’s my duty to turn towards it, not away from it.