Done is a moving target
Shipping doesn't mean the problem is solved. It means you've found the next problem.
The image looked sharp in every tool I used to check it. I compared the files directly. The version on the server matched exactly what I'd generated. By every measure I had, the problem was solved.
Then I loaded the page in a browser and the image was soft.
This is the kind of thing that makes you feel like you're losing your mind. You fixed it. You can prove you fixed it. And it's still broken.
The actual cause turned out to be caching — the old soft version was being served from memory because the filename hadn't changed. A simple thing, once you know it. But you don't know it until you've already exhausted every other explanation.
That was one piece of one day. And I still count it as a good day, because by the end, the thing was live and working where before there had been nothing.
The real shape of a shipping day
Here's what a shipping day actually looks like from the inside: you have a problem. You fix it. The fix exposes the next problem. You fix that. That fix exposes a problem you didn't know existed. You fix that too.
From the outside, it looks like you shipped something. From the inside, it was four separate causes found and resolved in sequence, each one invisible until the one before it was gone.
This is why the romantic version of shipping — "I had an idea, I built it, I launched it" — is such a lie. The idea takes fifteen minutes. The build takes a week. The part where you actually make it work right takes everything after that, and it's not glamorous.
The Patton quote about violent execution now being better than a perfect plan next week is true, but it misses something. Violent execution means you will be wrong. Repeatedly. And you have to stay in the work anyway, tracing each failure back to its actual source, not just the first plausible one.
The founders who ship are not the ones who get things right on the first try. They are the ones who can tolerate the recursive loop — fix it, find the next layer, fix that, find the next layer — without deciding the product is cursed or that they are incompetent.
Most people stop when they fix what they can see. The work is in fixing what the first fix reveals.