User Tools

Site Tools


principles:gall_s_law

This is an old revision of the document!


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

* Gall was partially correct. All complex systems developed from simple systems but not simple systems that work.

Complex systems develop from simple systems that “partially work” but needed to be improved upon to fully achieve the goal. By partially work, I mean systems that fail to achieve the desired result but produce a result sufficient to the developer to motivate continued improvement and, by extension, increased complexity. Although slightly tautological, if a simple system “worked”, meaning it completely achieved the desired result, making it more complex would not only be unnecessary but foolish as to do so would require an investment of some resource and create a risk of creating a deleterious effect to the system, as any change carries with it an inherent risk of injecting error into the system and its process. If the system truly works, the question becomes why would you take on the cost and the risk of changing it. To do so would be sub-optimal unless the system had not achieved the goal in full. If Gall believes that “works” means sub-optimal performance, then his “law” can be accepted as true; however, if that is the can “works” should have been replaced with a more specific term. Either way, the law stands as only partially correct.

Having said this, are there systems that maximally worked that were made more complex and, therefore, meet Gall's statement. One would have to believe so but only in the context of an addition. Take a hypothetical example of a business' distribution system. Suppose the system is simple and effective to the point that it meets Gall's meaning of “works”. Now suppose that there is an addition of a new region to cover or a new product line that is added. Keeping the system relatively the same and grafting on these additions will necessarily create a more complex system.

However, equally true is that some systems are implemented at a certain level of complexity and perform the desired function but, then, after the system is put into use for a time, simplifications are found. This happens frequently in businesses that add dissimilar revenue-generating processes. Take the hypothetical example of a law firm that seeks to add a revenue stream by created an associated title company. It is not hard to imagine that the Firm, being conditioned to take extra precautions to avoid malpractice and injury to their law licenses, would set up a fairly complex system based upon their work with other title companies. However, once the new title company starts to function simplifications may be found as the employees of the new company become more familiar with the system and the needs of their work. The cause is that the system was developed by individuals who were not intimately familiar with each and every parameter of the process needed.

As Gall's statement is not true in every occurrence, it cannot be a law. Much of my critique focuses on Gall's use of the word “works” and that may be seen as simply a semantic issue. Unfortunately, it is not just semantic; it has operative effect and creates a dichotomy. Gall's proponent might argue that the meaning is clarified by some other work of his, even in the same work where the “law” is found, and that this somehow “saves” the statement. Unfortunately, this is incorrect. If Gall's meaning is obfuscated by the choice of words in the “law” or if deriving their meaning relies on external sources of information, then his statement fails under the rule of statutory construction that demands that a law be unambiguous. If external sources were required then they must be incorporated by reference and, if they are not, Gall's law drops to Gall's Theorem. Still an admirable achievement but certainly not a law.

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.1634758067.txt.gz · Last modified: 2021-10-20 21:27 by christian