Is Agile Rock or Disco?
Billy Hollis ponders agile's long-term fate.
- By Billy Hollis
When I was a teen, listening to 30-year-old music was distinctly uncool. Yet today's teens listen happily to music more than 30 years old. A bit after rock came the disco wave. For a while, it was wildly popular. The Rolling Stones and David Bowie did songs with heavy disco influences. But you don't find that many disco songs on "Guitar Hero" or "Rock Band," while you do find many vintage rock songs from a score of sixties rock icons.
Will agile methodologies fare as well as rock? Will we still be doing agile software development 20 or 30 years from now? Or will agile be the disco of this software era, fading in favor of something else in the next few years?
I don't know. I don't think anyone knows.
Agile has some interesting strengths. I think agile proponents are right on the money about a rapid feedback loop and having clear accountability for developers. I believe there are places where agile methodologies have dramatically improved the outcomes of software development efforts. But I don't think agile is perfect, nor do I think it's best for everyone.
Agile means different things to different people. I'm writing a short column and not a book, so I must, out of necessity, paint with a broad brush. I hope agile proponents will keep that in mind.
My first criticism of agile is the fanatic mentality of some proponents. In one of the first books about Scrum, "Agile Software Development with Scrum" (Prentice Hall, 2001) by Ken Schwaber and Mike Beedle, the authors claim: "Industrial process control theory is a proven body of knowledge that describes why Scrum works and other approaches are difficult and finally untenable." In short they're saying Scrum works and nothing else does. That's a sweeping and ridiculous claim. No matter how good Scrum is, circumstances vary far too much to make such an argument. Projects range in size and complexity, and developers vary in talent and temperament.
Let me say again that I think agile has many fine qualities and can lead to successful development projects. But that doesn't mean agile is perfect, or that it's the right choice for all projects. Here's what I mean:
The Patterns and Practices group at Microsoft is heavily into agile development. Don Smith is in that group, and, at a conference last May, he said, "It's hard to do agile without really good developers." I've heard variations of the same thing said from others.
But not all developers are that good. Therefore, if Don is right, then agile isn't for everyone.
I also think agile development still has areas where it can improve. For example, agile teams have a tendency to require a high level of experience and professionalism just to join the team. What about talented, but inexperienced, developers? Richard Campbell, of the Internet audio talk show ".NET Rocks," wonders if agile is compromising our supply of development talent by ignoring such developers. I wonder if agile is sowing the seeds of its own destruction by alienating a broad swath of new talent. I think agile practices could improve by formalizing mentoring beyond pair programming, which I consider a highly inefficient way of mentoring.
Finally, I wonder how much of agile development exists simply to make developers more comfortable. Most developers love to write code, and agile does a pretty good job of rationalizing why developers don't need to do anything else. Design? Code it with test-driven development. Requirements gathering? I've heard proponents of agile development say that the user doesn't know what they want until they see something, so you might as well get straight to coding. I'm sorry, but that's a cop-out. Users can tell you what they need if you know how to ask them.
Like everything else in technology, agile development must evolve. I hope it succeeds as rock music has; with many different styles that suit different tastes and circumstances. And I hope it sheds the elitism and fanaticism that I see in some proponents. Otherwise, it's more likely to share the destiny of disco.
Billy Hollis is an author and software developer from Nashville, Tennessee. Billy is co-author of the first book ever published on Visual Basic .NET, .NET Programming on the Public Beta. He has written many articles, and is a frequent speaker at conferences. He is the Regional Director of Developer Relations in Nashville for Microsoft, and runs a consulting company focusing on Microsoft .NET.