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