We almost shipped the wrong thing once. The demo looked good — built fast, polished, rejected outright.
It was built before anyone understood the ask.
You can build a very convincing version of the wrong product.
A team asks for a system. Someone builds it. It works exactly as specified — and still doesn't fit, because the spec described what people said they do, not what happens when the work moves between them.
A law firm asked us for a case management app.
The problem turned out to be that a case could depend entirely on one physical file.
That gap — between what gets requested and what's actually wrong — shows up in almost every project.
Plus one we ask ourselves constantly:
Did we actually learn this, or are we assuming it?
On the legal project we nearly claimed info was scattered across WhatsApp, spreadsheets and email. It sounded right. We hadn't established it.
So we removed it.