Optimizing for Complexity in Socio-Technical Systems: Strategies for Future-Proof Design
Samir Bico
Solutions Architect, Data Engineer, Software Engineer ? Cloud | Digitalization | Strategy
Part 2: The Origins of Complexity
Introduction
Because everyone designs, we are all designers, so it is up to all of us to change the world.
~ Don Norman
In the first part of this series, we explored the essence of complexity, delving into what makes socio-technical systems inherently intricate and multifaceted. Now, in this second part, we turn our attention to the origins of complexity. By understanding where and how complexity arises, we can gain deeper insights into the dynamics of socio-technical systems, paving the way for more effective management and optimization strategies.
Where Does System Complexity Originate From?
System complexity originates from a multitude of sources that interact and compound, creating intricate and multifaceted challenges. As technology evolves, systems become more sophisticated, capable, integrating advanced features and functionalities that add layers of complexity. The integration of cutting-edge technologies such as AI, blockchain, and IoT, the combination of different systems, platforms, or technologies, and the interactions with other systems often lead to an escalation in complexity.
As systems grow in size and scope, managing and coordinating numerous components, data flows, and processes becomes inherently complex and increasingly challenging. Distributed systems, variations in user behavior and needs, product personalization, organizational structure and dynamics, external influences, environmental factors, and regulations add further layers of complexity. Factors such as security, privacy, legacy integration, technical debt, adaptability, and even interface design all contribute to this complexity.
It is crucial to pay special attention to the complex interactions among system components. These interactions can lead to emergent behaviors that are challenging to predict and manage. Systems designed to self-organize and adapt may exhibit emergent properties, adding yet another layer of complexity.
Complex Systems Show Alike Building Blocks Yet Diverse Architecture
Biological systems, at their most fundamental level, consist of atoms (chemical elements) that combine to form molecules. These molecules come together to form cells, which group together to form tissues. Tissues combine to form organs, and organs work together in organ systems. Finally, organ systems come together to form an organism. In a typical human system, the levels can be defined approximately as follows:
These numbers are approximate and can vary depending on the definitions and categorizations used. Also, the complexity increases as we move up from atoms to organisms, with each level having a vast array of variations and specializations. Clearly, the diversity is not just in the number of different types but in the complexity of their interactions and the roles they play.
It is fascinating that all living organisms are composed of approximately 20 essential elements. For instance, comparing a human, a highly complex, multicellular organism with specialized systems for digestion, respiration, circulation, and more, to an amoeba, a simple, single-celled organism capable of performing all necessary life functions within one cell, highlights the vast differences in complexity and diversity at various levels of biological organization.
While humans and amoebas use similar elements, the assembly and complexity of these elements in forming living structures differ significantly. The fundamental building blocks (elements) are similar, but the architecture built from these blocks in a human is far more complex and specialized than in an amoeba. Understanding this architecture is crucial for designing future socio-technical systems. Just as biological systems like humans and amoebas are composed of a small number of fundamental elements that combine in complex ways to create vastly different organisms, socio-technical systems are built from basic elements but evolve and emerge into very different and complex forms.
Extending this analogy further, socio-technical systems involve people, technologies, processes, information, infrastructure, environment, and their interactions, leading to complex socio-technical systems. Similar to biological systems, they are composed of basic elements that combine and interact to form more complex structures:
Just as with biological systems, the complexity and diversity of socio-technical systems come from the many ways in which these basic elements can combine and interact, not from the elements themselves. For example, even though all software development teams might consist of similar roles (developers, testers, etc.), the way these teams function can vary greatly depending on factors like the team’s culture, the methodologies they use (like Agile or Waterfall), the personalities of the team members, and the type of product they’re developing. And just as in biological systems, socio-technical systems evolve over time in response to internal and external pressures such as technological advancements, social changes, economic factors, regulatory and policy changes etc. Unlike biological systems with relatively fixed building blocks, elements in socio-technical systems are constantly evolving. New technologies emerge, information changes rapidly, and social norms adapt over time, leading to a wider range of possible outcomes.
Imagine two companies with similar structures (people, technology, information) but different company cultures (rules and norms). One may be hierarchical and focused on efficiency, while the other fosters collaboration and innovation. These differences in culture, despite similar building blocks, lead to different emergent properties - one prioritizes speed, the other creativity.
So, while the basic building blocks of socio-technical systems might be relatively simple and limited in number, the systems themselves can be incredibly complex and diverse due to the virtually limitless ways in which these blocks can combine and interact. This is analogous to how all life on Earth is based on the same basic building blocks (atoms and molecules), yet we see an incredible diversity of life forms. Understanding these basic building blocks and their interactions can provide insights into the design, management, and evolution of socio-technical systems and allow us to design and manage complex systems for desirable outcomes.
领英推荐
For instance, Healthcare, Financial, Transportation, Educational systems are examples of highly complex socio-technical system of systems while mobile phones and self-driving cars can be categorized as socio-technical systems. We can also mention an email system and compared to the previous examples, this is an example of a simple socio-technical system. The "Flower of Complexity" image serves as a reminder and a metaphor for socio-technical systems that evolve from simple beginnings into intricate and multifaceted entities, much like a flower growing from a simple seed into a complex bloom.
Decoding the Interplay of Perceived and Inherent Complexity Factors
Earlier, I used the term “simple” to describe both an “email system” and an “amoeba”. This raises a valid question: Can anything that is built of approximately 20 elements and has the ability to move, ingest food, and reproduce truly be called “simple”?
This leads us to an important consideration when working with complex systems: the need to distinguish between perceived and inherent complexity. Managing complexity effectively requires addressing both types.
Perceived Complexity?is the complexity experienced by users, designers, developers, and other systems when interacting with the system. Effective design strategies can manage perceived complexity, making the system easier to understand, use, and maintain, even if the inherent complexity is high.
Inherent Complexity?refers to the fundamental intricacy built into the system due to its numerous components and interconnections. As systems become more capable and intelligent, inherent complexity often increases because of the need to integrate diverse functionalities, data processing capabilities, and adaptive behaviors.
Increases in total complexity, a combination of perceived and inherent complexity, are often necessary due to enhanced functionality, increased interconnectivity, data handling and processing, and adaptability and autonomy in complex systems. However, through intelligent design, modularity, distributed systems, and advancements in AI, we can manage and abstract this total complexity. This reduces perceived complexity and abstracts inherent complexity in a clever way. The interplay between inherent and perceived complexity determines how effectively these advanced systems can be developed, maintained, and utilized. Achieving a balance between inherent and perceived complexity is crucial for creating advanced, user-friendly, and maintainable systems in the future.
Unveiling the Hidden Dimension of Complexity through Mental Models
So far, I hope I have shed some light on the fascinating topic of the origins of system complexity. It is incredible to see how even simple elements can form extremely complex structures and exhibit unexpected behaviors.
In the next part of this series, I will discuss ways to work with complexity in socio-technical systems. But before we conclude this part, let’s delve into the discussion of how our mental models influence the complexity of systems.
The phrase “Paradigms are the sources of systems” (Donnella Meadows, Leverage Points:? Places to Intervene in? a System) suggests that the fundamental frameworks or sets of beliefs within which we operate are the origins from which systems arise. A paradigm can be thought of as a mental model that shapes how we perceive and interact with the world. It’s the lens through which we understand our environment and make decisions.
Mental models are the cognitive frameworks we use to interpret the world. They shape our beliefs, assumptions, and expectations. These models influence our behavior, decisions, and problem-solving approaches. Our mental models influence our interpretation of events around us, and it’s equally important to recognize that the same events can indeed impact our mental models. Events play a dynamic role in shaping and adjusting our mental models. They provide the raw material for our cognitive frameworks, and our interpretations of events contribute to the ongoing evolution of our mental models. A mental model is indeed a highly complex adaptive system, and feedback loops in these systems are one of the critical elements of these systems.
In the realm of mental models, it’s crucial to be aware of Confirmation Bias, which can limit our perspective, and to remain open to Disconfirming Events that challenge our existing beliefs. We should also understand that Cognitive Dissonance is a natural part of the learning process when our models are confronted with new information.
Furthermore, our mental models evolve and adapt over time, primarily through Learning from Experience and Social Learning. In this transformative process, questions serve as our principal tool. They guide us to conclusions and shape our thought processes. The art of asking the right questions becomes crucial when we are (re)architecting complex socio-technical systems.
Keep in mind that our mental models also add to the complexity of the socio-technical systems we work with. On the conceptual map above, I tried to represent my view of Mental Models. What is missing on this graph? A simple answer is a lot. My goal was to illustrate that “everything is connected”. When analyzing complex systems, the pivotal question to ask is “what can we ignore?”. This allows us to obtain an approximately correct picture of reality, rather than asking “what do we need?” merely to satisfy our mental model predictions.
Being ignorant about complexity means risking unforeseen consequences, failing to appreciate the delicate balance of interdependent factors that underpin our systems, and missing opportunities to innovate and adapt in a rapidly changing environment. Being ignorant about complexity means overlooking the intricate interconnections that shape our world, leading us to simplistic solutions that, instead of solving problems, often exacerbate them. It’s like trying to navigate a labyrinth with a map of a straight road. Without understanding the complexity, we risk becoming lost in the maze of modern challenges, from climate change to technological disruption.
Complexity deserves our attention, and we need to find new methods and tools to understand and embrace it – something for the next time.
...
Computational Biologist
4 周I find your emphasis on context-specific factors that drive system dynamics rather appealing. It's something that I need to learn more about and plan to read all four of your articles here. Not sure if it is readily accessible in my context but this mild hesitancy could very easily reflect my ignorance. The rest of your response I'm pretty much in agreement with. So even though it appears we're taking different approaches (you a systems engineering(?); me a statistics/philosophical) it feels like we're dealing with and talking about the same issue here. Which is kind of reassuring since I often feel like I'm wandering in the wilderness alone here. When I raise the question, 'What about complexity?' I rarely hear a response. So thank you for your effort in writing these articles and providing me some solace that I'm not the only one that finds the question of complexity, a question worth raising.
Computational Biologist
1 个月To me complexity is the 800 lbs gorilla in the room that no one wants to even acknowledge its existence. I have approached it in the context of complex (ie common) disease and especially cancer. This domain contains a number of features that appear refractory to scientific modeling: no apparent necessary condition, resistant to reproducibility, determination by particulars which appear to supersede generalizations, etc, etc. With our current scientific tools (including ontological and epistemological commitments) complexity appears as something tangible but ineffable in our scientific vocabulary. Seems to me what we really need are new metaphors that allows us to adapt and extend our current vocabulary to the unique challenges of complexity. One I have found useful is 'Contending with complexity is about coping not copying.' which brings pragmatism and hermeneutics into the discussion. What are your thoughts on the need to extend past contemporary scientific thinking in order to adequately address complexity?