IT System Architecture Complexity

System architecture are like Networks in which elements are nodes and edges.  Systems evolve over time and patterns represent the underlying system.  System can be simple, complicated, complex, or chaos - System can be in order or un-order domain.  Understanding the domain in which system lies determines the way to manage it.  A common implementation of the theory of understanding the system complexity and managing it is - Microservices architecture is complex and event-sourcing is a way to manage it.

“A system is a set of elements or parts that is coherently organised and interconnected in a pattern or structure that produces a characteristic set of behaviours, often classified as its function or purpose” (Meadows, 2008)

Some systems are natural such as living, colonies, and galaxies; some are social such as family and caste but IT systems are Activity systems – ‘purpose wholes’ and ‘strictly goal oriented’. (Checkland, 1981).  If looking at system, try to identify
  • What are the parts of system?
  • How parts affect each other?
  • Do parts together produce an effect that is different from the effect of each part on its own?
  • Does the effect, the behaviour over time persist, either in its original state or in evolved state, under a variety of circumstances?   

System can be defined by constraints
  • High – Ordered, Structured, Repeatable, clear causality
  • Selective - Complexity adaptive, partial constraints, flexible, co-evolution. They show contextual complexity and path dependency
  • Low – may be chaos, absence of constraints.  It might show utility such as open source software 
Core Disciplines
  • Evolution: the study of how systems adapt to constantly changing environments
  • Dynamics: the study of continually changing structure and behaviour of systems
  • Information: the study of representation, symbols, and communication
  • Computation: the study of how systems process information and act on the results
Features of a Complex System
  1. Complex system consists of a large number of elements
  2. These elements interact dynamically
  3. Interactions are rich; any element in the system can influence or be influenced by any other
  4. Interactions are non-linear
  5. Interactions are short-range
  6. There are positive & negative feedback loops of interactions
  7. Open Systems – boundaries will keep on changing
  8. System operate under conditions far from equilibrium
  9. System has history
  10. Individual elements are typically ignorant of the behaviour of the whole system in which they are embedded. 
Complexity is contextual - IT systems reality is it is network of networks:
  • Diversity of Stakeholders
  • Diversity of Interests
  • Multilevel structures
  • Processes

Any enterprise architecture, including the greenfield microservices, can be complex adaptive system:
  • ·       Nonlinear, dynamic, and do not inherently reach fixed equilibrium point
  • ·       Composed of diverse independent agents
  • ·       Intelligent agents’ goals and behaviours are less likely to conflict, leading agents to adapt to one another thus changing the overall systems behaviour over time.
  • ·       Adaptation and learning tends to result in self-organizing and patterns of behaviour that emerge rather than being designed into the system.  The nature of such emergent behaviours may range from valuable outcomes to unfortunate accidents.
  • ·       There is no single point of control – system behaviours are often unpredictable and uncontrollable, and no one is ‘in charge’; therefore, behaviours of complex adaptive systems usually can be influenced more than they can be controlled.  

Why understanding the system complexity is important?

Because it tells the right way to manage it.  Theoretically Brain-swarming, Naturalistic way, Simulation, Prototyping, and Intuition are ways to manage the complexity of IT Systems; Practically, Enterprise Service Bus, Modular Design, Event driven architecture, Swarm-Intelligence, and  Platforms are ways to manage the complexity

Read more
Checkland. 1981. Systems Thinking, Systems Practice. 1981.
Kurtz, Cynthia F. and Snowden, David J. 2006. Bramble Bushes in a Thicket. [book auth.] Michel Gibbert and Durand & Thomas. Strategic Networks: Learning to Compete. 2006.
Meadows, Donella H. 2008. Thinking in Systems. s.l. : Earthscan, 2008. 978-1-84407-726.