What (Else) Can Agile Learn From Complexity

58
What (Else) Can Agile Learn from Complexity? What (Else) Can Agile Learn from Complexity? Jurgen Appelo [email protected] version 3 image by BotheredByBees Jurgen Appelo [email protected] version 3
  • date post

    17-Oct-2014
  • Category

    Business

  • view

    11.051
  • download

    0

description

How can complexity science be applied to software development? This presentation shows you which scientific concepts can be mapped to agile software development. http://www.noop.nl http://www.jurgenappelo.com

Transcript of What (Else) Can Agile Learn From Complexity

Page 1: What (Else) Can Agile Learn From Complexity

What (Else) Can Agile Learn from

Complexity?

What (Else) Can Agile Learn from

Complexity?

Jurgen Appelo

[email protected]

version 3

image by BotheredByBees

Jurgen Appelo

[email protected]

version 3

Page 2: What (Else) Can Agile Learn From Complexity

Jurgen Appelo writer, speaker,

entrepreneur...

www.jurgenappelo.com

Page 3: What (Else) Can Agile Learn From Complexity

Get my new book for FREE! m30.me/ss

Page 4: What (Else) Can Agile Learn From Complexity

QDD (Quote-Driven Discourse)

Misquotation is, in fact, the pride and privilege of the learned. A widely-read man never quotes accurately, for the rather obvious reason that he has read too widely. Hesketh Pearson (1934) Common Misquotations http://www.amazon.com/Common-Misquotations-Hesketh-Collected-Pearson/dp/B00128UERS/

Page 5: What (Else) Can Agile Learn From Complexity

Let’s start! Let’s start!

Page 6: What (Else) Can Agile Learn From Complexity

Agile Software Development

An ant colony, the brain, the immune system, a Scrum team, and New York City, are self-organizing systems. Ken Schwaber Agile Software Development with Scrum http://www.amazon.com/Agile-Software-Development-Scrum/dp/0130676349/

Page 7: What (Else) Can Agile Learn From Complexity

Agile Software Development

At the heart of complex adaptive systems theory’s relevance to software development is the concept of emergence, and the factors leading to emergent results. Jim Highsmith Adaptive Software Development http://www.amazon.com/Adaptive-Software-Development-Collaborative-Approach/dp/0932633404/

Page 8: What (Else) Can Agile Learn From Complexity

Agile Software Development

Scrum is not a methodology, a defined process or set of procedures. It's an open development framework. The rules are constraints on behavior that cause a complex adaptive system to self-organize into an intelligent state. Jeff Sutherland Shock Therapy (presentation)

Page 9: What (Else) Can Agile Learn From Complexity

The Evolution of Complexity Science

image by Brian Castellani

Page 10: What (Else) Can Agile Learn From Complexity
Page 11: What (Else) Can Agile Learn From Complexity

Are software projects complex systems?

Can we apply complexity science to management?

image by practicalowl

Page 12: What (Else) Can Agile Learn From Complexity

Beware!! Abuse of Science

1. To use scientific terminology without bothering much about what the words actually mean.

2. Importing scientific concepts without giving the slightest empirical or conceptual justification.

3. Displaying superficial erudition by shamelessly throwing around terms where they are irrelevant.

4. Exhibiting a veritable intoxication with words, with a superb indifference to their meaning.

Sokal, A. and Bricmont, J. (1998)

Intellectual Impostures: Postmodern Philosophers’ Abuse of Science http://www.amazon.com/Intellectual-Impostures-Alan-Sokal/dp/1861976313

Page 13: What (Else) Can Agile Learn From Complexity

Complexity vs. Management

Not unexpectedly, the complexity gurus are most upset with how complexity science terms are loosely, if not metaphorically, defined and tossed in managerial discourse – one [guru] goes as far as to suggest that the books offer many insights for managers, but one should simply black out all references to complexity science.

Maguire, S. and McKelvey, B. (1999) “Complexity and Management: Moving from fad to firm foundations” http://iscepublishing.com/ECO/ECO_papers/Issue1_2_2.pdf

Page 14: What (Else) Can Agile Learn From Complexity

Compromise: Loose Application

The word “culture” in business culture was (successfully) borrowed from anthropology.

The word “strategy” in business strategy was borrowed from the military. (In fact, the science of game theory borrowed the word for evolutionary stable strategies!)

Loose application (borrowing and bending) of terminology across disciplines is more than just the invention of metaphores. The terms actually have meaning.

Van Uden, J. (2005)

“Using complexity science in organization studies: a case for loose application”

http://iscepublishing.com/ECO/ECO_papers/Issue_7_1_8_PH.pdf

Page 15: What (Else) Can Agile Learn From Complexity

Snowden, D. and Stanbridge, P. (2004) “The Landscape of Management: Creating the context for understanding social complexity” http://iscepublishing.com/ECO/ECO_other/Issue_6_1-2_19_FM.pdf

Page 16: What (Else) Can Agile Learn From Complexity

humans involved, not mechanics

complex, not ordered

Snowden, D. and Stanbridge, P. (2004) “The Landscape of Management: Creating the context for understanding social complexity” http://iscepublishing.com/ECO/ECO_other/Issue_6_1-2_19_FM.pdf

Page 17: What (Else) Can Agile Learn From Complexity

Example: Self-Organization

Self-organization is a process of attraction and repulsion in which the internal organization of a system, normally an open system, increases in complexity without being guided or managed by an outside source.

Self-Organization http://en.wikipedia.org/wiki/Self-organization

Are self-organizing teams really self-organizing?

Page 18: What (Else) Can Agile Learn From Complexity

Example: Emergence

Emergence is the arising of novel and coherent structures, patterns and properties during the process of self-organization in complex systems.

Corning, P.A. (2002)

“The Emergence of Emergence: Now What?” http://iscepublishing.com/ECO/ECO_papers/Issue4_3_3.pdf

Is emergent design really emergent?

Page 19: What (Else) Can Agile Learn From Complexity
Page 20: What (Else) Can Agile Learn From Complexity

Software Projects

Scope

Features

Qualities People

Tools

Resources

Parts Artifacts

Product

Page 21: What (Else) Can Agile Learn From Complexity

Yes, we can apply complexity to management

Yes, software projects are complex systems

image by Peter Kaminsky

Page 22: What (Else) Can Agile Learn From Complexity

Darkness Principle

Each element in the system is ignorant of the behavior of the system as a whole [...] If each element ‘knew’ what was happening to the system as a whole, all of the complexity would have to be present in that element.

Richardson, K.A. (2002) “Systems theory and complexity: Part 1” http://iscepublishing.com/ECO/ECO_other/Issue_6_3_10_FM.pdf

Page 23: What (Else) Can Agile Learn From Complexity

Traditional Monitoring and Control fails

(no project manager can know everything)

image by Okko Pyykkö

Page 24: What (Else) Can Agile Learn From Complexity

The Law of Requisite Variety

If a system is to be stable the number of states of its control mechanism must be greater than or equal to the number of states in the system being controlled.

Variety (Cybernetics) http://en.wikipedia.org/wiki/Variety_%28cybernetics%29

Page 25: What (Else) Can Agile Learn From Complexity

Traditional Management fails

(one manager is less complex than a group)

image by flattop341

Page 26: What (Else) Can Agile Learn From Complexity

Boundaries and Conditions

Self-organization requires that the system is surrounded by a containing boundary. This condition defines the "self" that will be developed during the self-organizing process.

Eoyang, G. and Conway D.J. (1999) “Conditions That Support Self-Organization in a Complex Adaptive System” http://amauta-international.com/iaf99/Thread1/conway.html

Page 27: What (Else) Can Agile Learn From Complexity

image by Robbie W T Agile Management is a crucial part of Agile

(Defining boundaries and conditions)

Page 28: What (Else) Can Agile Learn From Complexity

Hierarchy Principle

Complex natural phenomena are organized in hierarchies wherein each level is made up of several integrated systems.

Skytner, L. (2001) “General Systems Theory: Ideas and Applications” NJ: World Scientific

Page 29: What (Else) Can Agile Learn From Complexity

image by Mountain Goat Software

Example: Scrum of Scrums

managed self-organized

Hierarchies are not a problem, they are natural

Managed (imposed) hierarchies are the problem

Page 30: What (Else) Can Agile Learn From Complexity

Patches

Take a conflict-laden task in which many parts interact, and divide it into a quilt of non-overlapping patches. Try to optimize within each patch. As this occurs […] a good solution in one patch will change the problem to be solved in adjacent patches.

Kaufman, S. (1995) At Home in the Universe http://www.amazon.com/At-Home-Universe-Self-Organization-Complexity/dp/0195111303/

Page 31: What (Else) Can Agile Learn From Complexity

image adapted from Mountain Goat Software

Example: Patches of Scrums

An ecosystem of teams instead of a hierarchy

Page 32: What (Else) Can Agile Learn From Complexity

Group Size

There is a particular number of decision-makers that stands out from the trend as being truly, spectacularly bad, tending with alarmingly high probability to lead to deadlock: eight.

Buchanan, M. (2009) “Explaining the curse of work” http://www.newscientist.com/article/mg20126901.300-explaining-the-curse-of-work.html

Page 33: What (Else) Can Agile Learn From Complexity

image by Jayel Aheram

Good team size = 7 +/- 2 (except 8)

(5 might be perfect)

Page 34: What (Else) Can Agile Learn From Complexity

Specialization

In more complex organisms – from eukaryotic protists to social mammals – specialization among the parts (or division of labor) produces many advantages for various wholes.

Corning, P.A. (2002) “The Emergence of Emergence: Now What?” http://iscepublishing.com/ECO/ECO_papers/Issue4_3_3.pdf

Page 35: What (Else) Can Agile Learn From Complexity

Specialization is not a problem, it is natural

Managed (imposed) specialization is the problem

image by Ali

Page 36: What (Else) Can Agile Learn From Complexity

Power Laws

Scale-free networks are ubiquitous in nature due to the adaptive properties of robustness and fast communication associated with power-law degree distributions.

Mitchell, M. (2009) Complexity: A Guided Tour http://www.amazon.com/Complexity-Guided-Tour-Melanie-Mitchell/dp/0195124413/

Page 37: What (Else) Can Agile Learn From Complexity

Power laws exhibit scale invariance

You can’t estimate size of next unknown issue

size of issues

frequency of issues

high chance of small issues

low chance of large issues

Page 38: What (Else) Can Agile Learn From Complexity

Prediction of velocity includes an (impossible) estimate of the size of unknown problems

image by cod gabriel

Page 39: What (Else) Can Agile Learn From Complexity

Dependence on Context

A project cannot be viewed independent of its surrounding context […]. An understanding of the context is in itself not sufficient to prescribe a method […]. Rather, the method to manage the project is embedded in the context and one must allow the emergence of such a method through interaction between the actors and the environment.

Pundir, A.K., Ganapathy, L. And Sambandam, N. (2007) “Towards a complexity framework for managing projects” http://iscepublishing.com/ECO/ECO_papers/Issue_9_4_3_AC.pdf

Page 40: What (Else) Can Agile Learn From Complexity

ScrumButs are natural and necessary

Management methods must emerge

Standard methods must be customized

Page 41: What (Else) Can Agile Learn From Complexity

Fitness Landscapes

The environment is not out there, separate from us. We can help to create the environment. […] The Spanish have phrase […]: “My friend, there is no road. You make the road as you walk.”

Dent, E.B. (1999) “Complexity Science: A Worldview Shift” http://iscepublishing.com/ECO/ECO_papers/Issue1_4_1.pdf

Page 42: What (Else) Can Agile Learn From Complexity

The environment responds to released software

Success can only be known after deployment image by neona

Page 43: What (Else) Can Agile Learn From Complexity

?

linear improvement

stuck on local optimum or walk through the valley

(linear) retrospectives may stop working

Page 44: What (Else) Can Agile Learn From Complexity

image by Kevin N. Murphy

mixing practices from two sources

Crossover

Page 45: What (Else) Can Agile Learn From Complexity

non-linear improvement

finding higher peaks by mixing prior high performers

Switch from linear to non-linear retrospectives

(Replace multiple practices at a time)

Page 46: What (Else) Can Agile Learn From Complexity

moderately connected system (several optimums)

sparsely connected system (one optimum)

intensively connected system (no real optimum)

Page 47: What (Else) Can Agile Learn From Complexity

If you can’t replace a practice, tool, or person,

you shouldn’t even add them in the first place

image by wilhei55

Page 48: What (Else) Can Agile Learn From Complexity

disturbances enable the system to find deeper valleys

(inverted landscape, lower = better)

Noise

Page 49: What (Else) Can Agile Learn From Complexity

image by Hamed Saber

The Butterfly Effect

Small changes, BIG consequences

Page 50: What (Else) Can Agile Learn From Complexity

Incompressibility

There is no accurate 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, P. (2005) “Knowing complex systems” Managing Organizational Complexity: Philosophy, Theory And Application http://www.amazon.com/Managing-Organizational-Complexity-Philosopy-Application/

Page 51: What (Else) Can Agile Learn From Complexity

Because of the butterfly effect, we cannot predict

the consequences of leaving something out

Consequence: a variety of imperfect methods

image by woodleywonderworks

Page 52: What (Else) Can Agile Learn From Complexity

Models

All models are wrong, but some are useful.

Box, G. and Draper, N. (1969) Evolutionary Operation: A Statistical Method for Process Improvement http://www.amazon.com/Evolutionary-Operation-Statistical-Process-Improvement/dp/B0028H5YDG/

Page 53: What (Else) Can Agile Learn From Complexity

The Software Cultivator

Managing Agile Organizations

(2010)

?

Jurgen Appelo

My Book

Page 54: What (Else) Can Agile Learn From Complexity

Disclaimer

I might have used scientific terminology without really understanding what the words actually mean.

I might have imported scientific concepts without giving sufficient justification.

I might have thrown around scientific terms where they are irrelevant.

And I might have an intoxication with words...

Page 57: What (Else) Can Agile Learn From Complexity

www.management30.com

Page 58: What (Else) Can Agile Learn From Complexity

http://creativecommons.org/licenses/by-nd/3.0/

This presentation was inspired by the works of many people, and I cannot possibly list them all. Though I did my very best to attribute all authors of texts and images, and to recognize any copyrights, if you think that anything in this presentation should be changed, added or removed, please contact me at [email protected].