Perspectives

Evolution Through a Systems Architect's Eyes

One useful engineering analogy is a production system that can never be globally shut down for a clean rewrite. Every viable change must pass through a functioning…

I approach evolution with an occupational habit: I want to draw boxes and arrows. That habit is useful because architecture forces questions about state, boundaries, interfaces, resources and failure. It is dangerous because natural systems were not designed to respect our diagrams.

Evolution changes populations across generations through heritable variation, differential reproductive success, drift, migration and other processes. Natural selection has no foresight: variants are filtered in actual environments rather than against a future design document.

Where does state live?

Evolution changes populations across generations through heritable variation, differential reproductive success, drift, migration and other processes. Natural selection has no foresight: variants are filtered in actual environments rather than against a future design document.

Software gives us the expectation that important state should have an owner. Natural systems often distribute state across structure, concentrations, relationships and history. A snapshot can therefore tell us less than the process that produced it.

Where are the interfaces?

One useful engineering analogy is a production system that can never be globally shut down for a clean rewrite. Every viable change must pass through a functioning lineage.

Engineered interfaces are declarations. Natural boundaries are often material: membranes, tissues, ecological borders, channels, gradients or social conventions. They can leak, adapt and participate in the behavior they constrain.

What is the failure model?

Software migrations are intentional and judged against chosen goals. Evolution has no roadmap, product owner or universal optimization metric; history constrains which changes are reachable.

Failure analysis is useful because normal operation hides assumptions. A healthy component can coexist with an unhealthy whole. A local optimization can damage the larger system. Robustness at one level can create fragility at another.

History is part of the architecture

Darwin's descent with modification unified observations across species, geography and fossils; genetics later supplied mechanisms of inheritance that Darwin did not know.

In a designed system, legacy structure may be accidental baggage. In an evolved or historically accumulated system, legacy structure can be the reason the current architecture exists at all. The path is not documentation around the system; sometimes it is part of the system.

The zoom test

A good architectural description should survive zooming. Going down a level should reveal mechanisms capable of implementing the higher-level pattern. Going up should reveal regularities that justify discussing the larger entity in its own vocabulary.

Evolution replaces essence with history: what something is partly reflects the path by which it arrived.

What happens to our idea of good design when there is no designer and no greenfield rewrite?

Reading trail

These links are starting points for the scientific and historical ideas. The systems interpretation, analogies and conclusions here are my own.

Quick navigationEsc