Systems Design
Key Principles
Overview
This guide presents an overview of the key principles of systems design. The
guide should help you gain a basic understanding of key concepts in systems
thinking and complexity theory and how these can be applied in the design
of complex systems of all kind.
What are Design Principles?
Design principles are the foundational concepts that guide
our design choices. As design is such a broad and all-
encompassing activity we cannot specify all the types of
challenges and questions that we may be presented with,
what we can do though is create a set of general principles
that will guide us in our design decisions.
These principles should derive from the nature of the
systems we are designing; they should be aligned with what
we consider as good outcomes. Complex systems are
fundamentally different from simpler systems thus just as
we have a whole new area of science-based upon new
principles to understand them, likewise, design requires a
new set of design principles that are aligned with these
basic characteristics and dynamics of complex systems.
Why New Design Principles?
Due to the advent of information technology and connectivity
across domains the systems we are called to design today are
becoming ever more complex. There is now a new requirement
being placed on designers to design complex systems, whether
this is a smart city, a sustainable food system, an Internet of
Things platform, or an integrated healthcare service. The
existing design language we inherit is largely focused on
“things" - industrial design & product design - or on the user-
service design and design thinking - yet none are well
equipped to deal with highly complex systems.
We now find our selfs having to increasingly design for
“ecosystems” of things and agents that are interacting in a
networked fashion, adapting and evolving; what we call
complex adaptive systems. Designing such complex adaptive
systems requires a holistic approach to design that goes far
beyond just things and end-users but takes a holistic
perspec<ve to deal beJer with whole networks of interacting
elements that evolve.
Simple Systems Complex Systems
Fewer Parts Many Parts
Low interdependence Highly interdependent
Relatively separate Highly interconnected
Relatively static Adaptive and
Evolutionary
Characteristics of Complex Systems
Open Systems Self-Organizing
System's boundary is not Parts are not static and inert but may
clearly defined but open. adapt and self-organize
Networked
Emergence The system is more like a network
New Patterns and dynamics rather than a set of things
emerge on different levels
Adaptive Multidimensional
Parts have a high degree of autonomy, System is composed of diverse
adaptive capacity and evolve. subsystems and multifunctional
Examples of Complex Systems
Smart Cities Organizations Internet of Things
Urban Enterprise Software
Design Design Engineering
Supply Chains Information System Transport System
Supply Chain Design Information systems Systems Engineering
Design
Decentralized
Holistic Does not concentrate inwards and
We want a design approach that is create dependency on centralized
holistic in considering all relevant nodes but pushes outward engaging
factors rather than partial. the end-user in the creation of the
solution.
Systems Design
Evolving
Requirements Design that works with the full
Open systems lifecycle to create systems
We want to develop systems that are that are circular, regenerative and
open involving the contribution of the evolutionary rather than linear and
many rather than closed to only the degenerative.
few
Integrated
We need systems that are connected,
accessible and integrated rather than
siloed due to borders and boundaries.
A Holistic
Approach
Overview
The systems approach is a holistic one, this means we seek to understand something
primarily in the context of the whole that it is part of. Before we go about changing
parts we seek to gain an understanding of the overall context in which the parts
exist and how they are interrelated in affecting each other and the whole system.
Systems design likewise should start with a holistic consideration of the system we
are interested in designing.
Holistic Design
Wholistic Integration Patterns Multidimensional
Starts with some Rather than dividing up it is Dealing with patterns Does not try to reduce
understanding of how the about putting components rather than focusing on down to one level but
parts interrelate to form to gather to form larger the concrete parts of the deals with all dimensions
the whole integrated systems system to the system.
Holistic Approach
Systems thinking is holistic, meaning we are always looking at
something in relation to the whole that it forms part of.
Systems design starts with a crude look at the whole. We do
this by asking, what is the whole that the part I am dealing with
forms part of; reasoning upwards until we get to the broadest
frame of reference and then looking for that vantage point so
as to see the many factors involved.
We start by trying to gain an understanding of the different
dimensions to the whole system and the qualitatively different
factors involved. For example, a city involves social, economic,
technological, and environmental considerations. Each of these
dimensions has its own different internal logic and workings;
we do not try to reduce everything to one level.
Integrated Approach
Our current reductionist approach to design and
engineering works by dividing a complex problem up
into small sub-problems, solving for them, and then
recomposing the sub-units into the whole through a
hierarchical master plan. The result of this is the
formation of specialized silos, boundaries, lack of
horizontal information flows that create a fundamentally
disintegrated system.
The systems paradigm looks at the world in terms of
relationships and integration. Systems are integrated wholes
whose properties cannot be reduced to those of smaller
units. Instead of concentrating on basic building blocks or
modules, the systems approach emphasizes the principles of
organization; how the components are integrated into whole
patterns of organization. To get systems that work for all,
they need to be integrated and connected horizontally rather
than decomposed and recomposed vertically within a
hierarchical master plan.
Pattern Based Approach
Systems are abstract patterns of connections between things,
thus in designing systems, we are interested in how the
components are integrated into whole patterns of
organization.
To be good systems designers we have to be able to work with
abstract patterns rather than focusing on the details of parts.
The use of abstraction involves removing successive layers of
detail from a representation in order to capture only the
essential features that are generic to all entities of that kind and
independent of their specific form.
Pattern formation refers to the process whereby a coherent set
of correlations between elements is formed and persists over
time. As systems designers, we are interested primarily in the
overall pattern in the system, the formation, integration, or
disintegration of that pattern.
Multi-Functional
Whereas reductionism reduces downwards - optimizing systems by
reducing them to a single dimension or single function - a wholistic
approach works by trying to increase the degrees or dimensions of
functionality of a system. Most things we design today we design to
optimize a single function and output, thinking that through
reduction we can improve output volume and efficiency. However,
this logic only holds when taking a partial view of the system, when
we take a holistic view we see that by elements functioning along
multiple processes and dimensions the whole system's functionality
is improved.
For example, we can think of monocultural agriculture, this looks highly
efficient when considering just-food output, but when we step back
and start to factor in all relevant environmental and social factors it
does not look as effective. In this context, a more sustainable form of
polyculture that is working to maintain different ecological and
nutritional functions as well as just delivering basic food looks optimal.
System design is about optimizing for the whole, not just the parts and
this often means having to consider and work with multiple functions
and processes at the same time.
Open
Systems
Overview
Complex systems are fundamentally open systems. The Internet, a city, or social networks are all
open in that anyone can join or leave and their boundary is permeable. This characteristic of
complex systems changes fundamentally how we should go about designing for them as without
boundary conditions we do not have the same kind of control that we may have when designing
simpler systems. Without the capacity to directly impose order on the system we have to work with
processes of self-organization and emergence. Most of all this loss of control and being able to
impose order on the system requires that as designers we learn to work with context.
Open Systems
Unbounded Context Self-Organization Emergent
Complex systems are Systems design involves Understanding the dynamics Rather than imposing it, we
like networks without learning to see and work and working with processes work to enable the
any fixed boundary with context of self-organization emergence of order.
Open Systems
Complex engineered systems are open systems, meaning that they
have such a high level of interaction with their environment, that
their boundary is not well defined. Added to this, they are
composed of very many elements. We may be talking millions,
billions, or even too many components for us to be able to quantify
in any meaningful way, for example, devices connected to the
internet. It may, likewise, be very difficult to say which of these
components is part of the system and which are not.
For example, a city may span large geographical areas as different
urban centers morph into each other. We may draw lines on a map
to define jurisdictions, but from a design perspective, they are
largely arbitrary. Added to this, components are leaving and
joining, coupling, and decoupling from the system in a dynamic
fashion.
Changing the paradigm to one where we are designing for open
systems instead of well-bound closed systems has a number of
major implications, for example having to give up the idea of
control, predictability, and designing for perfect order.
Designing For Context
Complex systems do not have linear material causality,
thus we cannot say, if I do this I will get that result.
Complexity theory effectively a priori invalidates any
method that says it can produce a defined result. This
changes the game, requiring us to rethink the basics of
what we mean by design and engineering.
To work with complex systems is to have to shift our
approach up from working with parts to deal with
context. Designing for context is not something we are
used to but something that needs to be learned. When
the system is open we do not have the privilege of
control but instead only get to influence the system, we
influence it by changing the context.
Designing For Self-Organization
Self-organization is the spontaneous creation of a globally
coherent pattern out of local interactions between initially
independent components. Think about people crossing the street.
There is no one orchestrating the process, but through the local
interactions between people they become differentiated out into
a distinct pattern with the formation of coordinated streams of
people going in each direction.
Without formal design and centralized coordination, components
interact in a nonlinear-networked fashion. The type of organization
and patterns that result from this are defined by the type of
interactions between the components and incentives they
experience - not the design pattern that was imposed on the
system.
With systems design, we aim for global coordination through the
process of self-organization that requires an initial state of lack of
control, adaptive components, dense interactions as an enabling
context, and incentives towards certain attractor states from which
order emerges.
Designing For Emergence
Without top-down control being imposed by the designer
what we aim for is order in the system to emerge. Complex
systems are more like living systems, they typically have lots of
adaptive actors that are following their own agenda, like
people in an organization, cars in a transport system or
producers in a supply chain. We do not try to impose order
we instead try to create the conditions that are right for it to
emerge out of the actions of the agents in the system
themselves.
The fact that the future emerges is a key source of the
fundamental uncertainty within complex systems. If we take
something like the Internet, we do not know what future
technologies will be built on the network nor how those
technologies will combine to form new possibilities. In this
world of complexity, the future is not just unknown. It may well
be unknowable, and this fundamental uncertainty changes our
whole approach to the future. Needless to say, as the future is
uncertain we need to design systems in a way that is open to
the emergence of different outcomes.
Relational
Approach
Networked
Approach
At a low level of connectivity what defines an entity is simply its set of elements, but as the degree
of connectivity is turned up it is the connections between the parts that comes to define the whole
organization as a system. At a low level of connectivity and integration, the system’s parts define
the relations and the whole, but given an integrated system with a dense network of connections,
this is inverted as the parts come to be shaped by the connections and the whole. At this stage of
complexity we have to switch to a relational design paradigm to start to look at and design
networks of connections.
Relations
Protocols Synergies Nonlinear Circular
With systems design We are looking for We work with We design for circular
we design for the local how parts interact in a feedback loops and systems, converting straight
rules or protocols of constructive or destructive nonlinear processes of lines into loops.
interaction. fashion change
Protocol Design
Systems are what emerge out of the network of connections between
parts, to design systems we need to design for connection.
Connections are governed by the rules of interaction, two things can
only interact successfully if there are some rules to govern the
interaction; these rules we call protocols. One way to approach the
design of a system is to ask, what are the rules of connectivity and
how do those rules lead to the outcome seen on the macro-level. By
defining the protocols we can define better what interactions happen
and what outcomes emerge.
In defining the language of communications we can define how the
interaction takes place what gets said, done, or not done. One good
example of the power of protocol design is the World Wide Web, by
simply defining the HTTP protocol that enables a set of computers to
communicate with each other we have now the emergence of this
incredible system we call the Web. Tim Berners-Lee did not create all
that the Web is today, it was created through a user-generated, self-
organizing process, he just created the rules and protocols that
enabled the interaction required for that process to take hold.
Synergies
A synergy can be defined as the interaction or cooperation of
two or more elements to produce a combined effect greater
or less, than the sum of their separate effects. It is the
creation of a whole that is different from the simple sum of its
parts. A synergistic design approach is one that is focused on
the interaction between the parts within the organization to
identify and develop synergies.
With systems design we are trying to minimize the negative
synergies and maximize the positive synergies. For example
noise pollution is a form of negative synergy where the systems
interact in a destructive fashion. Many of our systems are design
with only limited consideration of synergies, the result are
systems that generate waste and other forms of pollutants.
Pollutants are not "things" but simply the product of something
that is in the wrong context creating destructive interactions, i.e.
a negative synergy. When we design for connections and
synergies we aim to put things together that work together and
reduce the negative synergies.
Nonlinearity
Designing complex systems involves a high awareness of nonlinearity,
that the outcomes to many systems is not a produce of some linear
cause and effect relation but instead a function of many things
interacting in a networked fashion. Processes do not just take place
from start to finish independently along one process, instead many
different processes and functions are taking place within a parallel
architecture, they interact across and between processes and domains
in a network fashion.
The components in the system are not just interacting across domains
but also across scales. Complex engineered systems are what are
called systems of systems. They have a multilayered hierarchical
structure, as elements form part of subsystems, which form part of
larger systems, which in turn form part of the whole system of systems.
A metro area is a composite of many overlapping parallel
infrastructure systems from transportation and water supply to the
electrical power grid and the telecommunication networks. To design
for context is to consider the many different systems and relations and
how they may interact in nonlinear synergistic ways to give rise to the
emergent outcomes.
Design For Circular
Systems design requires designing for feedback, looking at how
processes are connected in a circular design pattern. Much of
our current approach to design focuses on the optimization of
parts within silos without due consideration to flows within the
whole system. The result is a linear process of inputting
resources from the environment and outputting waste back to
the environment.
Designing for circularity cannot happen in a world of silos and
borders but requires first designing for connectivity and networks
then looking at those networks and asking how things can be
connected into loops. To design for circularity is closely
connected to a services mentality, where instead of consuming
more things, we ask how can we create a circular system that is
delivering the service without necessarily resulting in linear flows
that are consumptive and create waste.
Decentralized
Networks
Network Design
As we go from a system with a relatively low level of connectivity to one with a very high level of
connectivity, the make-up and behavior of the system change fundamentally. In relatively isolated systems,
our focus is on the components and their properties. Due to the high cost of interaction the system is
typically bound into a centralized monolithic configuration to reduce the organization’s overall cost of
transactions. But when we reduce the cost of interaction - as IT and other innovations have done - then
connectivity increases and the system can become unbundled from this centralized configuration allowing
for components to become distributed out and re-coordinated through a network.
Networks
Decentralized Modularity User-Generated Services
Without centralized High levels of modularity Design to engage and harness Think in terms of services
coordination complex systems can be seen in all complex the productive capacity of the and service networks.
take the form of decentralized systems. many.
networks.
Think Decentralization
Decentralized networks are without centralized nodes.
Responsibility, control, and resources lie on the local level and
are dispersed amongst a large percentage of the nodes.
Examples of this include peer-to-peer file sharing, sustainable
agriculture systems, car-sharing services, and direct democracy.
Decentralized networks typically require greater user engagement
as they cannot depend on centralized batch processing. The nodes
in the network are often more self- sufficient and less specialized and
thus it is easier to interchange and replace any node with any other,
making them less susceptible to attack and more robust to failure.
Decentralization can reduce inequalities, increase inclusivity, and
harness the capacities of more people along more dimensions. They
also have fewer dependencies and are typically more sustainable in
the long run. However, decentralization creates increased
complexity and decreases direct control.
Design For Modularity
When designing a system, one of our key architectural considerations
will be to decide whether we are building a homogeneous system or a
modular system. Modular design is a design pattern that is built
around the idea of autonomous modules that can be independently
created, easily configured, and reconfigured into different systems.
Examples of this might include an electronic circuit board made out of
autonomous electric units or a house made out of prefabricated
modules that plug together. Modularity is a key feature of complex
engineered systems with the Internet being a paradigm of modular
architecture.
The advantages of modular design include: they can enable distributed
collaboration and problem-solving; modules can be endlessly re-used,
like Lego bricks, we can combine and recombine them, making it more
likely to be a circular sustainable solution; modular systems are much
more versatile, adaptive and can be customized more easily; modular
design can be a very important contagion mechanism and should also
be much easier to manage over the maintain the life-cycle of the
system as components can be easily swapped in and out.
User Engagement
At all stages in the formation of our design we should be
thinking about user engagement and how to enable end-
users to be productive in creating their own solutions.
Design should be about empowering people, not
constraining, with the advent of digital technologies, we
have the possibility to really empower and engage
people in the creation of the world they want to live in
rather than impose our solution on them.
This requires first thinking how do we push productive
capacity out works to the end-user; putting the means of
production in their hands and then build a network to enable
the coordination of production and exchange between peers.
This may be a digital media platform to produce and
exchange media, transport with car-sharing, or manufacturing
with distributed fabrication.
Design for Service Network
As connectivity proliferates we move more and more away from
stand-alone systems and into the world of service networks, the
job of the system designer is to understand and work with
these dynamic networks, their structure, and how that results in
their overall functionality. In this context systems design is
focused on the design of networks that integrate diverse and
autonomous - often user-generated - modules to deliver an
integrated service.
This requires the development of platforms with protocols that
can integrate diverse components within a shared infrastructure
of connectivity and data while enabling the components to
retain their autonomy through loose coupling. This is best
exemplified by the design pattern of Service Orientated
Architecture which is an approach to distributed systems
architecture that employs loosely coupled services,
standardized interfaces, and protocols to deliver seamless
cross-platform integration.
Live Cycle
Design
Overview
Within our traditional design paradigm, technologies are designed to operate at some kind of
normal static equilibrium within a well-known and predefined environment. Their life-cycle is a
linear one, the system is created, put into its operating environment where it is designed to
function within some normal set of parameters, at a stable and static equilibrium. It is, most
importantly, designed to resist change and to maintain operations within these parameters for
as long as possible, before being disposed of; subject to a linear decaying life-cycle. Complex
systems are fundamentally dynamic, adaptive, and evolving systems. The net result of this is
that the system can change and is not determined to follow a linear life-cycle from cradle to
grave. It can learn, grow, and adapt in response to internal and external conditions in order to
renew itself. If we want regenerative, resilient, and sustainable systems we have to design for
systems to evolve over time.
Evolving
Regenerative Diversity Adaptive Resiliency
By working with evolutionary Diversity is a key part of Design for responsive Consider systems resilience
processes we aim to design evolution and we have to systems that are flexible in all our design choices.
regenerative systems design for its inclusion through adaptive capacity
Regenerative Systems
There are two different models to the design of a system’s life-
cycle. At one end of the spectrum, we have our traditional
linear systems that will likely be easier and quicker to design,
requiring less of an investment and often operating more
efficiently in the short-run. However, these systems will be
subject to a linear decaying life-cycle as they try to externalize
change. At the other end of the spectrum, we have
evolutionary systems that internalize change, harnessing the
mechanism of evolution to maintain a sustainable, cyclical life-
cycle for an indefinite period of time.
To create regenerative systems requires designing for the
evolutionary process that makes it happen. Systems sustain
themselves through constant and simultaneous processes of decay
and regrowth, we have to understand this and figure out how to
design this whole cycle into the system. Evolution is not a mystery
but a process that involves the production of variety, selection, and
duplication. By understanding this process and designing it into the
systems we build we can create regenerative processes.
Design for Diversity
In the design of these complex systems, the huge heterogeneity
and diversity of components is a key challenge. We may be
dealing with widely disparate and qualitatively different socio-
technical components. Instead of working against it by trying to
dumb down the variation within the system, we can harness it to
create multi-level systems by designing synergistic relations.
To create synergies, there needs to be some diversity in the
system; processes taking place on different, parallel levels. In this
way, different components in the system process different
resources, and it may be possible to connect what is waste for one
component to what is an input resource for another, using the
resources available in cascading systems, the waste of one process
becomes the input for another.
Of course, ecosystems are classical examples of this, and being
able to model and develop these synergistic cycles both on the
micro-level and on the macro level within our industrial systems is
key to achieving sustainability.
Adaptive Systems
Adaptation is the capacity of a system to alter its state in
response to some event within its environment. We are
increasingly using what we call cyber-physical systems to
enable all kinds of technology to have this adaptive
functionality. Now when we are designing these adaptive
systems, we can no longer rigidly control the system and
determine its functionality in the way we can when designing a
bridge, as the end result is going to be more organic, like an
ecosystem of products, devices, and people interacting and
adapting within networks rather than the rigid mechanical
systems we are used to.
To design sustainable systems is to design systems that build
change and evolution into their structure. Adaptive capacity
should be a key consideration in our designs, are we building
something that is able to adapt to a wide set of eventualities
and circumstances or is it static and only able to deal with a
limited spectrum of eventualities?
Resilience
Resilience is the capacity for a system to maintain or return
to functionality despite the occurrence of some internal or
external alteration to the system. A system's resilience is
dependent upon a number of factors; external factors such
as its dependency upon its environment, and internal factors
such as its network structure, its overall degree of
connectivity, and its dependency upon centralized hubs or
critical bridging links.
In every system, we design we should be considering
resilience in our design choices. We need to ask about the
cost or benefits to the overall system's resilience that accrues
from the choices we make in our design and factor this in. For
example, we may find that reducing diversity in the system
improves performance along some metric but we also need to
ask at what cost does the reduction in diversity come at to the
overall resilience of the system.
Conclusion
Version 1.0
A Systems Innovation Publication
www.systemsinnovation.network
info@systemsinnovation.network