“Complex things are not made, they are grown.”
— Christopher Alexander, The Process of Creating Life
Imagine I asked you on one fine weekend to build your own car from scratch.
No premanufactured parts or plans allowed. Just a block of metal, a few simple tools, your knowledge, and your imagination. How do you think your project will turn out?
Even if you're one smart Aleck and your car works, chances are it will be a complete disaster. It’ll be far less efficient and reliable than even the worst car from a commercial manufacturer.
Now imagine building a modern computer, designing the power grid for a city like Mumbai, or building the Burj Khalifa from scratch without relying on anything someone else has already discovered.
Inevitably, you’ll suffer through a series of expensive and demoralizing failures. If you succeed, it’ll take decades.
What's going on? Why can't we start these complex projects from scratch and still succeed in a short span of time?
The reason is that complex systems that survive are built over time, starting from simple systems and then going through small iterations. These small iterations capture a lot of environment-specific information over decades of experimentation; something that a system built over a weekend simply cannot capture.
As John Gall, one of the first major complex systems theorists put it:
“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, beginning with a working simple system.”
Restated in plain English:
You have to start simple and upgrade/evolve the system over time. If you want to build a system that works, the best approach is to build a simple system that meets the environment’s current selection tests first, then improve it over time. Over time, you’ll build a complex system that works.
Why is this true? Because complex systems are full of variables and interdependencies that must be arranged just right in order to function. And uncertainty ensures that you will never be able to anticipate all of these interdependencies and variables in advance.
So, a complex system built from scratch will continually fail in all sorts of unexpected ways.
This is called Gall's Law.
Here's an example many of you will relate to.
How many times has a new over-eager intern pointed out "flaws" or "shortcomings" in the organization without understanding the whole context behind why those flaws exist?
This happens when people don't understand the mix of interdependencies and incentives that exist within a complex organisation. You tend to focus only on the current state of things, not the history of states that got the organisation to where it is right now.
That past has a lot of information encapsulated within it in the form of procedural and tacit knowledge that you're simply ignorant to.
If you start with a highly detailed model/system from the very beginning, you're trying to be precise, but what you will end up being is precisely wrong.
You need to have some cracks in your models to let the light of reality pass through.
Highly detailed philosophical systems tend to be too systematic. But the world itself is less systematic and way more complex than our current understanding and the systems we build based on that understanding. Hence, systems need to be simpler or “weaker” than reality so they can better adapt to the world over time.
Start simple. Instead of trying to write a complex novel with multiple characters, try writing a simple yet engaging one-page dialogue between two people.
Instead of trying to build an Amazon on the blockchain, try solving for one small pain point that no one has solved for yet.
Focus on building a Minimum Lovable Product. Once you have it, you will have more information from the market coming in to help you upgrade your product in meaningful ways.
Things built slowly over time have been subject to environmental selection forces and undergone a variety of challenging contexts.They are more resilient to shocks. And hence, those systems can stand the test of time for much longer.