3 ms·
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) pra
by 13ren 18y ago
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 18y agoYour 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 18y agoI 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".