
Gall's law - danw
http://en.wikipedia.org/wiki/Gall's_law
======
gruseom
The book that this is taken from is one of my all-time favorites, a quirky
classic that deserves to be better known. Underneath its irreverence are quite
a few profound insights. (I'd quote a couple but I leant out my copy.)

More here: <http://news.ycombinator.com/item?id=182937>

Edit: oh yeah, the book is [http://www.amazon.com/Systems-Bible-Beginners-
Guide-Large/dp...](http://www.amazon.com/Systems-Bible-Beginners-Guide-
Large/dp/0961825170)

------
13ren
_A complex system that works is invariably found to have evolved from a simple
system that worked._

While it's good to grow a system, and I (and many others) practice it and
recommend it, I'm not sure about the _invariably_ part.

I'm sure there are exceptions: like the famous space-shuttle software with
minimal error rates; or the aircraft control software that has been
mechanically verified in some ways (no null-pointer errors I think); or
industrial control systems...

But maybe these even systems did have simpler prototypes, which were then
enhanced in simple steps? I know I make faster progress when I operate like
this. Or perhaps the prototypes were in the form of an algebra (or other
abstraction), which developed from simple to complex in small steps. The final
translation to code is also a simple step, and the final product only appears
to materialize fully-formed.

~~~
SwellJoe
Your examples perhaps don't look far enough back, and assume "system" means
only one specific piece. One could just as easily assume that the "system" in
the case of the space shuttle begins with flight and rocketry and the
transistor and ends with NASA in Houston flinging a few tons of crap, and a
couple of humans, into space and then bringing most of it back down again,
usually intact. The software in question was made up of many pieces, many of
which were proven useful and correct as parts of prior systems, such as the
Apollo rocket guidance systems.

However, if we really take it to that extreme, I guess we'd end up with every
"system" starting with fire and the wheel. So, I think it should perhaps be
"Gall's truism", or "Gall's rule of thumb", though it doesn't have quite the
same ring to it. It isn't quite provable, but can't really be argued against
very effectively, either. And, you know, if you pretend like it's a law, it
probably won't have negative consequences, while convincing yourself it is
false very likely _will_ have negative consequences.

~~~
13ren
I agree it's useful to assume it's true - also, comfortingly reassuring, that,
well, one _has_ to go step by step.

One way to disprove the "law" is to look for instances of "leaps in
complexity" beyond mere evolution. The only example I can think of is the leap
of intuition that geniuses sometimes have, that give an entirely different
view of a problem: e.g. speed of light would appear constant if observers had
different time frames; the molecules could be linked in a ring; water is
displaced by volume.

But the new perspective is itself very simple in each case (assuming the
background) - the leap is in having the insight at all, not in its complexity.
These are not leaps in complexity; and therefore not counter-examples to
"Gall's Law".

------
daltonlp
Systemantics is one of my favorite books. Here's a brief review/overview:

<http://www.daltonlp.com/view/264>

------
ptn
It's pg's recipe all over: spit out a lame version 1, see what turns out to be
wrong, improve, iterate.

~~~
maxwell
I know what you're saying, but I wouldn't use the term "lame." It seems that
Gall's Law is essentially asserting that progressive evolution works, and
spontaneous creation doesn't. Yet evolution also means that most participants,
be they organic or electronic, _fail_ , in the sense that they don't lead to
descendants which carry on their code. Only a tiny fraction of all
organisms/software have living/executing progeny today.

The article says Gall noted: "A simple system may or may not work." I'd add:
"A simple system that works isn't necessarily any good."

