Identifying & releasing unnecessary complexity in next generation infrastructure development
The ability to understand how complexity creeps into infrastructure development processes, enables leaders to identify, anticipate and avoid “solutions” that escalate systemic complexity and thereby increase systemic risk. Systemic risk in infrastructure development has local, regional and global impact that shows up as lack of accountability, skyrocketing costs, political instability, operational fragility, and developmental overshoot. Escalating systemic complexity severely limits our ability to achieve key targets of next generation infrastructure such as sensitivity to regional context and environmental health. Leaders who fall in over their heads fail to attract funding or catalyze political will if they cannot keep up with advancements in technology that fuel the cultural imagination and drive demand toward evermore innovative approaches to infrastructure development. This article examines the root causes of systemic complexity and where and how it can be released to avoid vicious cycles of increasing escalation. We propose a methodological approach that releases systemic complexity in three ways: 1) by refactoring organizational power, 2) by reducing operational path dependencies, and 3) by reformulating mental models to lower levels of abstraction.
Our approach is similar to code refactoring in programming which eliminates unnecessary levels of complexity by examining the underlying logic of the source code in order to remove unwarranted layers of interdependencies, and resolve hidden, dormant or undiscovered vulnerabilities. When applied to organizational or operational contexts, successful refactoring draws on principles such as universal access, transparency, distributed decision making, and open participation. It enables people across multiple domains and scales to make decisions that are responsive to local context and conditions while maintaining alignment with larger and larger strategic wholes. It creates peer networks of cross-functional teams, which are capable of autonomous action in proximate domains, giving a high degree of responsiveness and accountability at the local levels. Cross-functional teams in turn, are linked by operational functionality across the entire network, building both horizontal and vertical depth to the network. In infrastructure development, this means we are refactoring in order to get beyond endlessly building systems within systems within even larger systems, until the “whole system” is too big to know, ownership is progressively monopolized until it is too big to fail, while the system, that is already too big to fix,becomes increasingly vulnerable to local data and fluctuations that are too small to detect.
Releasing complexity is a much different process than reducing complexity. Organizational dynamics are rich and complex, and human relationships are deeply interdependent. Here we are talking about preserving a view of organizations as holistically complex. Think for example of Ptolemy’s system of epicycles employed to explain and predict the relative motions of the planets as observed in the night sky from earth. His system was complex, but Copernicus’ heliocentric view allowed for a simpler, more elegant view. Not only was the new system easier to understand, but it provided us with even more explanatory power. The complexity in the system was released, not reduced.
A useful way to think about complexity
COMPLEXITY = POWER (asymmetry) x PATH (dependencies) x SYSTEM LEVEL (abstraction)
The above equation helps us reduce complexity in our organizations, by reminding us where unwarranted complexity comes from, and how it escalates out of control. The three key drivers of complexity are power, path and system. Leaders can be vigilant about keeping these drivers “clean” — operating at the minimum level of complexity required. This means continuously refactoring, cleaning up, simplifying and minimizing
· power asymmetry between people
· path dependencies in operational frameworks
· level of abstraction needed to describe “the system”
These three factors tend to grow in an ad hoc manner as teams respond to everyday ordinary challenges. In the same way software developers had to learn to release complexity in their code in order to improve outcomes and increase the potential of innovation, next generation infrastructure developers must incorporate the principle of vigilance and continuous refactoring as priorities in their design-develop-decide phases, in order keep ahead of the challenges they face. Over the next series of articles these three are discussed in detail.