Posts

Showing posts from January, 2021

Gall’s Law

Gall’s Law isn’t really a law. It’s an observation, or a heuristic, from the early days of modern Systems Thinking. In John Gall’s 1975 book, “ Systemantics: How Systems Really Work and How They Fail” , he wrote: “A complex system that works is invariably found to have evolved from a simple system that worked. 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.” This is a great rule of thumb for helping us to create or design complex systems.  When we write software, some people think that it is better to evolve code as you go, writing code, then changing it, then changing it again.  Others think that this is wasteful, and that it is better to invest in in upfront design, or detailed estimation and planning, to avoid all this rework.  How can we decide which approach is better?  If we follow Gall’s Law, then we might have an answer. If we’re trying to create something truly co