Evolution's Design Pattern
There’s something interesting and beautiful about evolution that is often overlooked: it works through emergence. No central planning, no intelligent design, just countless micro-interactions creating macro-level optimization that appears almost deliberately crafted.
the diversity problem
Think about what human society needs to function. We need visionaries and executors, leaders and followers, risk-takers and conservatives. We need people who can focus intensely on details and others who can see the big picture. Too many of any one type would create dysfunction.
The fascinating thing is that evolution somehow “solves” this distribution problem without any central coordination. It’s not optimizing for a single trait like raw intelligence or physical strength. Instead, it maintains a delicate balance of cognitive styles, personalities, and capabilities across the population.
One would think that evolution would be more greedy–once it figured out smart people lived longer (or any other trait) it would over index on that trait at the detriment of society.
how this works
I believe this property emerged through “frequency-dependent selection”. When certain traits become too common in a population, they often become less advantageous. If everyone was Steve Jobs, who would be Woz?
This creates natural balancing pressures. As soon as any trait becomes too prevalent, it becomes less valuable to the group, which then favors the development of complementary traits. It’s like an invisible hand guiding the distribution of human characteristics toward an optimal mix.
bottom up design
What makes this particularly interesting is that it all emerges from simple, local interactions:
- Individual survival decisions
- Mate selection choices
- Small genetic variations
- Environmental pressures
None of these individual components “knows” about the larger pattern they’re creating. No single gene or trait is responsible for maintaining this balance. Yet somehow, over time, these micro-level interactions produce an incredibly sophisticated macro-level optimization. It reminds me of simple cellular automata forming beautiful patterns from simple rules–perhaps this can color your interpretation of the naming of Conway’s Game of Life.
social brain hypothesis
There’s a theory that human intelligence evolved primarily for social purposes, that we are closer to a collective intelligence, like a beehive. It just so happens this collective intelligence works best through social disconnect–it’s biased towards individuals believing[1] they have agency, free will. Disagreement is the engine of scientific progress. How can we distinguish between two truths if neither proponent is willing to fervently defend their post?
elegance/simplicity and design
You can think of evolution like a “greedy algorithm”[2], where locally optimal steps lead to global extrema. It scales from such simple rules on such simple scales (microorganisms) to humanity. I am interested in the idea of simple invariants leading to emergent complexity.
I think that if you are designing something to be used, you should aim for simplicity in the invariants while allowing for complexity to emerge. Both in software and generally. Consider legos, the bricks basically do one thing and that’s stick together, yet you can build literally whatever you want. The Unix pipe (|) works the same way–it does just one thing: connect the output of one program to the input of another. When paired with small focused tools like grep
, sort
, and wc
, you can build nearly any text processing pipeline imaginable.
Even something like the iPhone, the main innovation was its radical simplicity. Just a screen and a few buttons, that’s what attracted people to it. This is very hard to do and also what drives users to like your product, simple tools to tackle a complex problem space. If it is simpler and easier to use it is better and more people will be drawn to it.
This is also something to keep in mind when talking to users–when they suggest features they often want to add complexity to solve their specific problem. Scaled up to many users, your application has become too complex for any of them. Your genius, the reason you are the founder/builder/creator is because you need to be creative enough to solve their problem without added complexity. Incumbents, due to their large nature, are good at adding complexity to solve specific problems but can’t reimagine their solution entirely, that is your advantage.
[1] Believing you have free will and having free will are the same thing to me. I don’t want to get too philosophical but I generally think about free will, the idea we have “agency” to be more of a manufactured feeling than something ontologically essential.
[2] It is not, in practice, a greedy algorithm but i find the comparison apt.