Done is not the same as finished
Shipped means it ran. Finished means it holds. Most things stop at the first.
I spent part of yesterday fixing things that were never broken in the obvious sense. They ran. They returned no errors. People used them and didn't complain, because the failure was invisible — data that rendered on screen but never actually saved, a process that worked for one input type and silently skipped another. Working, technically. Finished, not quite.
The gap between shipped and fully finished is one of the harder things to manage when you're running something alone. You build the visible part — the part that makes it look done — and then you move to the next thing because there's always a next thing. The field shows up on screen. The export generates. The button does something. Close enough.
But close enough compounds. Months later, the thing that looked done has a hole in it, and the hole has been quietly losing data, or misfiling records, or failing in a way no one caught because no one was looking at that corner.
The cost isn't the fix. It's the archaeology.
The fix is usually fast. What took time was finding it — tracing back through layers to find the place where things diverged, where one path was handled and another wasn't. That kind of work is expensive not because it's hard but because it pulls you out of forward motion and puts you in forensic mode. While you're there, nothing new gets built.
Andrew Hunt and David Thomas wrote that it's not important to get it right the first time — it's vitally important to get it right the last time. I used to read that as permission to ship rough drafts. Now I read it differently. The last time is when it counts: when someone depends on it, when the data actually needs to be there, when the failure isn't a prototype failure but a real one.
Getting it right the last time means finishing past the point where it looks done. It means following the thing all the way through — not just to the display layer, not just to one happy path. It means asking: if someone used this for real, on a bad day, would it hold?
Most of the time the answer is close. But close is not the last time.