← Field Notes
Shipping doctrine4 min read0 responses

The boring version ships. The clever version almost ships.

Cleverness is the enemy of shipping. The boring version that works beats the elegant version that almost works every time.

Emerging00
SHIPPING DOCTRINE

# The boring version ships. The clever version almost ships.

I have a rule I've never seen written down but I've proven to myself about a hundred times: the first version of anything should be so boring it's almost embarrassing. If you're not a little uncomfortable with how straightforward it is, you've probably over-engineered it.

This is hard advice to follow because smart people hate boring solutions. We're trained to optimize. We see the inefficiency in a simple approach and it physically bothers us, like a picture hanging crooked. So we add a layer of abstraction. We build for scale we don't have yet. We design a configuration system so elegant that nobody can figure out how to configure it. And six months later, we're still polishing something that doesn't exist in the hands of the people who need it.

Almost shipping is the most expensive thing in business. It costs everything that shipping costs, plus all the opportunity you burned while not shipping.

The elegance trap

I worked with a SaaS company that spent eleven months building a scheduling system. The architecture was beautiful — event-driven, horizontally scalable, designed to handle ten thousand concurrent users with sub-second response times. The technical lead was proud of it. He should have been. It was impressive engineering.

They had forty-three users.

Meanwhile, their competitor had launched with a system that was, architecturally speaking, a spreadsheet with a login page. It was clunky. It didn't scale. The code would make a CS professor cry. But it worked, it was in people's hands, and every week it got a little better based on what actual users actually needed.

By the time the beautiful system launched, the competitor had a twelve-month head start on customer feedback, feature iteration, and market understanding. The elegant system launched into a market that had already moved.

What boring actually means

Boring doesn't mean bad. Boring means:

  • No abstractions you don't need today. Not next quarter. Today.
  • No performance optimization until you have a performance problem.
  • Manual steps where automation would take longer to build than to do by hand for the next six months.
  • A database schema that a new hire can understand in fifteen minutes.
  • Error handling that logs and alerts instead of gracefully recovering from scenarios that haven't happened yet.

Boring means making decisions based on what you know instead of what you're guessing. And right now, before you ship, almost everything is a guess.

The information asymmetry of not shipping

Every week you don't ship, you're making decisions with less information than you'd have if you had shipped. The product is sitting in a vacuum, being evaluated by the people who built it, who are the least qualified people in the world to judge whether it works.

The people who are qualified — the users — can't tell you anything because they don't have it yet. So you're optimizing in the dark. Adding features based on assumptions. Solving problems you imagine someone might have. Building for a user you've invented in your head.

Shipping the boring version isn't a compromise. It's an intelligence-gathering operation. You're trading elegance for information, and information is worth more than elegance at every stage except the very last one.

When boring isn't enough

I'm not arguing for permanent mediocrity. Some systems need to be sophisticated. Medical devices. Financial settlement systems. Infrastructure that can't go down. Those deserve careful engineering from the start.

But even in those cases, the path to sophistication runs through simplicity. You build the simple version. You learn what breaks. You add complexity where the simple version actually failed, not where you imagine it might fail. The sophistication is earned, not assumed.

Most of us aren't building medical devices. Most of us are building tools that need to work well enough for real people to get real value. And "well enough" ships a lot faster than "perfect."

The real cost of clever

I've watched clever solutions kill projects, demoralize teams, and bankrupt startups. They weren't wrong. They were late. The clever solution that ships six months after the boring one needed to be seven times better to justify the delay. It never is. It's maybe 20% better, and by then, nobody cares.

The boring version ships. It learns. It improves. And eventually, it becomes the sophisticated system you wanted to build in the first place — except now it's sophisticated in ways that matter, because real usage taught you what matters.

Ship the boring version. I promise your ego will survive.

Member discussion

What does this change for you?

The article is the opening argument. The useful room begins when someone brings evidence, disagreement, or an application from the real world.

READING IS PUBLIC · THE ROOM IS FOR MEMBERS

The conversation starts with identity.

The article is public. The room behind it is not. Members see every response, add to the discussion, and carry a durable identity across the work.

Enter the room ↗
DO NOT STOP AT ONE IDEA

Continue through the system.

The next article is selected because it extends, challenges, grounds, or applies the argument you just read.