There's this founder I know who spent three months building a dashboard before showing it to a single customer. Beautiful typography, smooth animations, edge cases handled. When he finally launched, the first user question was: "Can I export to CSV?" He didn't have that. Took him four days to add. Would've taken him two hours if he'd asked three months earlier.

Meanwhile, another founder shipped a dashboard that was basically just a Google Sheet with a nicer URL. Five customers used it in week one. By week four, she'd rebuilt the entire thing based on what those five people actually needed. Her version 2.0 shipped faster and worked better than the first founder's version 1.0.

Same problem, same market, completely different approach to what "done" means.

The completeness trap

Perfect and complete feel like the same thing. They're not.

Complete means it does the job. Perfect means it does the job flawlessly, handles every edge case, looks beautiful, and feels delightful. Perfect takes 10x longer than complete.

The fast shippers figured something out: customers don't need perfect, they need complete enough to solve the problem. Everything else is decoration you're adding because you're scared to ship.

That first founder with the beautiful dashboard? He wasn't building features those last two months. He was building confidence. Trying to make the product so good that nobody could reject it. Doesn't work that way. They'll reject it anyway, but at least if you ship early you'll know why.

Why we chase perfect

Most founders who wait for perfect think they're being thorough. They're actually being afraid.

Afraid the customer will say it's not good enough. Afraid they'll look amateur. Afraid of shipping something that doesn't work exactly right. So they add one more feature, fix one more edge case, polish one more interaction.

I've seen this pattern enough times to know how it ends. The founder finally ships, gets feedback that invalidates half their assumptions, and realizes they wasted two months building things nobody wanted.

The painful part? They usually knew they should've shipped earlier. They just couldn't convince themselves that incomplete was acceptable.

Incomplete vs broken

This isn't an argument for shipping garbage. There's a difference between incomplete and broken.

Broken means it doesn't do what it claims to do. Incomplete means it doesn't do everything yet. You can ship incomplete. You can't ship broken.

The CSV export the first founder missed? That's incomplete. If his dashboard had claimed to show revenue but the numbers were wrong? That's broken.

Most founders blur this line. They convince themselves that missing features makes the product broken. It doesn't. It makes it incomplete. Customers can work with incomplete if the core thing works.

How to know when to ship

I stopped trying to define "ready" in abstract terms. Started asking three questions:

Does it solve the problem you're claiming to solve? If yes, ship it.

Can someone use it without you sitting next to them? If yes, ship it.

Would you rather have feedback on this version or keep building in the dark? If it's feedback, ship it.

That's it. No quality bars, no feature checklists, no polish requirements. Just: does it work, can they use it, do you need to learn what's wrong?

The teams that ship fastest have internalized this. They're not reckless. They've just recalibrated what "ready" means. Ready means complete enough to learn from, not perfect enough to be proud of.

What happens when you ship incomplete

You learn things.

Which features actually matter (usually not the ones you spent the most time on).

What's confusing (usually the thing you thought was obvious).

What's missing (usually not what you guessed).

How people actually use it (usually different from how you imagined).

Every week you wait to ship is a week you could be learning these things. The founders who wait for perfect are just postponing the inevitable moment when they discover their assumptions were wrong.

Better to discover it in week three with a scrappy prototype than week twelve with a polished product.

The confidence problem

Shipping incomplete requires a specific kind of confidence. Not confidence that your product is great—confidence that you can handle it not being great yet.

The founders who can't ship early aren't worried their product isn't good enough. They're worried they aren't good enough to fix whatever's wrong with it.

So they try to front-load all the quality. Make it so good that they won't have to iterate much. Doesn't work. You're going to iterate regardless. The only question is whether you iterate based on real feedback or imagined scenarios.

Reply

Avatar

or to participate

Keep Reading