> 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. – John Gall
While this sounds more like a strong tendency than a law it sure rings true for my programming career. I've built complex systems from scratch, but they all started from the universe of discourse of an existing business model. When writing such systems I've learned to always start from a dead simple version of it. (I called one such system "Moe" to purposely keep it stupid simple) And then increment it.
If the creationists are correct, and God did indeed cook up Adam from scratch, that would be more evidence of the exceptional power of God. What we do know about actual evolution seems to support Gall's Law.
>What we do know about actual evolution seems to support Gall's Law.
But human design is not evolution. That Gall's law, which is a form of incrementalism, rings true for a system without a designer appears to be almost true by definition, but it is far from obvious for human design.
We have many examples of human architecture that went from "0 to 1". The von Neumann architecture. The first spaceships, new breakthrough theories in mathematics or physics. While you can debate whether those systems were built literally from scratch or not, they sure made qualitative jumps not comparable to evolution.
And also I would point out that there is a strong survivorship bias in Gall's law. All sustainable complex systems built up incrementally that are still around are by definition an example of success. But we don't actively see the resource cost of incrementalist dead-ends, or the limitations. ("You don't get to the moon by climbing up trees"), whereas every failure in ambitious design is actively debated, or even derided.
> And also I would point out that there is a strong survivorship bias in Gall's law. All sustainable complex systems built up incrementally that are still around are by definition an example of success. But we don't actively see the resource cost of incrementalist dead-ends, or the limitations.
I don't see this as a problem. As expressed, Gall's Law describes necessary conditions for success, not sufficient conditions. Not all evolutions of simple systems will work, but according to the law not starting with a simple system will always result in failure.
There's still undoubtedly plenty to criticize, and I'm sure there's a law somewhere saying that all simple laws are wrong, but this law does express a coherent logical proposition.
How do you get that? There was decades of prior experience both in computer science theory as well as practice, especially from the code breakers in WW2.
An example from 1945 and also from von Neumann is Mergesort, the first O(n logn) sorting algorithm, and still in use to this day. Von Neumann was known for inventing things from absolute scratch.
The fascinating and sometimes exasperating thing about software development is that there are no absolutes. You can find exceptions to any “rule” you care to name.
That said, I’ve found that in the vast majority of cases you’re better off starting with a simple prototype and iteratively adding new features and refactoring than you are trying to build a complex system from scratch.
This made me think of your point, too: "what we do know about actual evolution seems to support Gall's Law."
But I do wonder if this world is one big 'system'? Or is it something else? I am curious if we are limited by our languages in thinking only of 'system'. Do we need to figure out something else (e.g., via science tools and stronger languages) to a get a 'deep' sense of reality? And by this, I draw on 'linguistic relativity'.
Given that systems can contain other systems as it is, I don't see what this concept adds that people who work with complex systems (for example climate modelling) wouldn't be dealing with anyway?
It's just an abstraction. Climate scientists know how to deal with their climate system, but they may not be equipped to then relate their data back to a military defense system or water treatment plant. SoS allows a different team to take a set of not-quite-related systems and analyze their interactions, similar to how a climate scientist might analyze climate models.
This is interesting, especially with the points on "Establishment of an effective frame of reference" and "Crafting of a unifying lexicon", thank you. I still wonder if we're limited by our languages and need to consider constructs other than 'system'?
I'll check this out, thanks, this gets to the granularity, though I still wonder if our languages, to date, are primitive, and blocking us off from thinking of categories different from 'system'?
"sys·tem
noun
1.a set of things working together as parts of a mechanism or an interconnecting network.
"the state railroad system"
2. a set of principles or procedures according to which something is done; an organized scheme or method."
This is the mildy condensed version from wikipedia regarding the definition of system. I know that we classify a lot of things in the world as systems, for example: ecosystems.
It seems to me you are considering that maybe the world doesn't operate from a higher point of view as a "system", or that system is not the correct terminology? I think our definition of system might cover for what the world as we know very well. All the little parts of the world have a purpose. The ants, when they come out of the eggs have an internal rule set it seems. They know what it is they "do". They go right to it and that is all that they do the rest of their existance. Building their nests, protecting their nests, the queen and her role. I suppose the same can be said about most of nature. Its a lot to think about, as the diversity of it is amazing, but it is also fun to observe and ponder.
Exactly, I think you hit at it when you write: "it seems to me you are considering that maybe the world doesn't operate from a higher point of view as a "system", or that system is not the correct terminology?"
Plus, you give a useful example with the species of ants; for them, their humble interactions are relative to their existence. In contrast, for us, maybe the 'system' is the term we're bounded by relative to our existence. It may be the best frame of reference we can grasp. It could be our edge and we can't go further.
If that's the case, I wonder if evolution needs to advance further to get at some sharper-level species. Compared to a human, might a sharper-level species perceive the world operating at a higher point of view other than a 'system'? And I wonder how their languages might operate?
Most definitely primitive. Which is why we need math, musical notation, sign language, programming languages etc etc. They all get created to overcome limitations of spoken language. And they all have their own advantages and disadvantages. And they are all constantly evolving.
Here's a psychologist Wendall Johnson's view explaining why people misunderstand things easily - “Our language is an imperfect instrument created by ancient and ignorant men. It is an animistic language that invites us to talk about stability and constants, about similarities and normal and kinds, about magical transformations, quick cures, simple problems, and final solutions. Yet the world we try to symbolize with this language is a world of process, change, differences, dimensions, functions, relationships, growths, interactions, developing, learning, coping, complexity. And the mismatch of our ever-changing world and our relatively static language forms is part of our problem.”
I agree, the interaction of languages helps us appreciate the world. And that's a useful quote from Wendell Johnson. It reminds me of Wittgenstein's words, "The limits of my language mean the limits of my world".
>What we do know about actual evolution seems to support Gall's Law.
That's because evolution takes place with very small changes in genome. It is an undirected process. Sexual reproduction makes evolution better for certain fitness landscapes since you can basically jump somewhere between two points on a landscape when you have two organisms sexually reproduce, but it is still undirected. This doesn't necessarily show that conscious long term planning is ineffective.
While this sounds more like a strong tendency than a law it sure rings true for my programming career. I've built complex systems from scratch, but they all started from the universe of discourse of an existing business model. When writing such systems I've learned to always start from a dead simple version of it. (I called one such system "Moe" to purposely keep it stupid simple) And then increment it.
If the creationists are correct, and God did indeed cook up Adam from scratch, that would be more evidence of the exceptional power of God. What we do know about actual evolution seems to support Gall's Law.