Gall's Law
Every working complex system evolved from a simple system that worked.
Definition
Gall’s Law states an uncomfortable truth for designers of large systems: you cannot build a complex system that works from the start. Any attempt to build complexity directly fails.
What works is starting from a simple system that works, then evolving it carefully, testing each addition. Functional complexity is not a starting point; it is an outcome.
Why it matters
This law is a warning against the “big design up front” syndrome: planning a perfect system on paper before starting. It justifies iterative approaches (agile, lean startup, MVP): start small, validate, grow.
It applies far beyond software: to organizations, institutions, ecosystems. Systems that endure are almost always those that evolved: not those that were designed.
Concrete examples
The Internet: born as ARPANET (4 nodes in 1969), gradually evolved into the global network.
Unix: built around small, simple, composable tools, the opposite of the monolithic systems of its era.
Large IT projects: mega-systems designed all at once (healthcare systems, national registries, large ERP rollouts) have high failure rates.
Biology: complex organisms evolved from simple forms over billions of years.