complexity theory and why waterfall development works (sometimes)

19
Complexity Theory and Why Waterfall Development Works (Sometimes) Larry Apke Agile Expert www.agile-doctor.com [email protected]

Post on 19-Oct-2014

848 views

Category:

Technology


0 download

DESCRIPTION

A huge debate rages on in IT these days. There are two rival camps - traditionalists who subscribe to the "waterfall" methodologies and agilists. Most recent evidence suggests that agile methodologies have an edge in project success rates but the traditional methods are still widely practiced and do result in some project successes. There are reasons for the successes of agile and traditional projects that can be explained by complexity theory. This presentation will examine some interesting information about waterfall and agile methodologies and show why complexity theory can help us to predict the relative success (and failure) of applying these methodologies to software development projects.

TRANSCRIPT

Page 1: Complexity Theory and Why Waterfall Development Works (Sometimes)

Complexity Theory and Why Waterfall Development Works (Sometimes)

Larry Apke Agile Expert

[email protected]

Page 2: Complexity Theory and Why Waterfall Development Works (Sometimes)

Who Am I?

My passion is to help people create high-quality software on a regular basis.

I am a regular speaker on Agile topics, an active member of Agile user groups, founder of the San Antonio Agile Coffee.

My home is in Scottsdale Arizona where I spend my weekdays as an Agile Coach at a local financial services company.

Over 6 years real-world experience as a scrum master, agile coach, consultant and software development manager and over 15 years of IT experience.

Page 3: Complexity Theory and Why Waterfall Development Works (Sometimes)

Waterfall Development

Image from Winston Royce Paper titled “Managing theDevelopment of Large SoftwareSystems” August 1970.

Page 4: Complexity Theory and Why Waterfall Development Works (Sometimes)

Agile Development

Page 5: Complexity Theory and Why Waterfall Development Works (Sometimes)

Cynefin Model

Page 6: Complexity Theory and Why Waterfall Development Works (Sometimes)

Cynefin Model

Pronounced Kunevin

Means “Habitat” or “Place”

Dave Snowden

Page 7: Complexity Theory and Why Waterfall Development Works (Sometimes)

Complex Vs. Complicated

Criteria (George Rzevski)

Complex Complicated

Interaction A large number of diverse components (Agents) engaged in rich interaction

A large number of diverse components (Agents) engaged in interaction that can be understood

Page 8: Complexity Theory and Why Waterfall Development Works (Sometimes)

Complex Vs. Complicated

Criteria (George Rzevski)

Complex Complicated

Autonomy Agents are largely autonomous but subject to certain laws, rules or norms; there is no central control but agent behavior is not random

Agents are subject to certain laws, rules or norms; there may be central control

Page 9: Complexity Theory and Why Waterfall Development Works (Sometimes)

Complex Vs. Complicated

Criteria (George Rzevski)

Complex Complicated

Emergence Global behavior of a complex system “emerges” from the interaction of agents and is therefore unpredictable; requires feedback – can only be understood in retrospective

Predictable, but requires expertise. Can be understood beforehand.

Page 10: Complexity Theory and Why Waterfall Development Works (Sometimes)

Complex Vs. Complicated

Criteria (George Rzevski)

Complex Complicated

Equilibrium “Far from equilibrium” because frequent occurrences of disruptive events do not allow the system to return to equilibrium.

There may be disruptive events but system will return to a recognizable equilibrium.

Page 11: Complexity Theory and Why Waterfall Development Works (Sometimes)

Complex Vs. Complicated

Criteria (George Rzevski)

Complex Complicated

Linearity Nonlinearity occasionally causes an insignificant input to be amplified into an extreme event (butterfly effect).

System exhibits linearity in that output events are approximately proportional to input.

Page 12: Complexity Theory and Why Waterfall Development Works (Sometimes)

Complex Vs. Complicated

Criteria (George Rzevski)

Complex Complicated

Self-Organza-tion

Capable of self-organization in response to disruptive events.

Centralized control is effective in response to disruptive events.

Page 13: Complexity Theory and Why Waterfall Development Works (Sometimes)

Complex Vs. Complicated

Criteria (George Rzevski)

Complex Complicated

Co-Evolution

Irreversibly co-evolve with their environments.

Independent parts may need experts to understand, but can be understood and function in isolation.

Page 14: Complexity Theory and Why Waterfall Development Works (Sometimes)

Complex Vs. Complicated

Complex Complicated

Probe, sense, respond Sense, analyze, respond

Holistic Reductionist

Synthesize Analyze

Deming Taylor

Stock Markets, New Product Development, Invention/ Innovation

Manufacturing (building a house or car) manufacturing, insurance, health care providers, public schools, banks

Software Development? Software Development?

Page 15: Complexity Theory and Why Waterfall Development Works (Sometimes)

Is Software Development Complex?

If software development is complex, “Knowledge of experts may be of limited value, and the effectiveness of cause-and-effect analysis is likely to be marginalized, or of short duration.” - H. William Dettmer “Systems Thinking and the Cynefin Framework”

I believe that some software development can be classified as complicated in which case Waterfall Methodology will work.

However, I believe that most software development falls into the complex category which is where the Agile methodologies and their emphasis on continuous feedback are more effective.

Page 16: Complexity Theory and Why Waterfall Development Works (Sometimes)

Is Software Development Complex?

In fact, I believe that most of the pain found in software development stems from the very fact that the people who are in positions of power do not fundamentally understand what software is.

Software development, for the most part, is a complex endeavor that involves creativity, communication and collaboration and thrives with the kind of small, co-located, dedicated teams that Agile proposes.

Continuing to use metaphors from complicated endeavors (like building houses and cars) confounds the situation and leads those in charge to make decisions that are diametrically opposed to getting work done.

Page 17: Complexity Theory and Why Waterfall Development Works (Sometimes)

Solving the Wrong Problem

For every complex problem there is an answer that is clear, simple, and wrong. - H L Mencken

It's not at all important to get it right the first time. It's vitally important to get it right the last time. - Andrew Hunt and David Thomas

Page 18: Complexity Theory and Why Waterfall Development Works (Sometimes)

Solving the Wrong Problem

Gossamer Condor – Built by Paul MacReady 1977.

Photo from Smithsonian Museum.

Winner of the Kremer prize established in 1959.

Story described in Aza Raskun's blog.

Page 19: Complexity Theory and Why Waterfall Development Works (Sometimes)

Questions???