“Add little to little and there will be a big pile.”
When we build complex technologies, despite our best efforts and our desire for clean logic, they often end up being far messier than we intend. They often end up kluges: inelegant solutions that work just well enough. And a reason they end up being messy—despite being designed and engineered—is because fundamentally the way they grow and evolve is often more similar to biological systems than we realize.
When we discuss biology and technology, we have a tendency to talk about them as metaphorically similar: the brain as a computer, the evolutionary history of the airplane, even viruses on our machines. This imagery often elides the basic ways in which they are very different, and can lead us along incorrect ways of thinking. The brain is quite different from a laptop in how it works, and when we confuse natural selection with engineering design, we end up imposing teleology where it has no business. Despite this, it turns out that when it comes to viewing these both as complex systems and how they have ended up as kluges, there are some deep similarities.
Fundamentally, when we improve and build on to large technological systems—especially ones that are essential to our infrastructure and can ill afford downtime—it is a lot easier to tinker at the edges of these systems than to start from scratch. When we do this, we end up building the large piles that Ovid bemoaned, with extra pieces that might be obsolete, or not even understandable anymore. We get such artifacts as legacy code, the old components that everything newer is built upon in order to make it function. If you recently submitted your tax returns to the U.S. Internal Revenue Service, you might have used a website, but that is simply a modern door slapped on a dingy old building. Behind this modern interface lie computer software and hardware that are decades old. For example, these systems “process Americans’ tax returns by churning through millions of lines of assembly code written by hand in the early 1960s.” Many records are stored on magnetic tapes and paper returns entered by hand. Supporting the final Space Shuttle mission, in 2011, were “five IBM AP-101s, 25-year-old avionics computers whose technical specifications are exceeded by [2011’s] average smartphone.”
It’s hard to change these technologies that grow slowly and becoming increasingly messy. The people who initially designed them might be long retired, or even dead. Replacing the systems entirely demands a big upfront cost and comes with the risk of unmitigated failure. So we tinker at the edges of these kluges, treading carefully. When messy enough, these systems are sometimes even referred to as crawling horrors, in homage to the unspeakable monsters that haunt H.P. Lovecraft’s stories.
If this sounds vaguely biological, you are onto something. Many of the most important sequences of DNA in a human cell, such as the ones that power how our genetic code is translated or how we use energy, are the same ones that other, far different, organisms—separated by eons of time—also use. Essentially, this is the legacy code of biology. Sometimes these sequences remain unmodified, but often, through evolutionary time, these systems are also tinkered with, and changed.
On the macro scale of an organism, this means that new functions are often layered on top of old ones, leading to such problems as lower back pain: We walk on two feet now, but our skeletal structure initially evolved for more quadrupedal motion. Evolution tinkered with the bodies of our ancestors, giving us a “good-enough” means of walking upright, but one far from perfect, leading to frequent back pain in the planet’s only bipedal primate.
In addition, while there is still a great deal of debate on this matter, scientists argue that there is a lot of extra material in genomes that seems to have accumulated, despite it not having any particular biological function. And just as some software contains features that no one uses and that might even be completely obsolete, there are many cases where biological systems have features where their functions are no longer relevant.
For example, there are trees in my backyard full of giant very dangerous-looking thorns. While I am no plant expert, I am fairly certain that this species of tree is what is known as a honeylocust. So what purpose are these giant honeylocust thorns, other than making me constantly worried that I will inadvertently impale myself upon them? One theory among biologists is that they are there to protect the honeylocust leaves from being eaten by a mammoth, giant groundsloth, or other rugged megafauna of North America. Except, of course, these creatures are long extinct. And that’s not the only obsolete legacy code within the honeylocust’s genome: —its seed pods are also optimized for eating by these same now-extinct megafauna.
Biology, with its long timespans and large amounts of waste—the cutting room floor of evolution, where everything from genetic sequences to whole species can be found—can handle legacy code in different ways than technology. The honeylocust, for example, might eventually lose its thorns.
One theory among biologists is that the thorns are there to protect the leaves from being eaten by a mammoth, giant groundsloth, or other rugged megafauna of North America. Except, of course, these creatures are long extinct.
But in at least one other important way, they are quite similar. Specifically, both types of systems are quite robust to the many stresses they have evolved or been designed for, yet can still be subject to catastrophic failure if something else unexpected is encountered. These systems are “robust, yet fragile,” to use the words of John Doyle, a CalTech engineer who developed a mathematical model to explain the characteristic.
This kind of behavior seems to connect the biological and the technological. For example, humans can adapt incredibly well to a large array of environments, but a tiny change in a person’s genome can give them dwarfism, and two copies of that mutation invariably causes death. In the technological realm, Gmail suffered a partial outage for 18 minutes several years ago, due to a slight error in a routine update of one piece of Google’s software (code that handles how processing is balanced so that no system gets overwhelmed), causing a whole host of servers to be considered unavailable, even though they were fine.
Both biological and technological systems tend to grow in complexity and interconnectivity over time, increasing their klugey-ness. Doyle coauthored a review where he cataloged the many important similarities between these types of systems, from modularity to convergent evolution, in addition to robustness and optimization.
So what does all this mean to us as biological creatures who are deeply enmeshed in our technological systems? At least when it comes to our technology, perhaps we need to be more willing to embrace the cruft (the messy accumulated material that often is part of kluges) we see in the things around us. It’s the first step to thinking of these systems like living things, even if only a bit. Wonderfully messy living things.