“Agile is just a fad.”
Somebody said that to me the other day, and I’m sure you’ve heard the same if you’re involved in Agile development at all. I had the usual half-defensive, half-annoyed reaction one has when on the receiving end of such a remark. But then I started to mull over the question.
Is Agile just a fad?
At some level, the answer is clearly “yes.” Agile is the current fad in the development world. Everybody’s talking about it; many teams actually are doing it; most of those who aren’t doing it claim to be. (That’s a useful definition of a fad right there: when people who aren’t doing it and don’t want to claim to do it anyway.)
But what does it mean to be a fad? If it is a fad, does that mean we should just dismiss the whole endeavor? Maybe looking at past fads in our industry would be instructive.
The first fad I became aware of in my professional career was Structured Design. Edsger Dijkstra’s letter Go To Statement Considered Harmful kicked off a whole new way of looking at programming. Yourdon and Constantine’s Structured Design codified it for an entire generation of programmers. People wrote, thought, trained, and wrote software packages around this new paradigm.
Now, 30 years later, who remembers Structured Design? Wasn’t that just a fad, popular in its day but irrelevant now?
Well, no, actually. The principles of cohesion and coupling matter just as much now that we’re programming in methods and objects as they did when Yourdon and Constantine first discussed them. Developers are still expected to code in well-structured blocks—without using GOTO statements. Yes, some of the modeling techniques and some specific practices have been abandoned—but the core insight of Structured Design is still alive and well. It’s just so built in to our modern practices that no one notices it anymore.
Object-oriented development is another case in point. Once, it was the fad of the day, spawning OOPSLA and other conferences, training, and many programming languages. Now it’s old news—but almost everybody can expect to be programming with objects, whatever the language, because they’ve all been extended to be object-oriented. The core concept is built into our standard practices.
So yes, Agile development is a fad. Ten years from now, I’m sure it will have been superseded by the Next Big Thing. But I’m equally sure that the core insights of Agile development will have been built into the standard practice of the day. Those core insights will at least include short iterations, each delivering a complete package; frequent validation of progress with customers and end-users; and daily attention to process and to team interactions.
Fads come and go, like waves on a beach. But each wave leaves pearls on the beach, the valuable insights that made the fad exciting in the first place, while sweeping away the flotsam of irrelevant or unhelpful practices left behind by previous waves.
This is probably the only way we can do industry change—by generating so much enthusiasm, excitement, and energy around the new approach that it can overcome the inertia maintaining the status quo. The excitement makes change possible.
And besides, it’s fun.
- Edsger Dijkstra (March 1968). “Go To Statement Considered Harmful”. Communications of the ACM 11 (3): 147–148. doi:10.1145/362929.362947
- W. Stevens, G. Myers, L. Constantine, “Structured Design”, IBM Systems Journal, 13 (2), 115-139, 1974.
- Edward Yourdon and Larry L. Constantine, Structured Design: Fundamentals of a Discipline of Computer Program and System Design. Prentice-Hall, 1979.