Deciding how to spend time is one of the more challenging and worthy things to, well, spend time on. Weighted shortest job first (WSJF)1 is an excellent tool for estimating the best uses of time.
Understanding weights and lengths.
The purpose of WSJF is to rank activities by the order in which they are best accomplished. It does this by producing a “WSJF score,” an abstract figure that represents the value of time when spent on a given project—its “bounce to the ounce.”2 It does by estimating the value of an activity and dividing it by its size or difficulty (more or less— there’s nuance to explore).
wsjf = cost of delay / task size
What if we just didn’t?
The cost of delay looks at what we miss if we don’t attend to a given set of tasks instead of measuring the work’s outright value. This approach helps us eschew a fixation on the sunk costs of existing work and instead allows us to see the economics of our forward-looking choices.
One may view the cost of delay as an estimation of what matters. Figuring out what matters is difficult; work that provides immediate value tends to be prominent, while resilience-enabling work is easy to overlook.
The cost of delay asks us to survey all opportunities and the ways they support the business along several vectors:
cost of delay = value to the user or business + time criticality + risk reduction + opportunity enablement
Value to the user or business.
Aside from (maybe) time criticality, this aspect tends to be the loudest in an organization. This facet measures the presumed value the work will provide to an end user or business stakeholder.
Work that has a deadline or declining potential is preferable to do sooner in proportion to its urgency. While it depends on the type of work, this facet rarely has much differentiation, but it matters a lot when it does.
Risk reduction typically pairs with the opportunity enablement factor to become one single figure, which means something to the effect of “efforts that add more certainty for an improving future.” They are helpful to think about separately, as a project can simultaneously reduce risk and increase opportunity.
While two sides of the same coin, this factor asks us to consider whether we can reduce any categories of business risk.
The other side of our “improving the future” coin is the unlocking of possibility. Opportunity enablement is where work creating distant possibilities as part of a business’s strategic interests gets prioritized or projects block other more attractive projects.
The divisor in WSJF represents some abstraction of difficulty or time required to perform the work. Any approach to estimating this figure is valid, so long as it produces a number. Many approaches to estimation exist, but all that matters is that the estimates are in proportion to one another. Where one body of work is double the effort of another, assign it an estimate twice the size.
Putting it into practice.
With the concepts in the system now laid out, let’s move on to implementing it. There are five steps to implementing WSJF:
- Brainstorm: Get all of the opportunities written down.
- Estimate: Calculate a WSJF score by assigning numbers to the different dimensions.
- Refine: Interpret the results, get more information, adjust the estimates.
- Execute: Put the results into practice.
- Revisit: Always be calibrating.
Essentialists spend as much time as possible exploring, listening, debating, questioning, and thinking. But their exploration is not an end in itself. The purpose of the exploration is to discern the vital few from the trivial many.
—Greg McKeown, Essentialism3
To prioritize effectively, you need to know what’s even available. Put everything you’ve been hearing and thinking about into a document and spend time considering what’s missing from the list. WSJF will tell you what’s best to spend your time on, but the creativity that goes into producing that options is the limiting factor. If only a few things are truly worth focusing on, spending time seeking to put those items on your list is time well spent.
The estimation exercise in WSJF happens one factor at a time and needs to consider all possible projects simultaneously for the given factor. Each element needs at least one project to serve as the basis, and that project is assigned a value of 1. Estimate the remaining items relatively.
For example, if following the prescribed order as laid out here (which you don’t have to do!), we’d look at user/business value first. We’d ask which project is least valuable to a user or business stakeholder at the moment of its completion (don’t get caught up thinking about opportunity enablement while thinking about direct value!). After surveying the list, assign a project an estimate of 1. A subsequent scan might reveal other projects that are also roughly equivalent and also deserving of a 1 designation. Estimate the remainder in proportion to this baseline value—tasks seeming thrice as promising are assigned 3, and so on. Once every project has an estimate for the given factor, move on to the next aspect.
It’s essential not to get hung up on the estimation activity. If some light research has happened ahead of time to get a better sense of circumstances for the estimates, that’s great! It is not required, though. What matters is that the task list is ordered mostly correctly in the end, not that every value is accurate. If you have a pretty good handle on the nature of the projects, the chances are that you’re looking at a difference of 90% accuracy from your best guesses against 95% for better guesses with more information. This 5% gain is not necessarily worth the prework because of the next stage.
With a completed estimation in place, WSJF scores, and a corresponding best guess at the order in which work should unfold, it’s time to validate the results. The first step is to review the order of the project list and ask: “Does this match the understanding I have about what needs to happen?” If the answer is no, and there will often be a couple of things that raise your eyebrow, then another pass at the underlying estimation is warranted. Make tweaks to reflect your expectations better. If there are significant differences, though, consider whether you’ve severely understated something… or whether you should be revising your expectations.
Once you agree with your ranking, start socializing the results. Stakeholders and team members should discuss the order of projects to go through that same revision process:
- Do people agree with the order?
- Do they need to hear the narrative to understand the rationale?
- Do they have viewpoints that change our understanding of the value of the projects?
Note that it is helpful to discuss the relative factors of the cost of delay between projects. It will frustrate everyone if stakeholders get involved in the underlying numerical estimations of the system. Keep it high level: discuss the relative value between projects they’re concerned about, but refrain from making them understand the scores across all projects.
We’ll expect a movement of some projects in this process, but not too much. If an overhaul is needed, that’s an excellent trigger for digging into what it is about the flow of information that caused the first pass to be so far off base.
With a prioritized list now settled, you can put it into motion. Translate the list into whatever’s most helpful for working toward the results described by the projects, be that a roadmap or a to-do list.
It’s vital to keep prioritized lists updated to learn the best information about the optimal way to spend our time. Be wary of spending too much time on this process, especially brainstorming and estimating. A process that’s too demanding to follow will lead to infrequent catch-up sessions, which reduce the effectiveness of WSJF. A nimble approach to prioritization would see this process often happen, keeping up with new information on a similar timeline as it comes in (maybe not immediately reacting to all further information… but not waiting to review months of new projects all at once, either). It’s no secret that the easier something is to do, the more readily one benefits from it4.
I find WSJF valuable for many areas of my life. The above caters somewhat to the context of a software engineering team, but not by much! With some slight adaptations to what the cost of delay might mean and how to measure the investment needed for an item, I’ve used WSJF to help me in many different subjects:
- Manage development team priorities, naturally.
- Decide which books to read next.
- Pick which prospective hobbies to double down on (and which to set aside permanently).
- Start writing more!
B. J. Fogg, Tiny Habits: The Small Changes That Change Everything (Boston: Houghton Mifflin Harcourt, 2019).↩