Why “Worse Is Better” Wins in Software (and Life)
Worse Is Better shows why simplicity and imperfection often outperform perfection in software and life.
When “good enough” beats “perfect”
In theory, the “right thing” should win—clean, complete designs with elegant interfaces.
In practice, the scrappy solution that ships first, runs everywhere, and is easy to evolve usually takes the crown.
That is the core of “worse is better”: prioritize simple, portable, workable now over perfect later—then iterate. The Origin Story (and What It Actually Means)
Richard P. Gabriel contrasted two design philosophies:
• The MIT / “Right Thing” approach:
optimize for correctness, consistency, completeness, then simplicity.
• The New Jersey / “Worse Is Better” approach:
optimize for simplicity first (especially implementation), accept partial solutions, and evolve.
His provocative claim: the “worse” approach spreads like a virus because it is easier to build, port, understand, and adopt—then it improves over time.
The Four Trade-Offs (Side-by-Side)
1) Simplicity
• Worse Is Better: Implementation simplicity first. Small core, few moving parts.
• Right Thing: Interface simplicity first, even if implementation gets complex.
2) Correctness
• WIB: Be correct in what you promise, but promise less. Ship sooner.
• RT: Strive for comprehensive correctness—cover every case up front.
3) Consistency
• WIB: Avoid overly inconsistent designs, but drop edge cases to stay simple.
• RT: Consistency rivals correctness—do not sacrifice it.
4) Completeness
• WIB: Cover the common 80%; add the rest later if users need it.
• RT: Cover all important situations from day one.
Why “Worse Is Better” Spreads (And Sticks)
1) Lower adoption friction
Small, hackable systems are easier to learn and run on modest hardware. That expands the user base fast.
2) Portability and extensibility
Simple implementations port quickly and invite contributions. Network effects kick in.
3) Iterative improvement
Once widely adopted, the “good enough” platform accumulates tooling, docs, and talent—compounding advantages.
4) Developer conditioning
Users learn to accept trade-offs for speed and ubiquity; then the ecosystem gradually moves from 50% to ~90% of the “right thing.”
Case Studies: Where WIB Won Unix & C
• Why it won: Small kernel, simple abstractions, portable C compilers. Ran on “worse than median” machines.
• Result: Became the base for countless systems; simplicity enabled viral spread.
The Web (HTML, CSS, JavaScript)
• Why it won: Permissive, forgiving standards; view-source culture; immediate reach via browsers.
• Result: Messy beginnings, massive adoption, continuous hardening (ES6+, modern CSS, frameworks).
TCP/IP vs. OSI
• Why it won: TCP/IP was simpler, working, and widely deployed; OSI was more “correct” but complex and late.
• Result: TCP/IP became the internet’s backbone.
Agile + MVPs vs. Big Design Up Front
• Why it wins: Deliver value fast, validate with users, iterate.
• Result: Fewer failed “perfect” products; more market-fit software.
Where WIB Can Backfire
1) Safety-critical domains
Aerospace, medical devices, autonomous systems: partial correctness can be catastrophic.
2) Security
“Ship now, patch later” invites vulnerabilities. Simplicity helps security, but incompleteness can be dangerous.
3) UX fragmentation and tech debt
Quick wins can ossify into hard-to-change interfaces and brittle infrastructures.
4) Complex coordination
Large, interdependent orgs sometimes need stronger guarantees up front to prevent chaos.
Rule of thumb: the higher the cost of failure or change, the more you should bias toward “Right Thing.”
A Practical Framework: Choosing WIB vs. RT
Ask these questions:
1. Impact of getting it wrong?
• Low/medium → WIB bias.
• High/irreversible → RT bias.
2. How stable are requirements?
• Uncertain/fast-changing → WIB (prototype, iterate).
• Stable/regulated → RT (design up front).
3. Adoption constraints?
• Need broad reach, many environments → WIB (portable, minimal).
• Single, controlled platform → can afford RT.
4. Feedback loop speed?
• Can you test with real users quickly? → WIB thrives.
• Long validation cycles → more upfront RT.
5. Ecosystem leverage?
• Strong community + ext. tooling → WIB will improve fast.
• Sparse ecosystem → you may need RT to avoid painted-in corners.
How To Do “Worse Is Better” Well
1) Define a sharp, minimal core
• Nail the 2–3 core use cases.
• Keep the API tiny; make it easy to compose.
2) Be explicit about non-goals
• Write down what you are not solving (yet). Avoid silent complexity creep.
3) Design for evolution
• Stable boundaries, versioning, extension points, feature flags, migration plans.
4) Instrument from day one
• Telemetry, error reporting, performance metrics—so iteration is data-driven.
5) Security and reliability guardrails
• Threat models, safe defaults, least privilege, fuzzing/CI—even for “v1”.
6) Kill features ruthlessly
• If an edge case adds disproportionate complexity, drop it or externalize it.
A Simple Checklist
• What is the smallest thing that delivers real value?
• Can it run in more places with less? (dependencies, memory, CPU)
• What are the top 3 failure modes? How do we contain them?
• What is the escape hatch if we guessed wrong? (rollback, toggles)
• How will we learn fast? (users, metrics, review cadence)
• What will not we do yet? (documented non-goals)
Beyond Software: Life Applications
• Habits: Start with a 5-minute workout, not a perfect program. Consistency > completeness.
• Writing: Draft ugly, publish, revise. Readers reward clarity and cadence.
• Startups: Ship an MVP, find signal, iterate; avoid stealth-mode “perfect” ghosts.
• Learning: Build toy projects; mastery grows from small, working things.
The Balanced Takeaway
“Worse is better” is not a license for sloppiness. It is a strategy:
• Start simple.
• Deliver value quickly.
• Earn adoption.
• Evolve deliberately.
Aim for the smallest system that could possibly work—with clear guardrails—then improve it with real feedback. In a world that rewards momentum and reach, good enough today often beats perfect someday.
Top Questions about Why “Worse Is Better” Wins
1. What exactly is "Worse Is Better"?
A concise presentation of the concept: software with limited functionality but simple implementation often spreads more widely than complex, feature-rich systems.
2. Where did the idea originate?
It first appeared in the 1989 essay “Lisp: Good News, Bad News, How to Win Big” by Richard P. Gabriel, with the phrase “The Rise of ‘Worse is Better’” popularizing the notion.
3. What principles define this philosophy?
It prioritizes implementation simplicity over interface design, correctness, consistency, and completeness—embracing trade-offs for speed and adaptability.
4. Why did Unix and C succeed under this model?
Their minimalism and portability made them easy to implement and widespread, even if not “perfect,” embodying the philosophy of spreading quickly and improving over time.
5. What are criticisms of “Worse Is Better”?
Some argue it encourages complacency, technical debt, and mediocrity—especially when perfection is technically feasible.
6. What's the flip side—“The Right Thing”?
In contrast, the “MIT approach” values interface simplicity and correctness over implementation ease, striving for completeness—even if it delays deployment.
7. How has this played out in popular tools like Git?
Git embraced a minimal viable implementation approach, which prioritized functionality over perfection—helping it spread widely.
8. Why has the phrase endured—and sparked debate?
Besides praising simplicity, the phrase intentionally provoked discussion. Over time, Gabriel even wrote rebuttals like “Worse Is Better Is Worse” and “Is Worse Really Better?”
9. Is “Worse Is Better” a flawed doctrine?
The nirvana fallacy warns against comparing practical solutions to idealized ones. "Worse Is Better" reflects real-world constraints rather than philosophical purity.
10. Does it still apply today—or has it gone too far?
While once effective, critics argue that slack design tolerated under this philosophy is less acceptable in modern contexts where stakes—like security—are higher.
Bonus: Perspective from Gabriel’s Criticisms
Richard P. Gabriel himself vacillated on the idea—writing both in favor and against it—indicating that the philosophy is not a one-size-fits-all solution.
Why I Can Write on the ‘Worse Is Better’ Idea
With a strong background in analyzing technology trends, human behavior, and design philosophies, I explore how the “Worse Is Better” approach applies not only to software but also to real life. My writing bridges research with practical insights, making complex ideas accessible to readers.
Thank you!
Follow AZAD Search for practical tips from an architect, blogger, technical expert, and financer's lens.
Meenakshi (Azad Architects, Barnala)
