← Systems

Gall's Law

Dec 22, 2024 systemsdesigncomplexity

John Gall, pediatrician and systems theorist, in Systemantics (1975): “A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.”

Thirty publishers rejected the manuscript. Gall self-published. Then academic journals reviewed it, and Quadrangle–The New York Times Book Company picked it up in 1977.


The internet works. It grew from ARPANET — four nodes in 1969, connected by a protocol simple enough to fit on a napkin. Each layer added only what was needed to make the next thing possible. TCP/IP. Email. The web. Each iteration simple, each building on what already worked.

CORBA was designed to be the universal solution for distributed computing. A committee of experts defined the complete architecture upfront. Specification documents ran thousands of pages. It shipped complicated and stayed complicated. Nobody uses CORBA.


The mechanism: complex systems have countless interdependencies. If any piece breaks, the whole fails. A complex design from scratch has no working reference. Every piece is untested. Failure is overdetermined.

Simple systems expose problems one at a time. They allow learning. They can be debugged, because the parts can be isolated. Each addition inherits the stability of what came before.


This applies beyond software:

Organizations: Startups that scale too fast collapse. The ones that work grow from a founding team that worked, adding complexity only as capacity develops.

Policies: Sweeping reforms fail more often than iterative changes. The New Deal worked not because it was a grand design, but because it was many small programs — some kept, some abandoned.

Products: The iPhone was a phone, an iPod, and an internet communicator. Three things Apple already knew how to build. An evolution of working pieces.


When confronting a complex problem, the temptation is to design a complex solution. Gall’s Law says this fails. The path to complexity runs through simplicity. Find something small that works. Add to it.

Start simple. Stay working.

Go Deeper

Books

  • Systemantics (also published as The Systems Bible) by John Gall — The original. Satirical, aphoristic, funnier than expected. Dense with insight.
  • Thinking in Systems by Donella Meadows — Serious systems thinking to complement Gall’s sardonic take.
  • The Mythical Man-Month by Frederick Brooks — Software engineering’s parallel discovery that complexity can’t be designed upfront.

Related: [[emergence]], [[legibility]], [[chestertons-fence]]