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 29/06/2019 20:13
Avancier’s agile papers
This is the fourth in a series of papers.
2. On agile software development
3. On agile businesses and systems
4.
On
systems thinking ideas used in agile
5. What is agile architecture?
6.
EA in the world of agile
architecture
Social systems
thinking in management science
Terms used in
systems thinking discussion (recap)
Agile
methods draw from socio-cultural systems thinking.
They
are designed for a smallish team (cf. a hunter-gather group).
Beware
the ambiguity of “system”.
Systems
thinking discussions feature two very different “system” concepts.
Social
system as a network: a group of actors who communicate, and act in an ad hoc
ways
Social
system as a system: a group of actors who play roles and follow rules, act in
regular or repeated activities
These
two concepts are in a many-to-many relationship.
In
systems thinking discussion
Systems
thinkers speak of “self-organizing systems” and “complex adaptive systems”.
These
terms are applied to a wide variety of phenomena, such as:
· the self-assembly of a crystal
· the morphology by which an adult develops
from an egg
And in
social systems thinking to a social network that determines its own actions
The
idea is crystallised in the idea of a learning organisation (Senge)
“a
company that facilitates the learning of its members and continuously
transforms itself. ... enables them to remain competitive in the business
environment.”
Agile
business actors?
An
enterprise or organization unit does much more than in the systems it employs.
It
depends on a social network of intelligent and innovative employees.
Who
decides it should be a “learning organization”?
Who motivates,
manages and educates business actors?
The EA
team? Other?
Agile
software developers?
A
software development team has to do much more than is declared in any architecture
it is given.
It
depends on a social network of intelligent and innovative developers.
Who
decides it should be a “learning organization”?
Who
motivates, manages and educates developers?
The EA
team? Other?
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.
|
Term |
School |
Meaning |
|
Complex |
Classical
cybernetics |
The measurable complication
of an abstract system description |
|
Sociological
thinking |
The un-measurable disorder or
unpredictability of a real world situation |
|
|
Adaptive |
Classical
cybernetics |
System state change –
updating the values of system variables |
|
Sociological
thinking |
System mutation - changing
the roles and rules of the system |
|
|
System |
Classical
cybernetics |
Actors playing roles and acting
according to rules |
|
Sociological
thinking |
A group of self-aware actors who inter-communicate and act as they choose, or a problematic situation |
|
|
Emergence |
Classical
cybernetics |
A property arising from coupling
subsystems into a large system |
|
Sociological
thinking |
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.
· Machines
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.
On
decentralisation
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.
|
Hierarchy |
Anarchy |
|
centralises |
distributes |
|
Hierarchy |
Network |
|
Hub and Spoke |
Point-to-Point or Mesh |
|
Client-Server |
Peer-to-Peer |
|
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.
Homeostasis
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)
Observations:
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.
Observations:
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
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 |
|
1 Define |
phase A |
Initiate |
|
2,3,4 Research, Ideate,
Prototype |
phases B, C, D |
Architect |
|
5 Choose |
phase E |
Plan |
|
6 Implement |
phases F and G |
Govern development |
|
7 Learn |
phases G and H. |
Govern change |
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.