Living systems grow from simple seeds

my highlights:

Simple rules produce complex behavior

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. (Gall’s Law)

Or, as summarized by Andrew Hunt: Simple rules produce complex behavior. Complex rules produce stupid behavior.

From asymmetry emerges specialization. And so, the emergence of predator, prey, pal, parasite, pollinator, niche-creator, producer, consumer, scavenger, decomposer, all tangled together in an ecological Indra’s net

In software, we have a name for this mistake: second system syndrome. Second-system syndrome is the tendency of small, elegant, and successful systems, to be succeeded by over-engineered, bloated systems, due to inflated expectations and overconfidence. You hack together a small simple program to solve a problem. Congratulations! It's wildly successful. Now you have a community, and the limits of your hasty work are beginning to show. Time for a rewrite! You look at the ways the community is using the software, and rationalize it along those axes. The result is

One way to turn living complexity into dead complexity is by rationalizing it. Living systems are evolved systems, and evolved systems are non-rational, nonteological. To rationalize a living system is to force it to fit our telos, to force it to fit our Procrustean rationality. In software, we have a name for this mistake: second system syndrome.Second-system syndrome is the tendency of small, elegant, and successful systems, to be succeeded by over-engineered, bloated systems, due to inflated expectations and overconfidence. You hack together a small simple program to solve a problem.Congratulations! It's wildly successful. Now you have a community, and the limits of your hasty work are beginning to show. Time for a rewrite! You look at the ways the community is using the software, and rationalize it along those axes. The result is a complex system designed from scratch. Second System Syndrome is a kind of Seeing Like a State. Like other forms of systemic rationalization, the risk is in killing the forest by organizing the trees

While second system syndrome may rationalize the code, it often kills the ecology around it by scraping away the invisible relationships

Illegible natural forest vs legible “scientific” forest (Scott, 1998, “Seeing Like a State” pp.16-17) While second system syndrome may rationalize the code, it often kills the ecology around it by scraping away the invisible relationships between users and software that evolved around the first system