Reading list

Other people have made the case for simplicity better than I can. These are the talks, essays, and books I keep sending to people.

Start here

  • Simple Made Easy
    Rich Hickey · talk, 2011

    If you only watch one thing on this list, watch this. Hickey separates simple (one fold, not tangled) from easy (near at hand, familiar). Once you see the difference, you'll notice it in every design review.

  • No Silver Bullet: Essence and Accident in Software Engineering
    Fred Brooks · essay, 1986

    Brooks splits complexity into the kind the problem brings (essential) and the kind we add ourselves (accidental). Forty years later it's still the most useful way to think about this.

  • Choose Boring Technology
    Dan McKinley · essay, 2015 (slides)

    Every organization gets about three "innovation tokens." Spend them on what makes you different, not on a new database. This is the best argument I know for a deliberately small technology portfolio.

  • A Philosophy of Software Design
    John Ousterhout · book

    A short, practical book about one goal: reducing complexity. "Deep modules," a simple interface over a powerful implementation, is an idea you'll keep coming back to.

Engineering

  • Is High Quality Software Worth the Cost?
    Martin Fowler · essay

    Fowler argues that internal quality isn't a trade-off against speed. It's what makes speed possible. Good to hand to anyone who thinks quality is a luxury.

  • Technical Debt Quadrant
    Martin Fowler · essay

    Not all technical debt is the same. A clear way to talk about which debt you took on deliberately and which you took on by accident.

  • Tidy First?
    Kent Beck · book and newsletter

    Beck on when to clean up code before a change, after it, or not at all. It treats simplicity as an economic decision instead of a moral one.

  • The Grug Brained Developer
    Carson Gross · essay

    "Complexity very, very bad." Funny, and deeper than it looks. Good for when you need to make the point without sounding preachy.

  • Simplicity (Site Reliability Engineering, ch. 9)
    Google SRE team · book chapter

    Why reliability engineers count "boring" as a compliment, and why they treat every new line of code as a liability.

  • Things You Should Never Do, Part I
    Joel Spolsky · essay, 2000

    The classic warning about the big rewrite. The urge to start over is real, and it usually costs more than the mess you're trying to escape.

Architecture

Leadership and organizations

  • Team Topologies
    Matthew Skelton & Manuel Pais · book

    Your architecture will mirror your org chart (Conway's Law), so design both on purpose. Its idea of "cognitive load" as a limit on a team is one of the most useful in the field.

  • An Elegant Puzzle: Systems of Engineering Management
    Will Larson · book

    Engineering management treated as a systems problem. His essays on migrations and staff engineering are excellent too.

  • DORA research
    Nicole Forsgren, Jez Humble, Gene Kim, and the DORA team

    Years of evidence that small batches, simple pipelines, and loosely coupled systems beat the alternatives. The book is Accelerate.

  • How Complex Systems Fail
    Richard Cook · essay, 1998

    Eighteen short points about failure in complex systems. Required reading before your next post-incident review.

  • On Being a Senior Engineer
    John Allspaw · essay

    Seniority shows up as judgment, trade-off awareness, and making the people around you better, not as cleverness.

  • Chesterton's Fence
    Farnam Street · essay

    A necessary counterweight. Before you remove something in the name of simplicity, find out why it's there.

  • Shape Up
    Ryan Singer · free book

    Fixed time, variable scope. A product process built around cutting things, which is the hardest and most valuable skill a team can have.

Simplicity in the age of AI

  • Building Effective Agents
    Anthropic · engineering essay

    The advice from people who build these systems: start with the simplest thing that works, and add complexity only when it clearly pays for itself.

  • Simon Willison's Weblog
    Simon Willison · blog

    Practical, skeptical, hands-on writing about using AI tools in real engineering work without fooling yourself.


This list keeps growing. If you know something that belongs here, I’d like to hear about it.