principles:gall_s_law
Table of Contents
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: 2021-10-20 21:35 by christian