Value before polish
Heckel’s observation is that a user’s tolerance for a bad interface scales with how much they want the outcome. People learned vi. People filed taxes through government portals. Nobody does either for the joy of the interaction.
Which means the first question is never “is this beautiful”. It’s “does anyone need this enough to push through it”.
Why the order matters
Polish applied to something nobody wants produces a product that fails more slowly and more expensively. You lose the signal, because a beautiful thing that nobody uses is ambiguous — was it the value or the execution? — and you lose the weeks.
Ugly and valuable is an unambiguous result. Someone tolerated the rough edges to get the outcome. That is the only evidence that matters early, and it arrives faster when you haven’t spent a month on the empty state.
Value first also changes what polish means later. Once you know which two screens people live in, refinement is a targeted act rather than a uniform coat of paint across forty views, thirty-six of which nobody opens.
Barge-in is the clean case in a voice product. Letting a caller interrupt the agent mid-sentence looks like refinement, a nicety on top of a working system. It isn’t. A caller who can’t interrupt learns within two turns that they’re talking to a recording and behaves accordingly: no detail, no patience, straight to “operator”. The thing that sounds like polish is carrying whether the conversation happens at all.
Where it breaks
This law has been used to justify an enormous amount of bad software, and the limits are sharper than the slogan suggests.
Perceived value, not real value. The tolerance comes from what the user believes they’ll get. In a crowded category, the interface is the evidence — if three products claim the same outcome, polish is how a buyer estimates which one works. Ugly-but-valuable only survives where the value is already legible or the alternative is nothing.
Tolerance is spent, not renewed. A user pushes through friction while the outcome is novel. When a competitor arrives with the same outcome and less friction, the accumulated irritation cashes out at once. Retention curves fall off a cliff rather than sloping.
Some interfaces are the product. For anything real-time — a voice agent, a live dashboard, an editor — latency and feedback aren’t polish. A half-second of dead air is not an aesthetic problem; it’s the feature failing. Calling that “UI” and deferring it is a category error I’ve watched teams make repeatedly.
The practical line
Ship rough until someone is annoyed that it’s rough — that annoyance is the signal you were waiting for, and it means the value landed. Then fix the two screens they’re annoyed about, not the forty.
Takeaway: solve the core job-to-be-done before you optimise aesthetics.