Agile 4 – On systems thinking ideas used in agile architecture frameworks
Copyright Graham Berrisford. One of several hundred papers at http://avancier.website. Last updated 12/06/2019 12:50
Avancier’s agile papers
This is the fourth in a series of papers.
Agile methods were designed for a single application development team.
If there is an underlying theory, it is at least partly a psycho-bio-sociological one.
Agile methods draw from socio-cultural systems thinking.
In “systems thinking” discussions, the term system is used very loosely, often for a social group or “organization”
Terms applied widely to different phenomena include “Self-organizing system” and “Complex adaptive system”
· The self-assembly of a crystal
· A social network in which actors determine their own actions.
For sure, an enterprise is much more than the machines it employs
It depends on the intelligence, creativity and innovation of its employees
A “learning organization” is “a company that facilitates the learning of its members and continuously transforms itself. ... enables them to remain competitive in the business environment.”
A SCRUM team can be seen as a learning organisation.
But don’t confuse
1. Agile operations: Actors willing and able to change in how they perform business operations
2. Agile system development: System developers willing and able to change the working software they release to the actors at 1.
3. Agile architecture: Architects willing and able to change the architectural definition of the systems developed at 2.
We spend most of our time thinking in ways not well-called systems thinking.
They might be called “entity thinking”, “situation thinking”, “analytical thinking”, “creative thinking” or just “thinking”.
To call all of those “systems thinking” would be to overload the term until it means everything and nothing in particular.
So can we pin down what systems thinking is about?
Here is a first attempt at defining some terms.
· A system, in natural language, is an orderly collection of inter-related parts.
· Behaviours are processes performed by parts called actors in a system.
· A soft system is a perspective or description of an entity as a system (it is an abstract system as Ackoff called it).
· Linear means in a straight line or a sequence.
· Deterministic means that a system, in a given state, responds to a given input or event in a pre-determined way (be it natural or designed).
· Exceptions occur when actors do not complete actions expected of their roles.
· Complex is a term with numerous definitions (see Terms used in systems thinking discussion.).
· Adaptive can mean system state change (as in homeostasis) or system mutation (see Terms used in systems thinking discussion.).
· Coupling is the relating of systems (as subsystems) in a wider system.
· Emergence primarily means the appearance of outputs, effects or state changes that arise from coupling subsystems in a wider system.
· Self-organisation can mean various things, including growth and self-regulation (homeostasis).
· Holism means looking at a thing in terms of how its parts join up (e.g. bicycle and rider) rather than dissecting the parts.
The terms above are often ambiguous or undefined in systems thinking discussion.
They can mean different things in different schools, as this table indicates.
The measurable complication of an abstract system description
The un-measurable disorder or unpredictability of a real world situation
System state change – updating the values of system variables
System mutation - changing the roles and rules of the system
Actors playing roles and acting according to rules
A group of self-aware actors who inter-communicate and act as they choose, or a problematic situation
A property arising from coupling subsystems into a large system
Not seen before, new, or surprising.
For more ambiguities, read Terms used in systems thinking discussion.
Some speak of Complex Adaptive Systems (CAS).
Note that a system that adapts by changing state might be a SAS (simple adaptive system) rather than a CAS.
And a system that adapts by mutating (or a “learning organisation”) might be called an EME (ever evolving entity) rather than a CAS.
An ever mutating entity (or ever unfolding process) - in which no behavior is regular, or determinate, or reproducible – is not a system in the ordinary sense of the term.
To simplify for purposes of the discussion here, let us divide systems into three kinds.
o Regular business operations
o Agent-based systems
· Goal-oriented human networks
Regular business operations are (often complex) machines in which human and computer actors play roles.
The actors are not autonomous; they are asked to interact in processes that create and use substantial business data structures.
They follow deterministic business rules that constrain processes so that they lead towards business goals.
Most EA and software development is about the design of such regular business operations.
Both EA and agile software development teams design business systems.
They design deterministic systems in which regular processes create and use business data.
In systems theory terms, this is the territory of classical cybernetics.
Agent-based systems are (often simple) machines composed of autonomous agents, each acting in their own interest.
There is no overarching business process or end goal.
The system is often relatively simple, though the rules may be probabilistic rather than rigidly deterministic.
The repetition of simple processes by many agents can lead to surprising patterns – be they orderly or disorderly.
Little EA and software development is concerned with agent-based systems.
A free market economy is composed of autonomous agents controlled by a simple price mechanism.
By contrast, a business is composed of actors who must be coordinated in overarching processes to reach overarching goals.
There is no equivalent to the simple “self-organising” mechanism of pricing in the free market.
Goal-oriented human networks are groups of intelligent actors who communicate and cooperate to reach a shared goal.
These are not machines; and their complexity lies not in the network structure, but in the abilities required of actors
“Though it grew out of organismic biology, general system theory soon branched into most of the humanities.” Laszlo and Krippner.
Social systems thinking is a special and peculiar branch of general system theory.
Its primary concern is how human society is organised, which overlaps with politics and economics.
Why do Agilists draw terms and concepts from social systems thinking?
Because many thinkers promote the idea that complex systems are naturally and best created by emergence.
And because all EA and software development teams may be described as self-organising goal-oriented human networks.
They define their own roles and processes.
These ideas are further discussed in sections below.
Emergence primarily means the appearance of outputs, effects or state changes that arise from interactions between subsystems in a wider system.
For example, the forward motion of a bicycle and its rider emerges from their interaction, neither can achieve it on their own.
It occurs when an entity is observed to have properties its parts do not have on their own.
These properties or behaviours emerge only when the parts interact in a wider whole.
However, the term emergence can instead mean the emergence of order from chaos.
Some extreme agilists promote the idea that order will naturally emerge from chaos.
They speak of order emerging in an “agent-based system” – as an economy emerges from buyers and sellers trading, or ants’ nest emerges from ants in a colony.
They suggest a coherent and efficient business will “emerge” from the chaos of autonomous teams working to their own ends.
So there little or no need for any overarching leadership, design, governance or EA.
But this is to confuse two very different kinds of system.
In an agent-based system, any global order is a side effect of many identical agents interacting, perhaps following simple rules.
In regular business operations, any global order is a goal of integrating many different subsystems in a complex whole.
"It is generally assumed that collaboration is, in and of itself, a ‘good thing.`.
‘All of us are smarter than any of us.’
‘The more participation in design, the better.’
Now, these attractive propositions are far from self-evident.
Most great works of the human mind have been made by one mind, or two working closely.
This is true of most of the great engineering feats of the 19th and early 20th centuries.
But now, team design has become the modern standard, for good reasons.
The danger is the loss of conceptual integrity in the product, a very grave loss indeed.
So the challenge is how to achieve conceptual integrity while doing team design, and at the same time to achieve the very real benefits of collaboration." [Brooks "Design of Designs"]
True, all EA and software development is iterative, and improvements do emerge from continual iterative sense-response adaptation.
But if a business wants to make a more radical transformation, it better prepare for it by doing some design up front.
True, as General Stanley McChrystal says in the white paper discussed in Agile paper 7.
Order can emerge from the bottom up, as opposed to being directed, with a plan, from the top down.
But the general did not disband the army’s management structure or make his own role redundant.
Read the business change case study in Agile paper 3.
It was a strategic, multi-year, cross-organisational transformation programme to digitise a bank.
It required inspiring director-level leadership, central planning and goal setting, an enterprise-wide training programme etc.
The transformation did not "emerge" organically from autonomous teams.
Any measure of complexity requires a description of a thing’s structures and/or behaviors.
Even to say one thing is more complex than another requires some shared understanding of the concept.
But there is no agreed measure of complexity
People speak of complex systems with reference to at least five different situations:
1 A complicated orderly system
2 An unpredictable situation
3 Non-linear system state change
4 A disorderly (aka chaotic) situation
5 A system composed by coupling other systems
Enterprise architecture is much about complexity of kinds 1, 4 and 5 above.
Business applications are complicated orderly systems.
A difficulty in application maintenance is not always the "technical debt" people often talk about.
It is rather the irreducible complexity that has emerged from developing the features people want.
EA is much about coupling subsystems into wider systems.
This increases the complexity of the wider enterprise-as-a-system.
Efficient and effective system integration does not happen by chance.
There is a risk that the parallel evolution of autonomous subsystems will pull them further apart
Coordination does requires some oversight and design thinking.
Self-organisation can mean various things, including growth and self-regulation (homeostasis).
In sociology, it often means something very different - the process by which actors who play roles in a system define or redefine the roles and rules of that system.
Some social systems thinkers consider it their mission to promote this idea, and the notion of a “participatory democracy”.
There are at least two very different ideas of what it means to call an entity self-organising; it might mean:
1. Self-regulation: the entity maintains its state in an stable or orderly fashion (its state being describable in the values of variables)
2. System mutation: the entity changes its own characteristics (its properties being describable as variable types and/or rules).
Systems thinkers speak of Complex Adaptive Systems (CAS).
A system that adapts by changing state might be a SAS (simple adaptive system) rather than a CAS.
A system that adapts by mutating (or a “learning organisation”) might be called an EME (ever evolving entity) rather than a CAS.
An ever mutating entity (or ever unfolding process) - in which no behavior is regular, or determinate, or reproducible – is not a system in the ordinary sense of the term.
Regarding system mutation, second-order cybernetics is said to be the recursive application of cybernetics to itself.
Here, self-organisation means actors observe and change the organisation they work in– change their own roles and rules.
Some social systems thinkers consider it their mission to promote this idea, and the notion of “participatory democracy”.
System designers apply the principles of general system theory and cybernetics to design role-and-rule-bound systems
But the social network (aka social system) that designs those systems radically different
· It is more goal-bound than role-and-rule-bound.
· Its roles and rules are more natural or self-defined than given.
All EA and software development is carried about by goal-oriented human networks.
At the highest level of system design, EA is a creative, collaborative, and highly iterative exercise.
At the lowest level of system design, software development is also a creative, collaborative, and highly iterative exercise.
Both teams are self-organising in the sense they define their own roles and processes.
Their processes are flexible and iterative, driven by continual interaction with stakeholders and requirements change.
Team members must think in creative ways, consider tradeoffs, and make decisions without all the information they want.
This is more the territory of social systems thinking and so-called second-order classical cybernetics.
Neither enterprise architects nor software developers make decisions or design systems in linear or deterministic way.
(E.g. TOGAF does not expect people to follows its “processes” either linearly or deterministically.
Rather, it says you can perform steps in a different order, iteratively or in parallel, and change the steps as you see fit.)
However, developers are sometimes forced by technologies to follow linear and deterministic processes.
It is possible to design a "self-organising system".
This means designing the meta system by which actors in a system can organise how they interact.
Think for example of a social media application.
The actors in that system are autonomous agents who choose who they communicate with and say what they want.
A design pattern pair is a pair of contrasting patterns that suit different situations.
Architects choose between alternative patterns by trading off their pros and cons.
Hub and Spoke
Point-to-Point or Mesh
Fork or Orchestration
Chain or Choreography
Every organisation and every system designer - at every level - has to strike a good-for-the-context balance between hierarchy and anarchy, centralisation and distribution, control and autonomy.
Read this paper on the drive towards greater autonomy (at least of software development) https://www.linkedin.com/pulse/small-autonomous-fast-forward-lower-quality-r-m-bastien/.
Read this paper on system coupling varieties for discussion of the design pattern pairs in the table.
On decentralisation of the business organisation
Social systems thinker Beer pursued the analogy between sociology and biology.
His Viable System Model for a business was supposedly inspired by the structure of the human brain
And in Chile (1970), Beer applied Ashby’s classical homeostatic cybernetics to central economic planning.
In his Nobel prize acceptance speech, Hayek call such efforts misguided “scientism”.
Attempts to coordinate actors by treating a business like a cybernetic machine have not proved very successful.
Attempts do it by top-down goal-setting (e.g. a balanced score card) often turn out to eb naïve and ineffective.
It is fashionable to suggest businesses should be structured in a more flexible manner.
However, this is normally the responsibility of business directors and senior managers.
Striking the optimal balance between centralisation and decentralisation is the challenge facing almost every organisation.
EA does not set out to either centralise or decentralise the organisation's management structure.
However, done well, EA may facilitate decentralisation of the management structure.
On decentralisation of business/IT change organisation
Largely distributed business change projects are the norm.
Commonly, they are pursued in parallel and relatively autonomously.
Certainly some coordination does happen by local point-to-point integration.
But cross-organisation optimisation of business systems does require some wider oversight and design thinking.
EA exists to provide a wider oversight of business system design than each local team does on its own.
On the weakness of the analogy with biology
Social systems thinkers have traditionally looked to biological systems for inspiration.
For system stability, they look to homeostasis.
For system change and survival, they look to biological evolution.
Claude Bernard (1813 to 1878) promoted the concept of "homeostasis", the idea that life depends on the stability of a body’s internal environment.
He introduced the revolutionary idea that systems maintain homeostasis by feedback control loops.
This idea has influenced much sociological thinking.
In “On the Equilibrium of the Social Systems" Pareto proposed social groups are homeostatic.
A homeostatic organism, when its state departs from the norm, will restore its state that norm.
Pareto’s social system is a social group that maintains its roles and rules – it resists or counterbalances changes to them.
“[Pareto’s idea was] taken over by many sociologists, especially Parsons” (Bausch 2001)
Most human social groups are not homeostatic; their norms and values evolve rather than stay the same.
All EA and software development is about system change, not in the homeostatic sense but in two other senses:
· system state change; business systems maintain a memory by updating state variable values
· system mutation; one business system generation is replaced by another under change control.
Evolution by mutation
Evolution is an inter-generational process that reproduces system version N with modifications in system version N+1.
The better new system N+1 is fitted to its environment, the more likely it will be reproduced, and perhaps changed, again.
Biological evolution has been wonderfully successful.
The trouble is, evolution is aimless, it works very slowly and by tiny, unnoticeable changes.
Moreover 99.9% of changes to DNA are neutral or harmful.
The analogy suggests businesses change must be designed, rather than rely on chance mutations.
Looking to biological diversity is also questionable.
Diversity in the biosphere enables different ways to use resources, and competition for resources.
But of all the diverse species that have existed on Earth, 99.9% are now extinct.
The analogy may be read to suggest human society depends on allowing businesses to go out of business.
Analogies can mislead people, and fall short as explanations.
Some systems thinkers have deprecated looking to biology for inspiration.
In 1971, Ackoff pointed out that social "systems" are not like organic ones, because the actors have choice (free will if you like).
In 2001, Bausch said that “the organic model and homeostasis are basic for many cybernetic explanations of societal functioning”
And “organic analogies are inadequate as models of social systems.”
All EA and software development is about goal-driven, designed, system change.
Team members must think in creative ways, consider tradeoffs, and make decisions.
Design thinking is not a systems thinking methodology, but a label for a collection of ideas such as.
· Capture the inspiration, the vision.
· Take a human-centric view of business roles and processes.
· Manage stakeholders and value propositions.
· Treat all design as re-design, as a baseline to target transformation.
· Make ideas tangible to facilitate communication.
· Use visual languages, sketch diagrams and technical drawings to show abstract requirements may be met by concrete systems.
· Design process steps can occur in parallel and be repeated (aren't linear)
· Double loop learning.
These ideas have long and widely been used in conventional system design methods.
Most feature in most enterprise and solution architecture methods. E.g.
A design thinking process (Wikipedia)
TOGAF’s ADM process
Avancier Methods phases
2,3,4 Research, Ideate, Prototype
phases B, C, D
phases F and G
phases G and H.
Architecture methods encourage parallel and iterative paths both through the phases of its process and within each phase.
E.g. TOGAF says the timing and order of steps should be adapted to the situation.
True, it encourages some big-up-front design, but how much you do is up to you.
True, it does not encourage prototyping in phases B to D, but that is a perfectly reasonable thing to do.