2.5. Complexity Engineering¶
We have been talking about complex systems in the context of science, but complexity is also a cause, and effect, of changes in engineering and the design of social systems:
Centralized → decentralized
Centralized systems are conceptually simple and easier to analyze, but decentralized systems can be more robust. For example, in the World Wide Web clients send requests to centralized servers; if the servers are down, the service is unavailable. In peer-to-peer networks, every node is both a client and a server. To take down the service, you have to take down every node.
One-to-many → many-to-many
In many communication systems, broad-cast services are being augmented, and sometimes replaced, by services that allow users to communicate with each other and create, share, and modify content.
Top-down → bottom-up
In social, political and economic systems, many activities that would normally be centrally organized now operate as grassroots movements. Even armies, which are the canonical example of hierarchical structure, are moving toward devolved command and control.
Analysis → computation
In classical engineering, the space of feasible de-signs is limited by our capability for analysis. For example, designing the Eiffel Tower was possible because Gustave Eiffel developed novel analytic techniques, in particular for dealing with wind load. Now tools for computer-aided design and analysis make it possible to build almost anything that can be imagined. Frank Gehry’s Guggenheim Museum Bilbao is a great example.
Isolation → interaction
In classical engineering, the complexity of large systems is managed by isolating components and minimizing interactions. This is still an important engineering principle; nevertheless, the availability of computation makes it increasingly feasible to design systems with complex interactions between components.
Design → search
Engineering is sometimes described as a search for solutions in a landscape of possible designs. Increasingly, the search process can be automated. For example, genetic algorithms explore large design spaces and discover solutions human engineers would not imagine (or possibly even like). The ultimate genetic algorithm, evolution, notoriously generates designs that violate the rules of human engineering.