Hacker News new | past | comments | ask | show | jobs | submit login
Gall's Law (wikipedia.org)
40 points by TJensen on April 1, 2009 | hide | past | favorite | 6 comments

Gall's book (Systemantics) is a brilliant and whimsical classic about the unpredictable nature of complex systems. It deserves to be far better known.

I just finished reading it. Even though it's tongue in cheek humorous in some places, it's a must read for anyone who deals with systems (programmers/engineers/politicos/the average citizen).

One of the hardest things for a programmer to do is to NOT build a system. But sometimes (everytime?) the avoidance of a system (if possible) is the best option.

An example: Our company just implemented a huge ERP system from a well known vendor. As expected the problems we were trying to solve (resource management, etc) became secondary to keeping the system up and running. The system itself becomes the problem.

Simple and complex are relative terms. What a highly educated person anno 2009 would find simple might be complex to a uneducated person anno 1009.

Which implicates this "law" is also relative, making a more useful description: If you make something which seems complex to you, it will not work. Begin with something that is simple to you, and than evolve it in to something complex.

Brilliant point, and much more practical and useful than the law itself.

Summary: the law says "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."

This is obviously closely related to Richard Gabriel's "Worse is Better", and the general philosophy of starting with a simple design, and iterating under the scrutiny of users.

That "inverse proposition" is just the contrapositive: (a => b) <=> (¬b => ¬a).

The inverse proposition would be that if you take a simple system that works and evolve it into a complex system, the complex system will work.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact