ShipAnyways ← All posts

Ship the Obvious Version, Not the Clever One

You already know you should ship imperfect work. The hard part is deciding which version to ship, and you keep building the clever one instead.

You already know you should ship imperfect work. The hard part is deciding which version to ship, and you keep building the clever one.

Most builders hit the same wall: they've got the obvious version mapped out, but then they think of something smarter. More features. Better architecture. A twist nobody else thought of.

Three days later, they're polishing that clever version instead of shipping the obvious one.

Here's what most people miss: the clever version is not more likely to win. It's more likely to keep you stuck.

Obvious vs clever: where builders get stuck polishing

The obvious version solves the core problem directly and simply. No extra layers. No over-architected solution. Just the thing people actually asked for.

The clever version adds what you think could be valuable. Different approach, auxiliary features, a smarter way to handle edge cases that might not even exist yet.

Builders do not get stuck on the obvious version. They get stuck because they started building the clever one, realized it was better, and now cannot ship without finishing it.

The moment you decide the clever version is worth the wait, the polishing begins. Two days becomes two weeks. Perfection is suddenly the hurdle.

How to recognize when you're building the clever version

You're building the clever version when you're explaining your idea and it takes more than one sentence.

You're building the clever version when you've built something that requires a tutorial, or a feature breakdown, or setup steps that do not exist for competing options.

You're building the clever version when you find yourself saying "it's not done yet" about a core feature. Obvious features finish quick. They work out of the box because they do one thing, simply.

You're also building it when you keep thinking "wait, what if they need..." and then pivoting based on problems users have not reported yet.

The clearest signal: you're talking more about the architecture than the outcome. "We built it with X framework and it scales to..." is clever-version language. "You send a message and it gets delivered" is obvious-version language.

What makes a version obvious (and why simplicity scales)

Obvious is focused. It solves one clear problem, completely. Not partially. Completely. That takes precision, not complexity.

Obvious is discoverable without documentation. If a new user has to read instructions to use your core feature, you built the clever version.

Obvious is honest about what it does. It does not promise flexibility or extensibility or scalability as a feature. It does the thing it says it does, reliably.

Here's the scale part: obvious versions get used immediately. Clever versions get admired after six months of explanation and setup. Users do not wait for clever. They use obvious today and maybe upgrade to clever later if clever is actually proven to matter.

The obvious version also scales faster because it collects real feedback. Clever versions collect hypothetical feedback ("this is nice, but what if...?"). Real feedback tells you what to build next. Hypothetical feedback keeps you polishing.

Cutting clever features without abandoning your idea

Do not think of this as cutting your vision. Think of it as shipping your vision in phases.

Phase one: obvious. Solves the core problem, gets out.

Phase two: clever. Only after you've learned what users actually need from phase one.

The cut is not permanent. It's intentional. You know what you removed and why.

To decide what to cut, ask: does this feature exist because a user asked for it, or because you think they might need it? If it is the second one, it is a candidate to cut.

Ask: would the product fail without this? If no, it can ship in phase two.

Ask: does this add setup steps, configuration options, or decision points a user has to navigate? If yes, it belongs in phase two.

The cuts that stick are the ones you can explain in one sentence. "We removed real-time sync because users validate once a day and it was not needed to solve the core problem." That clarity is how you know it was the right cut.

Shipping obvious first: validating before you iterate

Ship obvious. Live with the feedback for a week, maybe two. Real usage tells you what actually matters.

When you get clear signal that a removed feature is wanted, you iterate. When you get signal that the obvious version solved it enough, you move on.

This is faster than polishing. Faster than hypotheticals. Faster than any planning meeting that ever happened.

The version you ship first does not define your product. It defines your learning velocity. Obvious gets you live, gets you feedback, gets you clarity on what to build next.

You can always add clever. You cannot un-ship clever until you've proven it mattered.

FAQ

Q: Isn't this just YAGNI (You Aren't Gonna Need It) repackaged?

YAGNI forbids building features before you need evidence for them. The obvious version forbids building the complicated way first, even for features you're definitely building now.

You might ship both customer authentication and real-time sync in the same product. YAGNI would say "just ship auth, wait for user demand for sync." Obvious-first says "ship both, but ship them as simply as possible, without over-engineered solutions connecting them."

Both avoid premature addition. Obvious-first is about premature sophistication: the impulse to solve problems the complex way before you've confirmed the simple way doesn't work.

Q: What if I ship obvious and customers feel like I didn't care enough?

Obvious signals you listened. You didn't over-build based on imagination. You solved their actual problem completely, without filler.

The people who feel like you didn't care are the ones who confuse complexity with care. Real care is "you said you needed X, we built X simply, and it works out of the box." That is effort. Obvious takes precision.

Obvious-first customers usually report it feels lighter, faster, less intimidating than clever products. They are not evaluating you on architectural sophistication. They are using what shipped.

Q: How do I handle team pushback on cutting features?

Your team is not wrong to worry about looking incomplete. They are just wrong about what "complete" means to users. A feature-complete product that nobody understands is incomplete. An obvious product that works immediately is complete.

Ship obvious, collect the feedback, then iterate from evidence. If cutting this feature was the wrong call, users will tell you fast. Then you adjust. That is how you get to actually complete.

Q: What if I ship obvious and immediately see features I should have included?

You will. That is not a sign you shipped too early. That is normal. The obvious version shows you what matters because you are looking at real usage, not your own predictions. You shipped obvious, people used it, and now you see what is missing.

That clarity is worth more than any amount of pre-shipping planning. Ship, learn, iterate. Hindsight is not a failure; it is the whole system working.

Q: How do I know what actually counts as the core problem?

Ask your early users this: What problem were you trying to solve before you found us? Not what they think they will need. What they actually needed to fix.

That is your core problem. The obvious version solves it completely. If you have to guess at your core problem, you are still in research mode. Ship obvious once you can explain it in one sentence to a stranger and they immediately nod.


Ship Anyways is a channel of Round Table Strategy LLC, written and published by Regie Durana. Ship Anyways is a trademark of Round Table Strategy LLC. © 2026. All rights reserved.