Visualizing WSJF

On a recent Slack conversation with my colleagues, we were discussing Weighted Shortest Job First (WSJF) and alternate prioritization models. It reminded me of a previous job in which my team was tasked with prioritizing a bunch of architectural initiatives. In that instance, we had a lot of trouble expressing the results of our work in the tabular form of an Excel spreadsheet. We spent a lot of thoughtful effort on our study and felt very confident in our findings. However, we were met with a roomful of blank stares during the presentation and had zero success in selling our ideas to our business stakeholders. In fact, most of the conversation centered around whether we were using sound methods, rather than around the important architecture and business initiatives we studied. Back to the drawing board!

We brainstormed a number of different ways of expressing the information… a large number. We finally landed on visualizing the information in the style of the Gartner Magic Quadrant, which visualizes the evaluation of technology players across two dimensions:

  • Ability to Execute
  • Completeness of Vision

Taking this as a cue, we realigned our architectural prioritization data to express two dimensions:

  • Organizational Effort to Execute
  • Value to the Business

We labeled our four quadrants to reflect their relative priority:

  • Do Now (Low Effort, High Value): items that could also be described as “low-hanging fruit”
  • Do Next (High Effort, High Value): items that could yield high value if we invested in them or built up a capability, thus moving the item to the upper right quadrant
  • Do Later (Low Effort, Low Value): items that were relatively easy to do, but did little to provide value. If it is difficult to increase the value of these items, they might never move to the upper right quadrant.
  • Don’t Do? (High Effort, Low Value): items that certainly flow to the bottom of the backlog and may be candidates to remove altogether

Prioritization Quadrants

Two weeks later, we went back to our business stakeholders with the new visualization with very high expectations. I wish I could say they took our advice as is and immediately prioritized the initiatives we identified as low hanging fruit… but not so fast. This time, the conversation around the information was much more productive. We actually talked about the architectural and business initiatives rather than the methodology. Here’s a sampling of questions we received and answers we provided:

  • Q1: Why is my pet project X in the lower right (High Effort, High Value) quadrant?
  • A1: We are missing some key technology and could use some budget to put it in place. If we invest in this, we might be able to move it to the upper right.
  • Q2: Why do you have such a low business value on initiative Y?
  • A2: We were not aware of the legal and compliance issues this feature addresses, so we’ll add that to our calculation of value. Changing this may move the initiative to the upper right.

Back to the original topic: Weighted Shortest Job First (WSJF). I’ll refer to the usage of WSJF in the Scaled Agile Framework (SAFe™) as described here. For each item in the Portfolio or Program backlogs, we analyze Epics, Features and Capabilities along two dimensions:

  1. Job Size or Duration
  2. Cost of Delay

We then calculate WSJF using the following formula:

This table shows some example data for the aptly-named features: A, B, C, D, E and F.

FeatureJob Duration/Size% DurationUser-Business ValueTime CriticalityRisk/Reduction/Opp EnablementTotal CoDWSJF Weighting
Max Duration13
Max CoD21

Since my Excel charting skills can be rated far south of Ninja, I researched and found an article on charting the quadrant at the Critical to Success blog. This led me to add the 3rd and 8th columns to the spreadsheet, which represent the relative percentage of maximum for the Job Duration/Size and Cost of Delay (CoD) columns. The resulting chart now depicts what we calculate to be the highest priority work in the upper right quadrant where the bubble size is directly correlated with the WSJF value.

I hope you find this useful, and I would love any feedback I might incorporate into this technique and blog post.