Gall's Law

"A complex system that works evolved from a simple system that worked."

Complex systems designed from scratch never work. Start simple, iterate, let complexity emerge from success.

Origin: John Gall, "Systemantics" (1975)

The Systemantics Insight

"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."

— John Gall

John Gall was a pediatrician who studied why large systems fail. His 1975 book "Systemantics" revealed a counterintuitive truth: complexity is not designed—it evolves. Every working complex system was once a working simple system that grew.

Why Simple-First Works

Feedback Loops

Simple systems can be tested. You learn what works before adding more.

Reduced Risk

Each iteration is small. Failure is cheap and recoverable.

Emergent Design

Real requirements emerge from use. Designed requirements are guesses.

The "Big Bang" Trap

Every failed megaproject shares a pattern: massive upfront design, years of development in isolation, then a catastrophic launch that doesn't match reality.

Famous Failures

  • • Healthcare.gov (2013) - $1.7B, crashed on launch
  • • Windows Vista - 5 years, massive rewrite failure
  • • Netscape 6 - Complete rewrite, killed the company

The Alternative

  • • MVP first - prove the core concept works
  • • Iterate - add features based on real usage
  • • Strangle - replace old systems gradually

Software Engineering Implications

Monolith First

Start with one deployable. Extract services only when needed.

Strangler Fig

Replace legacy systems by growing new code around old.

Walking Skeleton

Build end-to-end flow first, then fill in the details.

Ship Early

A working v0.1 teaches more than a perfect plan.