← Thoughts

Ship It Before It's Ready, Not Ready to Break

· 2 min read · Tim Cooley

Two people are in the room, PRIYA leaning over a laptop showing DEV a dashboard with a red warning icon blinking, DEV's arms crossed. There are no other people anywhere in the room.

I check my bag three times before I leave for the airport even though I have never once forgotten the thing I was worried about. The checking isn't really about the item. It's about not trusting myself to know I'm ready.

We had a feature ready to ship a few months back that didn't feel finished. Not broken, just not done in the way that makes you comfortable hitting the button. I pushed to ship it anyway, because the alternative was another two weeks of polish nobody had asked for, and the customers who needed it were already asking why it wasn't there.

It broke for a small number of accounts within a day. Not catastrophically, but enough that I had to look at the guardrail we'd built for that exact case and admit it had been tested by one person, once, under conditions that weren't close to real usage. I'd called it tested because I wanted it to be tested. That's the part I don't love admitting. The guardrail existed on paper before it existed in practice, and I knew the difference and shipped anyway.

I'd been running some version of this since the Marine Corps without a name for it — you don't wait for the airplane to be flawless, you fly it inside known limits and you fix what the limits catch. Later I ran into Boyd's stuff on tempo beating polish and recognized a problem I'd already been living, not one I'd been taught. The idea isn't "ship broken things fast." It's that a fast loop with a real check beats a slow loop with an imagined one. Speed isn't the argument. The guardrail is the argument. Speed is just what you get to have once the guardrail is honest.

What I'm still not sure about is where the line sits between "this guardrail is real" and "this guardrail is real enough that I'm impatient." Those two feel identical from the inside right before you ship, and I only find out which one it was after.

I'm curious how the people who'd rather wait for finished handle that same moment — the one where you can't yet tell if you're being disciplined or just anxious to be done.

If you've held something back past the point of usefulness, how did you know it was the right call and not just fear wearing a process costume?

perspectiveproductshippingguardrails