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.
Complexity Theory and Why Waterfall Development Works (Sometimes)
1. Complexity Theory and
Why Waterfall
Development Works
(Sometimes)
Larry Apke
Agile Expert
www.agile-doctor.com
larry@agile-doctor.com
2. Who Am
I?
Over 6 years real-world experience as a scrum master, agile coach,
consultant and software development manager and over 15 years of
IT experience.
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.
14. 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?
15. 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.
16. 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.
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.
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.
17. 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
18. 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.