I had intended to write an InfoQ article looking back at ten years of agile software development, but I never completed one. Instead, I found these notes, and I wanted to at least try to spark some conversation around the ideas. I would dearly love to learn about counterexamples and face dissenting view points. Don’t hold back.
Before you read this, keep in mind that I’ve spent about 12 years practising, teaching, advocating for and defending the ideas of agile software development and, in some cases, the people who espouse them. I hope my track record speaks for itself. Nevertheless, I think we still have a long way to go, and so I offer these as points of discussion and disagreement.
For all the good things that the agile software development movement has done for me, for my colleagues, for my clients, and for the industry at large, over the last ten years, I believe that it has failed to…
- Capture the attention of executives
- Move people beyond roles and rules
- Focus people on value
- Ingrain simplicity as a core value
- Communicate the vital need for discipline
- Obtain buy in from executives and management
- Keep the manifesto in the front of the common consciousness
I also believe that it has, perhaps unwittingly, triggered…
- obsession with ultra-precise cost estimates for small batches of work
- a cottage industry around certification
- a cottage industry around tools
- a culture war between Agile/Lean/XP/Kanban
- obsession with compliance over results
- excusing chaos
- a false expectation that order emerges spontaneously
- “Trophy Agile” and “Badge Collectors”
- insular behavior for teams (“We’re agile; leave us alone”)
- accusations of elitism within the community of practice
Now, let me be clear: the agile software development movement has helped me tremendously. I might not have retired just before my 35th birthday without knowing what the agile software development movement’s leaders taught me. Please don’t label this “bleak” or “dire” or “hopeless”; please simply bear these things in mind as you practise and teach others.