Practice · Better Ways of Working

Prioritization Without Chaos

Prioritization goes sideways when order is set by volume, by urgency, or by whoever asked last. This practice compares requests against each other on a few shared criteria, usually value, effort, and how the cost grows the longer you wait. Done well, the order holds up under questioning, and people can accept it even when their item lost.

PrioritizationTradeoffsDecisions
~9 min

When this matters

  • Requests arrive from every direction and the loudest voice tends to win.
  • The team keeps relitigating what to do next and the same debate restarts each week.
  • You need to say no, or not yet, and want a reason that survives a senior stakeholder pushing back.
  • Several true things are competing for the same week of capacity and you cannot do them all.

Key ideas

Compare against each other
A request judged alone always sounds reasonable. Prioritization is the act of holding items side by side and asking which one wins. Score on a small, shared set of factors so the ranking is relative. The output is a sequence, not a verdict on whether each item is good in isolation.
Cost of delay is the economic lens
Cost of delay is the value you lose each week a piece of work waits. It comes from Donald Reinertsen’s work on product flow. WSJF, weighted shortest job first, divides cost of delay by job size, so short and time-sensitive work rises first. An economic estimate that is wrong by 30% still sequences better than precise story points.
Make the tradeoff visible
Choosing what to do is also choosing what to delay. When you write one line on why the top item beat the next, in plain terms, a contested call becomes one people can live with. A hidden ranking, decided in private, is the one that gets reopened next week.
Keep the method lighter than the work
A scoring scheme nobody maintains is overhead with no payoff. The value of any framework is the conversation it forces, value driver against value driver, more than the number it produces. Use a quick, honest pass against clear criteria, and treat the score as a ranking that a human still owns.
Pick the framework to fit the bet
RICE, reach times impact times confidence divided by effort, suits product features with measurable reach. WSJF suits sequencing larger pieces by economic value. MoSCoW, must, should, could, and will not have this time, suits scoping a release. Match the tool to the decision rather than forcing one model onto everything.

Why this matters

Prioritization is the point where strategy either holds or quietly dissolves. A team can agree on goals in a planning meeting and still spend the next month on whatever shouted loudest, because the daily decision of what to pick up next is made under pressure, one request at a time, with no shared way to compare them. The result is familiar. Urgent work crowds out important work, the same debate restarts every week, and the items that would have moved the goal sit untouched while small, loud requests get done.

Consider a support-or-request workflow where a request comes in, gets triaged, waits in a queue, is assigned, worked, reviewed, and sent back. When there is no shared order, triage becomes a popularity contest. A manager forwards an email marked high priority and it jumps the queue. A long-running fix that would cut the incoming volume in half never starts, because it has no deadline and no one pounding the table for it. Six months later the team is busier than ever and the underlying problem is exactly where it was.

The cost is concrete. Work in progress climbs because nobody is allowed to say not yet, so people juggle ten half-finished items instead of finishing three. Context switching alone is a measurable tax. When too much work is open at once, flow slows, cycle times stretch, and the team delivers less than its capacity should allow. Meanwhile the slow-burning, high-value work, the kind with a real cost of delay, keeps losing to the merely urgent.

Getting it right changes the texture of the week. The order is set once, in the open, against criteria everyone has seen. A senior stakeholder can still push, but now they push against a visible tradeoff rather than an empty slot. People accept that their item lost because they can see what beat it and why. The mechanism that makes this possible is a small, shared set of criteria applied to every request at once, which the next section unpacks.

How it works

Prioritization works by turning a pile of individual requests into a single ranked list, scored on the same few criteria. The criteria do the heavy lifting, so the first job is choosing two or three that genuinely matter for your context and giving each a simple scale. Three families of criteria cover most situations.

Value, effort, and cost of delay

The lightest scheme scores each item on three things, often on a 1–5 scale.

  • Value is how much good the work does for someone, the change it creates, not the size of the request.
  • Effort is the cost to deliver it, in time or people.
  • Cost of delay is the value you lose for every week the work waits. A compliance deadline has a steep cost of delay. A nice-to-have polish has almost none.

Cost of delay comes from Donald Reinertsen’s work on product development flow. It reframes prioritization as economics rather than negotiation. The key insight is that an imprecise economic estimate beats a precise effort estimate. A cost of delay number that is off by 30% still produces better sequencing than a story-point total measured to the half-point.

WSJF, RICE, and MoSCoW

Three named frameworks formalize this for different decisions.

  1. WSJF (weighted shortest job first) divides cost of delay by job size. In SAFe, cost of delay is the sum of business value, time criticality, and risk reduction or opportunity enablement, each scored on a relative Fibonacci scale (1, 2, 3, 5, 8, 13, 20). High value and small size rise to the top, so short, valuable, time-sensitive work goes first.
  2. RICE scores reach times impact times confidence, divided by effort. Reach is the number of people affected in a period. Impact uses a multiplier (3 massive, 2 high, 1 medium, 0.5 low, 0.25 minimal). Confidence is a percentage (100%, 80%, 50%). Effort is in person-months. RICE was created by Sean McBride at Intercom to stop pet ideas and gut feel from winning.
  3. MoSCoW sorts items into must, should, could, and will not have this time. A useful sanity check is a rough 60-25-10-5 split across the four buckets, so the must-have list does not swallow everything.

The mechanics are the same across all three. You score every item in one sitting, sort, and read off the order. Treat the number as a ranking the team still owns. A human reads the sorted list, sanity-checks it, and makes the final call. With the parts named, the next section runs one example end to end.

A worked scenario

Maya leads a four-person platform team. On Monday she has three live requests and room to start one this week. Instead of taking them in the order they arrived, she scores all three on value, effort, and cost of delay, each on a 1–5 scale.

  1. CSV export for finance. Finance re-keys data by hand for about an hour every week. Value 4 (it removes recurring manual work), effort 2 (a known query plus a download button), cost of delay 4 (the manual hour repeats every single week it waits).
  2. Dashboard visual refresh. The charts look dated. Value 3, effort 4 (a full redesign), cost of delay 2 (nothing breaks while it waits).
  3. Add a button on the settings page. A director asked for it in passing. Value 1 (one team, narrow use), effort 2, cost of delay 1.

A quick way to rank is value times cost of delay, divided by effort, a stripped-down WSJF. CSV export scores (4 times 4) / 2 = 8. Dashboard scores (3 times 2) / 4 = 1.5. The button scores (1 times 1) / 2 = 0.5. That gives a clear order, CSV export, then dashboard, then the button.

The number is the start of the conversation, not the end. Maya writes one line of reasoning under each.

CSV export wins this week because the cost repeats weekly and the build is small. The dashboard is real but can wait a sprint. The settings button is parked because it serves one team and loses no value by waiting.

She shares the ranked list and those three lines in the team channel and replies to the director with the parked line in plain words. The director can still argue, but now they argue against the CSV export’s weekly cost of delay rather than against silence. Maya also sets a work-in-progress limit of one started item, so the top of the list actually finishes before the next one opens. Next Monday she re-scores against whatever new requests have arrived. The order is never frozen, but it is always explainable.

Pitfalls and edge cases

The most common failure is treating the score as truth. A RICE score of 1.7 looks more authoritative than a score of 1.3, but if the inputs are guesses, that gap is noise dressed as precision. The fix is to read the score as a sort key, then sanity-check the order by hand. If two items land within a rounding error of each other, the framework is telling you they are roughly equal, so decide on judgment and move on.

A subtler trap is effort anchoring. Because effort sits in the denominator of RICE and WSJF, aggressive low estimates inflate a score more than honest value ever could. A team that wants to do a fun project can win the ranking by under-sizing it. Counter this by estimating effort and value separately, ideally by different people, and by checking the top of the list against the goal rather than the score alone.

Watch for urgency masquerading as importance. A deadline creates time criticality, which is real, but a self-imposed deadline is not the same as a true cost of delay. Ask what actually breaks, and when, if the work slips. Often the honest answer is nothing, and the item drops down the list.

Edge cases the simple version misses:

  • The high-value bet whose signal takes a quarter to move. Cost of delay still applies, but the value is delayed and uncertain. Score it on confidence, not on whether the payoff has arrived yet, or it will lose to every quick win forever.
  • Dependencies and strategic alignment. Scoring frameworks rank items in isolation and ignore that item B is worthless until item A ships. Lay dependencies over the ranked list and resequence by hand where the order would otherwise block itself.
  • The stakeholder who agrees in the room and reverses by email. Capture the agreed order and the one-line reasons in writing where everyone can see them, so the next conversation starts from the record rather than from memory.

Handling these by hand is fine. The framework orders the easy 80%, and judgment handles the rest. Keeping that judgment consistent across many people and weeks is the next challenge.

Doing it at scale

At a team of four, prioritization can live in someone’s head on a good week. At ten people, two teams, or four quarters, it has to become a visible, repeatable habit, or it quietly reverts to whoever shouts loudest. Two lightweight artifacts carry most of the weight.

The first is a single intake queue. Every request, from every channel, lands in one place before it is ranked. The point is comparison: you cannot prioritize what you cannot see side by side, and side channels (a hallway ask, a direct message to an engineer) are exactly how the ranking gets bypassed. One queue, one ranking, one set of criteria.

The second is a work-in-progress (WIP) limit. A ranked list is useless if the team starts the top ten items at once, because then nothing finishes and cost of delay piles up across all of them. Cap the number of items in progress, often to one or two per person. When too much work is open at once, flow slows and cycle time stretches; capping it pulls the top of the list through to done. If you are new to WIP limits, start with one cap on the most commonly overloaded step rather than limiting everything at once.

Make re-ranking a fixed, short cadence, weekly or each sprint, rather than a constant renegotiation. Between sessions the order holds, which is most of the calm the practice buys. In the session, re-score against new arrivals, not against politics.

One durable principle survives every framework: the score orders the conversation, a human owns the decision. Tools change, and the right one depends on whether you are sequencing epics (WSJF), comparing features (RICE), or scoping a release (MoSCoW). The habit underneath them does not change. Hold the work side by side, name the tradeoff out loud, write down why, and revisit on a beat.

Practical steps

  1. 01Route every request into one intake queue so they can be seen side by side instead of arriving one at a time.
  2. 02Agree on two or three criteria that matter here, such as value, effort, and cost of delay, with a simple 1–5 scale for each.
  3. 03Score each item the same way, in one sitting, with the people who know the work and the people who feel the pain.
  4. 04Sort the list, then sanity-check the order by hand, resequencing where dependencies or strategy override the raw score.
  5. 05Write one line under each top item on why it beat the one below it, in plain terms.
  6. 06Share the order and the reasoning openly, then set a work-in-progress limit so the top few actually finish.
  7. 07Re-score on a fixed cadence, weekly or each sprint, against new arrivals rather than against pressure.

Common mistakes

  • Letting urgency stand in for importance, so the calendar quietly sets the strategy and the slow-burning, high-value work never starts.
  • Treating the score as truth and splitting hairs between a 1.3 and a 1.7, when inputs that fuzzy mean the two items are effectively tied.
  • Letting effort anchoring win the ranking, where an under-sized estimate inflates a favourite project past more valuable work.
  • Ranking the list in private and never explaining the tradeoffs, which invites the loudest stakeholder to reopen it next week.
  • Building an elaborate scoring spreadsheet that becomes its own project, then drifts out of date and gets ignored.

Examples

One comparison table
Criteria: value (1-5), effort (1-5), cost of delay (1-5). Rank by value x cost of delay / effort. CSV export -> value 4, effort 2, cost 4 -> score 8, rank 1 (finance re-keys data weekly). Dashboard refresh -> value 3, effort 4, cost 2 -> score 1.5, rank 2 (can wait a sprint). Add a button -> value 1, effort 2, cost 1 -> score 0.5, parked, with the reason written down.
A worked RICE score
RICE = reach x impact x confidence / effort. Self-serve onboarding flow: reach 450 users per quarter, impact 3 (massive), confidence 100%, effort 2 person-months. Score = (450 x 3 x 1.0) / 2 = 675. Compare against a settings tweak: reach 40, impact 0.5, confidence 80%, effort 1 -> score = (40 x 0.5 x 0.8) / 1 = 16. The onboarding flow wins by a wide margin, so the order is not in doubt.

Notes

  • Scope: this page covers ordering work against shared criteria. It does not cover capacity planning or estimation technique, and the score is a lens, not a calculator; a human still makes the call and owns explaining it.
  • Pairs with Outcome Over Output, which defines the value you are scoring, so a high rank reflects a real change rather than a loud request.
  • Pairs with Process Flow Basics for the intake queue and the work-in-progress limits that keep the ranked list flowing through to done.