
What we're actually trading off against isn't effort, points, or quality; it's uncertainty. Learn how known vs unknown unknowns drive friction between business, product, and engineering.
In the last article, I argued that great products aren't built by optimizing a backlog; they're built by making explicit tradeoffs.
This raises a natural question:
What are we actually trading off against?
The answer isn't effort, or points, or even quality.
It's uncertainty.
More specifically: known unknowns and unknown unknowns.
Most friction between business, product, and engineering isn't disagreement. It's people reacting to different kinds of uncertainty, without naming which ones they're dealing with.
These are the risks you can name upfront.
You know there's uncertainty; you just don't have the answer yet.
Examples:
Known unknowns are uncomfortable, but manageable. They can be tested, priced, and planned around.
This is where most teams think they're operating.
These are the risks you don't know exist yet.
They only reveal themselves through:
Examples:
Unknown unknowns are why plans break. They're also why rewrites happen.
Backlogs are good at organizing work. They are terrible at surfacing unknown unknowns.
A backlog assumes:
Unknown unknowns violate all three.
When teams treat the backlog as truth, they optimize execution around assumptions that haven't been stress-tested yet.
That's how you end up "on schedule" and still wrong.
This is where the Fast / Good / Well framework from the first article matters.
These aren't quality levels. They're uncertainty strategies.
Fast is about surfacing unknown unknowns cheaply.
Fast isn't reckless; it's investigative.
Good is for known unknowns.
Good keeps options open while the product matures.
Well is a reaction, not a default.
You build Well after:
Well exists to remove specific risk, not to feel responsible.
Rewrites don't happen because teams built Good.
They happen because:
Rewrites are the cost of pretending uncertainty doesn't exist.
Product engineering isn't about eliminating risk.
It's about:
When teams fight over scope, quality, or speed, they're usually arguing about which uncertainties matter most right now.
Name the uncertainty, and the tradeoff becomes obvious.
That's how you move from backlog-driven delivery to outcome-driven building.