June 11, 2006

...Learn TDD with Codemanship

Do Agile Methods Scale Up?

Critics of Agile methods argue that they can't be effective as projects grow larger. Even some proponents of Agile methods concede that they might not scale up to the truly mammoth projects that some big organisations take on. For heavyweight projects the received wisdom is that you need heavyweight methods. Well, I'm here to tell you that nothing could be further from the truth. Not only do Agile methods scale up, but they actually scale up far better than the so-called "heavyweight" methods these critics are trying to promote.

I distinguish between Agile and non-Agile methods by a handful of key factors:

1. Feedback-driven vs. Plan-driven
2. Self-organising vs Centralised Control
3. Holism vs. Reductionism
4. Uncertainty vs. Certainty

Specifically, I believe that Agile methods are designed to solve very complex problems. Evolution, learning and self-organisation are key problem-solving mechanisms in biological systems of all sizes - from DNA to entire ecosystems. Life has evolved along similar lines. And life is very, very scalable. Another key property of complex systems is self-similarity. A fern, for example, exhibits the same patterns on multiple scales. This fractal nature shows up in many artificial - but equally complex - phenemona, like stock markets, villages, towns and cities, and IT projects. It is an out-and-out mistake to suggest that a $1 billion project with 10,000 stakeholders is fundamentally different to a $100,000 project with 10 stakeholders. Balancing the needs of 10 people is approximately as complex as balancing the needs of 10,000 people. In fact, just one stakeholder is complicated enough to warrant the application of nonlinear management methods. A question as simple as "which car is best for me?" turns out to require a few iterations and a bit of trial-and-error to resolve. And no amount of written documentation can replace the need for a test drive!

Nature has evolved optimum solutions for decision-making and problem-solving on just about any scale. Swarm intelligence, for example, is how colonies of millions of ants or bees are able to act in apparant unison - without centralised control or a predetermined plan. As far as I'm aware, there are no large-scale examples of successful centralised control or plan-driven governance in either the natural world or in human affairs. The classical approach to governance just doesn't scale up, and history is littered with the remains of the victims of people who thought otherwise.

For me, nature is the proof that Agile methods scale up. Billions of years of evolution have led to organisms, societies and ecosystems that are adaptive and self-organising. Our ability to learn is the strongest evidence yet of the problem-solving power of feedback. The same pattern of learning is so ubiquitous - and again, at all levels from a single cell to an entire ecosystem - that I can't imagine how anyone could argue against the scalability of iterative, feedback-driven approaches to problem solving.

Of course, they will still try...
Posted 14 years, 7 months ago on June 11, 2006