Download - Management 3.0 - Complexity Thinking
Complexity Thinking
Agile Management © 2010 Jurgen Appelo version 0.1
Complexity Thinking
Stop treating teams and organizations as machines.Start treating them ascomplex (living) systems.
Complexity Thinking
A Story of a Software Business
unhappy customersOnce there was a software business with
quality and productivityCustomer satisfaction was low because of low
lack of skills and disciplineQuality and productivity were low because there was
pressure on teamsCustomer dissatisfaction increased
no time foreducation
Stress at work meant
no skills andno discipline
No education meant
unhappy teamsCustomer pressure led to
decreasingdemotivation
Lack of skills and unhappy customers added to
decreasingproductivity
Decreasedmotivation
added to
Causal Loop DiagramWe call this a
Diagram of Effects)(Some call it a
vicious cyclesIt shows the business suffered from
manyAnd not just one, but
revenues decliningManagement saw
cutting budgetsThey tried to supportimprovement while
Meanwhile, technological pressure was increasing
And due to the crisis, economic pressure also went up
Needless to say, this business was
DOOMED
Needless to say, this business was
DOOMEDThen suddenly,managementstarted learning...
Software Teams AreComplex Adaptive Systems
A software team is a complex adaptive system (CAS), because it consists of parts (people) that form a system (team), and the system shows complex behavior while it keeps adapting to a changing environment.
It’s the same with brains, bacteria, immune systems, the Internet, countries, gardens, cities, and beehives.They’re all complex adaptive systems.
General Systems Theory
Autopoiesis (how a system constructs itself)Identity (how a system is identifiable)Homeostatis (how a system remains stable)Permeability (how a system interacts with its environment)
Ludwig von Bertalanffy(biologist)1901-1972
Study of relationships between elements
Cybernetics
Goals (the intention of achieving a desired state)Acting (having an effect on the environment)Sensing (checking the response of the environment)Evaluating (comparing current state with system’s goal)
Norbert Wiener(mathematician)
1894-1964
Study of regulatory systems
Dynamical Systems Theory
Stability (stable states versus unstable states)Attractors (systems getting sucked into stable states)
Study of system behavior
Game Theory
Competition versus cooperationZero sum games versus non-zero sum gamesStrategies (including evolutionary stable strategies)
John von Neumann(mathematician)
1903-1957
Study of co-adapting systems
Evolutionary Theory
Population (more than one instance)Replication (mechanism of making new instances)Variation (differences between instances)Heredity (differences copied from existing instances)Selection (environment imposes selective pressure)
Charles Darwin(naturalist)1809-1882
Study of evolving systems
Chaos Theory
Strange attractors (chaotic behavior)Sensitivity to initial conditions (butterfly effect)Fractals (scale-invariance)
Edward Lorenz(meteorologist)
1917-2008
Study of unpredictable systems
And more...
Dissipative systems (spontaneous pattern-forming)Cellular automata (complex behavior from simple rules)Genetic algorithms (adaptive learning)Social network analysis (propagation of information)
Study of all kinds of systems
The Body of Knowledge of Systems
Complex systems theory is the study of complex systems using multiple system theories
Management Is in the Systemor in the Environment
Management “leading” a hierarchy of “followers” is not a very useful
metaphor
Management in the SystemManagers are just like the other people,only with a few “special powers”
Management in the EnvironmentOr... managers are part of the team’s
context,constraining and steering the system
System boundaries are fuzzy, so you can choose...
System Environment
This depends on the problem you want to solve
or
Either way, you are never an independent observer looking down at
the system
Self-organization IsBetter than Control
“Self-organization is the process where a structure or pattern appears in a system without a central authority or external element imposing it through planning.”
http://en.wikipedia.org/wiki/Self-organization
Self-organization is thedefault behavior
in complex adaptive systems
Managers want self-organization
to lead to things that haveValue
Anything that is not constrainedby management will self-organize
Darkness PrincipleEach part in a system cannot know all that goes on in the rest of the system. If a team member “knew” an entire software project, the complexity of the whole project would have to be present in that person.
Cilliers, Paul. Complexity and Postmodernism. New York: Routledge, 1998.
That’s why teams must aggregate
their limited mental models
Many System BehaviorsAre Nonlinear
Reinforcing feedback loops
Complex adaptive systems arecomplexbecause of
Stabilizing feedback loops
Multiple causes per effect
Opposing effects per cause
Time delays between cause and effect
Complex systems are complex because all diagrams are simplifications of the real complexity in those
systems
Software Teams MustDeal with Unknowns
Incompressibility Principle“There is no accurate (or rather, perfect) representation of the system which is simpler than the system itself. In building representations of open systems, we are forced to leave things out, and since the effects of these omissions are nonlinear, we cannot predict their magnitude.”
Cilliers, Paul. "Knowing Complex Systems" Richardson K.A.Managing Organizational Complexity: Philosophy, Theory and Application.Greenwich: In-formation Age Publishing, 2005. Page 13.
Known unknownsThe things you know that you don’t know
Like... who gets the next joker when playing a card game?
Unknown unknownsThe things you don’t know that you don’t know
Like... ehm?
The unknowns are different per personThat’s why people get together and make joint
decisions
Software Teams HaveEmergent Properties
EmergenceSome properties and
behaviors of teams cannot be traced back to individual
people
Emergent behaviors of a team enables collective decision making without
central control
“A complex system is more than the sum of its parts.”
Unfortunately, emergent properties and behaviors are
largelyunpredictable
Complexity Is Different fromComplicatedness
The structure of a system can be
Complicatedvery hard to understand
Simpleeasy to understand
The behavior of a system can be
Orderedfullypredictable
Complexsomewhatunpredictable
Chaoticveryunpredictable
You can try to simplify a system to make it understandable
But you cannot linearize the system to make it predictable
7 Principles of Complexity Thinking
Agile managers work the system,not the people.
1. Software teams are complex adaptive systems
2. Management in the system or in environment
3. Self-organization is better than control
4. Many system behaviors are nonlinear
5. Software teams must deal with unknowns
6. Software teams have emergent properties
7. Complexity is different from complicatedness
Exercise1. Discuss complexity thinking with your group
Nonlinear effects Unknown unknowns Emergent behavior
2. Create an illustration or visual representation3. Explain the case to the entire class
30 minutes
This presentation is part of
Agile Managementa course developed by Jurgen Appelo
http://www.jurgenappelo.com/training/
@jurgenappelo (twitter)
slideshare.net/jurgenappelo
jurgenappelo.com (site)
noop.nl (blog)
management30.com (book)