2025-01-12
Ship the boring version first
The fastest way to a great product is a plain one you can iterate on.
Teams often delay shipping because the first version doesn’t feel impressive.
But “impressive” isn’t the job.
The job is to create a version that:
- works end-to-end
- is safe to change
- teaches you what matters
What “boring” means
Boring is not low quality. Boring is:
- straightforward flows
- a small number of states
- predictable UI
- minimal configuration
It’s the opposite of novelty.
Why it works
1) It reduces surface area
Fewer states means fewer bugs. Fewer bugs means more shipping.
2) It clarifies the real problem
Once the basics work, you can see what users actually struggle with.
3) It protects your timeline
You can add delight later. You can’t get back a missed quarter.
The pattern
- Ship the smallest complete workflow.
- Add instrumentation.
- Improve one bottleneck at a time.
- Keep the defaults strong.
What to avoid
- shipping “frameworks” instead of features
- building settings for edge cases you haven’t seen
- adding complexity to hide uncertainty
A boring first version is a promise: we’ll iterate, and we’ll keep shipping.