The things that were always broken
Shipping is necessary. But some things you ship were never actually working, and finding that out costs more than the fix.
Yesterday I found something I built months ago that had never worked. Not broken in the way that trips an alarm. Broken in the way where the code deploys, the server runs, the logs show nothing wrong - and the feature quietly fails every single person who tries to use it.
An error was being swallowed somewhere deep in the logic. Clean exit, empty result, no noise. I moved on to the next thing. The feature appeared to exist. Users hit it and got nothing, and either assumed it wasn't built yet or gave up and stopped trying.
The fix took ten minutes. But I sat with it longer than that.
There's a specific feeling that comes with finding something that was always broken - different from shipping a bug and catching it the same day. This is the one you said was done. The one you built the next thing on top of. The one you stopped watching.
Done has a floor
Sheryl Sandberg said done is better than perfect. I agree. The cost of perfectionism is real - the features you never shipped, the revenue you never earned while polishing something nobody had used yet. Most things should ship imperfect, and the entrepreneur who waits for perfect usually just waits.
But done has a floor. The floor is: it does the thing.
The most dangerous perfectionism is not the kind that stops you from shipping. It's the kind that lets you call something shipped when it only appears to be - when the deployment succeeded, the tests passed, and you told yourself it was handled. That version is invisible. It feels like momentum.
I've shipped things that way and I will again. The pressure is real and testing every path is slow and sometimes you make a call and move.
But when I find one of these - a thing that was always broken, declared done while it quietly failed - I try not to minimize it. Not out of guilt. Out of calibration. Somebody hit that feature and got nothing, maybe gave up, maybe decided the whole product wasn't for them. I owe that a moment of honest accounting before I close the ticket and move on.
The moment is not punishment. It's the adjustment that makes the next thing more likely to actually work.