User Tools

Site Tools


principles:gall_s_law

Gall's Law

Variants and Alternative Names

Context

Principle Statement

“A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a working simple system.”1)

Description

A process is good when it's not about building complex systems from scratch. Start with a simple system that works and enhance that. Alternatively take a set of known to be working (small) subsystems and compose them but keep sure that the composition itself does not become complex as this won't work either. Develop iteratively in small steps and frequently ensure that the result is still working.

Rationale

Creating a complex system from scratch is a difficult task. Many things can go wrong

Strategies

  • Use iterative processes.
  • Reuse known to be working modules.
  • Use automated testing to ensure that enhancing the system does not break it. Otherwise any further steps are enhancing of a non-working system.

Caveats

See section contrary principles.

Origin

John Gall: Systemantics: How Systems Really Work and How They Fail

Evidence

Relations to Other Principles

Generalizations

Specializations

Contrary Principles

Complementary Principles

Principle Collections

Examples

Example1:

Description Status

Further Reading

Discussion

Discuss this wiki article and the principle on the corresponding talk page.

1)
John Gall: General systemantics, an essay on how systems work, and especially how they fail, 1975
principles/gall_s_law.txt · Last modified: 2014-03-16 18:46 by christian