Ship boring software on purpose
The most reliable systems I have built were also the least clever. Here is why I reach for boring first, and when I break my own rule.
By Boris Szelcsányi — Freelance Software Engineer & Fractional CTO
Also in Deutsch
Early in my career I mistook novelty for quality. A new datastore, an exotic queue, a framework three weeks old on Hacker News — each felt like progress. Most of them became the thing I was paged about at 3am.
These days I optimise for a different property: how quickly can the next engineer understand this and change it safely? That question tends to push me toward boring, well-understood technology, and it has been the single best predictor of a system aging well.
Boring is a feature, not a compromise
Boring technology has a large surface area of prior art. When Postgres does something surprising, ten thousand people have already hit it and written it down. When your bespoke consensus layer does something surprising, you are the documentation.
That matters most exactly when things are on fire:
- The failure modes are known and searchable.
- Hiring is easier because the skills already exist.
- The tooling — backups, migrations, observability — is mature.
None of that is glamorous. All of it compounds.
When I break the rule
Boring-by-default is not boring-always. I will spend novelty budget — what Dan McKinley called innovation tokens, of which you get about three — when three things line up:
- The problem is genuinely core to the business, not incidental.
- The boring option has a concrete, measured ceiling I have already hit.
- I can contain the new thing behind an interface I could rip out in a week.
A good architecture makes the reversible decisions cheap and the irreversible ones rare.
If I cannot draw the line where the risky component ends, I am not ready to add it yet.
The test I actually use
Before adding anything to a stack, I ask: if this breaks at the worst possible time, do I know how to fix it, and can I explain that fix to someone who has never seen it?
If the answer is no, the interesting choice is usually the wrong one. Ship the boring version, instrument it, and let the data — not the changelog — tell you when it is time for something sharper.
Sources
Primary references for the claims above. Standards and advisories are linked to the issuing body rather than to coverage of them.
-
[01]
Choose Boring Technology
Dan McKinley · mcfunley.com
The origin of the "innovation tokens" idea this post calls a novelty budget.
-
[02]
Yagni
Martin Fowler · martinfowler.com
The companion argument against building for imagined future needs.
-
[03]
DORA — capabilities and the four key metrics
DORA (Google Cloud) · dora.dev
Evidence that delivery throughput and stability improve together, rather than trading off.