Juan Piaggio · 2026-08-22 · 7 min read · ai · product-development · strategy
Your team scores the roadmap with RICE. A year ago the effort column did most of the sorting. Now half the list reads "a few days," the scores cluster, and the ranking has quietly stopped ranking anything.
The framework is fine. Its denominator expired.
RICE, WSJF, value-over-effort — they all divide by build cost. That worked for a long time, not because engineering hours are interesting, but because they correlated with everything else that was expensive. A twelve-week build meant twelve weeks of people you couldn't redeploy, a long list of decisions made before you learned anything, and a commitment that was awkward to walk back. Dividing by effort implicitly divided by all of it.
AI broke that correlation for one specific class of work: the parts that are mostly careful typing over a well-understood domain. The admin screen, the migration, the fourth export format, the integration adapter that looks like the last three. That work genuinely went from weeks to days.
What did not get cheaper is everything the effort number was standing in for — deciding it was the right thing, proving it worked for real users, and living with it afterwards. So the effort column now sorts your roadmap by how familiar each item is, not by how much it costs you. Rank on it and you will systematically over-select for the things your team has already built once.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 200" role="img">
<title>The constraint moved downstream, so ranking by build effort now sorts on the one thing that stopped being scarce</title>
<text x="1" y="16" font-size="11" fill="var(--text-muted)">Then — build was the neck, so effort was a fair denominator</text>
<rect x="1" y="28" width="160" height="46" rx="10" fill="var(--sand-1)" stroke="var(--border)" />
<text x="81" y="56" text-anchor="middle" font-size="14" fill="var(--ink-1)">Idea</text>
<rect x="212" y="28" width="160" height="46" rx="10" fill="var(--sand-1)" stroke="var(--border)" />
<text x="292" y="56" text-anchor="middle" font-size="14" fill="var(--ink-1)">Decide</text>
<rect x="423" y="28" width="160" height="46" rx="10" fill="var(--sand-1)" stroke="var(--warning)" />
<text x="503" y="56" text-anchor="middle" font-size="14" fill="var(--ink-1)">Build</text>
<rect x="634" y="28" width="160" height="46" rx="10" fill="var(--sand-1)" stroke="var(--border)" />
<text x="714" y="56" text-anchor="middle" font-size="14" fill="var(--ink-1)">Validate</text>
<path d="M161 51 H196 M372 51 H407 M583 51 H618" stroke="var(--text-muted)" stroke-width="1.5" fill="none" />
<path d="M196 46 l10 5 -10 5 z M407 46 l10 5 -10 5 z M618 46 l10 5 -10 5 z" fill="var(--text-muted)" />
<text x="503" y="92" text-anchor="middle" font-size="11" fill="var(--warning)">weeks of engineering</text>
<text x="1" y="120" font-size="11" fill="var(--text-muted)">Now — the neck is validation, and effort no longer measures it</text>
<rect x="1" y="132" width="160" height="46" rx="10" fill="var(--sand-1)" stroke="var(--border)" />
<text x="81" y="160" text-anchor="middle" font-size="14" fill="var(--ink-1)">Idea</text>
<rect x="212" y="132" width="160" height="46" rx="10" fill="var(--sand-1)" stroke="var(--border)" />
<text x="292" y="160" text-anchor="middle" font-size="14" fill="var(--ink-1)">Decide</text>
<rect x="423" y="132" width="160" height="46" rx="10" fill="var(--primary-50)" stroke="var(--primary-600)" />
<text x="503" y="160" text-anchor="middle" font-size="14" fill="var(--ink-1)">Build</text>
<rect x="634" y="132" width="160" height="46" rx="10" fill="var(--sand-1)" stroke="var(--warning)" />
<text x="714" y="160" text-anchor="middle" font-size="14" fill="var(--ink-1)">Validate</text>
<path d="M161 155 H196 M372 155 H407 M583 155 H618" stroke="var(--text-muted)" stroke-width="1.5" fill="none" />
<path d="M196 150 l10 5 -10 5 z M407 150 l10 5 -10 5 z M618 150 l10 5 -10 5 z" fill="var(--text-muted)" />
<text x="503" y="196" text-anchor="middle" font-size="11" fill="var(--text-muted)">days</text>
<text x="714" y="196" text-anchor="middle" font-size="11" fill="var(--warning)">real users, real judgment</text>
</svg>
Three things, and no engineering estimate captures any of them.
Validation bandwidth. You can only put so many meaningful changes in front of real users per quarter before you can no longer attribute a result to any one of them. Ship six things into the same surface in the same month and you have six things you cannot evaluate. This ceiling did not move when build cost fell — if anything it got tighter, because more candidates now arrive at it.
Reversal cost. Cheap to build says nothing about cheap to undo. A schema change, a pricing tier, a permission model, an API someone else integrates against — those cost exactly what they always did to walk back, and AI does not help. The asymmetry is new and it is large: a week of build can still buy you a year of obligation.
Trust budget. Every AI-assisted feature spends a little of your users' willingness to believe the product. Ship four that are almost right and the fifth one, which is genuinely excellent, gets checked by hand anyway. That budget refills slowly, and you cannot buy more of it with engineering capacity.
The repair is small. Keep the numerator you already trust and swap what sits under it:
Old: score = (reach × impact × confidence) / build-effort
New: score = (reach × impact × confidence) / judgment-cost
judgment-cost = validation-load # share of the quarter's evaluation capacity it consumes
+ reversal-cost # what it takes to undo after a month in production
+ trust-exposure # how visibly it fails in front of a user
Score each of the three from 1 to 5 and sum them. It is not precise, and it does not need to be — it needs to stop putting the fourth export format above the pricing change purely because one is familiar. In practice the reordering is dramatic: work that used to rank well on "we can do that in a sprint" drops, and work that was perpetually deferred on effort grounds finally competes.
Once building is cheap, most items on a roadmap are two-way doors: reversible in an afternoon, small blast radius, easy to observe. For those, the cost of debating the priority now exceeds the cost of doing it and looking at what happened. Set a standing capacity allocation, let the team pull from it, and stop scoring them individually.
That frees the prioritization meeting for the thing it is uniquely good at, which is deciding the handful of items you would struggle to reverse. A ranking session that spends forty minutes on a reversible admin screen and eight on a permissions redesign has its attention exactly backwards, and the effort column is usually what put it there.
In the evidence, not in the verdict. Assembling the case for a score is real work and AI is good at it: pull every ticket, support thread, and usage signal touching a candidate; draft the reach estimate along with the query it came from; flag the two initiatives that quietly depend on each other. That is hours of gathering, done well, and it makes the human argument sharper rather than replacing it.
It is much weaker at the value judgment itself, because the inputs it would need — what you are willing to bet the year on — mostly live in conversations it never saw.
We handle AI-proposed prioritization the way we handle any other AI-proposed action in Meshworq: an allowlist of what it may suggest, a confidence floor beneath which it stays quiet, and an acceptance rate tracked over time. When humans override a whole class of suggestion most of the time, that is not a stubborn team — it is a mis-specified suggestion, and the acceptance rate is what tells you which one to fix. Every proposal and its disposition lands in the decision ledger under a single correlationId, so "why is this at the top of the roadmap" still has a real answer two quarters later.
Don't throw out the framework — change what it divides by. Effort was a good proxy for scarcity right up until AI made it a poor one, and a scoring model that has stopped separating your options is worse than no model, because it lends the familiar choice a number. Rank by the judgment a thing consumes and the commitment it creates, spend the meeting on the doors that only open one way, and let AI make the evidence better while the bet stays yours.