Systems

General Systems Theory

  • An attempt to understand the inherent properties of all systems.
  • It came about as traditional methods of understanding systems were failing.

Systems in General

What are systems

  • A set of nodes that interact and are interdependent.
  • They perform a specific role.
  • They can be represented as a Graph.

Approaches to understanding systems

  • Reductionist ( Analysis )
  • Holistic ( Synthesis )

Attributes of systems

  • Entropy
  • Emergence
  • Integration, Autonomy, and Boundaries
  • Self organisation

Complexity Clasess

  • Simple
  • Complex
  • Chaotic

Simple

  • Low number of connections between nodes
  • Linear cause and effect
  • Analysis for understanding
  • Are predictable

Complex

  • Large number of connections between nodes
  • Multiple causes for an effect
  • Effects can feedback and cause amplification
  • Synthesis for understanding
  • Are unpredictable

Chaotic

  • Can be Simple or Complex
  • Are very sensitive to intial state
  • No relationship between cause and effect

Information Systems

What are they

  • Capture, Transform and Present knowledge
  • Possibly answer questions

Issues with how we build them

  • Take an long time
  • Poor quality
  • Low in features
  • Difficult to operate/evolve/extend

Why do we have these issues

Understanding what to build

  • We do not understand customer needs
  • We do not understand constraints on what we can build
  • We do not know our customers

Understanding of the context that what we build lives in

  • Empirical aspects are considered too late if at all
  • We do not consider the complexity class of systems

Understanding how to build

  • We ignore the laws of software evolution
  • The processes we use are deeply flawed

Development Processes

  • Waterfall
  • Itterative Modeling (CASE)
  • Agile
  • Lean

The net effect of this is Complex/Chaos

What do we do

Approach

  • Start by removing the chaos
  • Then move towards simplicity
  • While introducing aids that help with complexity

Techniques and Practices

  • Appreciate the laws of software evolution
  • Deming - Plan Do Study Act
  • Deming - System of Profound knowledge
  • Cynefin
  • Domain Driven Design / CQRS / Event Based
  • User focused
  • Seven dimentions of data quality
  • Comprehensive diagnostics
  • DevOps
  • Understand distributed systems
  • Use a declarative approach for expression domain rule