Prioritization

Daniel Langdon
4 min readSep 20, 2022

Across many companies and many teams, there is a sad fact of life: prioritizing what to do is both a necessity and a pain. I could tell countless horror stories, but instead I’m just going to write what has worked best for me so far, and I’ll keep updating this as I learn more.

Prioritization tenets

  • Simplicity — There are hundreds of variables that influence priority, we want something simple that can be applied on a daily basis using commons sense rather than something that requires a research project on its own.
  • Shared Meaning — We want to assign attributes meaningful values that are understood by everyone the same, avoiding the well-studied issue of someone’s “high” being some other person’s “medium” and so on.
  • Separation of concerns — We don’t want to conflate prioritization with estimation.
  • Granularity independence — We want to be able to use the scheme to weight tiny endeavors as well as big projects, while probably not intertwining them.

As a result, we’ll reduce prioritization to 2 hints and one rank, allowing for simple operations like drag-and-drop or 2D plots, and detailed enough to have meaningful discussion and voting within a team.

Difficulty

A general measure of how difficult it is to accomplish something. This is a fuzzy aggregate of several factors including complexity, effort, uncertainty, potential blockers, coordination and communication needs, costs, etc. The idea is not to attempt to measure each on of these (and others) and arbitrarily weight them against each other, instead, pick from this list:

  1. Trivial — This is a very mundane task that seems very clear and would be cheap to execute with a few hours of effort.
  2. Doable — This is similar to other day-to-day tasks that get accomplished with a few days of effort. There might be some uncertainty or coordination involved but nothing out of the ordinary.
  3. Challenging — One or more aspects of this task present unusual difficulty. and should be discussed and mitigated accordingly. Expect a significant effort and potential surprises.
  4. Scary — One or more aspects of this tasks might be deal breakers. Either because the cost might be prohibitive, the risks unpalatable or the path forward unclear. If attempted at all, expect failure and deeply discuss counter-measures.

Impact

A general measure of the upsides of accomplishing something. This is a fuzzy aggregate of several factors including customer value, operational improvement, risk mitigation, time to market, urgency, strategic importance, etc. The idea is not to attempt to measure each on of these (and others) and arbitrarily weight them against each other, instead, pick from this list:

  1. Irrelevant — It is debatable if this adds any value at all or might even be detrimental. The item should only be kept if unavoidable, and then postponed as long as possible.
  2. Nice to have — This adds value, but we have and can continue to live without it.
  3. Should have — This not only adds value, but its absence represents a significant ongoing pain, missed opportunity or deviation from shared practices and tenets. In other words, its absence should make us uncomfortable.
  4. Must have — This adds significant value, and it is critical to the very meaning of what we are trying to accomplish. Not doing it would mean re-evaluating our goals.

Rank

In general, we can prioritize any given item by its impact/difficulty ratio using the values above. The most common item should probably be a double/should have task, with a value of 3/2 = 1.5. From there a reduction of difficulty or an increase in value will raise the priority, and vice versa. Be careful with Irrelevant or Scary-labeled items, as these also represent red flags to keep in sight.

The ratio is obviously not a hard rule, and you can tweak the value of each rating as needed by your team. It is only a useful heuristic to helps us have the conversations needed to reach the actual objective of any prioritization: a ranked stack. A useful prioritization ceremony would the be:

  1. Set Impact/Difficulty for new tasks. Adjust it also for existing tasks as needed, since these values might change over time due to changing goals, pivots, new knowledge or completion of other task previously.
  2. Sort all tasks by ratio into a single list.
  3. Make priority adjustments that override the ratios, based on time frames, dependencies, etc. Don’t discuss absolute positions on the list, but rather relative positions. Should we do A before B? Why? If we had to choose just one of them, which one would we choose?

After this process, every item has a priority rank, representing the order in which we would execute things if we had to do them in order. Do not bake parallelism in, as it is better to tackle it on-demand, either because you discover that more people working on the most important thing no longer help or because other blockers impede you from going as fast as possible on it. It is mathematically optimal to pour as many resources as possible and concentrate on your most important thing, and to do things as sequentially as possible. This holds not only for efficiency loses product of context-switching and lack of focus, but also for things like time-to-market: you’d rather deliver value on item 1 on day 5 and item 2 on day 10 than divide your resources and deliver both by day 10.

--

--