Guest Opinion

Is Agile Rock or Disco?

Billy Hollis ponders agile's long-term fate.

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.

About the Author

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.

Reader Comments:

Sun, Feb 8, 2009 GaryG Northern California

My team has been doing Agile for nearly a year now. It was brought in by managers - they had attended a conference, and got sold on the promise of Agile being able to deliver a "100% improvement in programmer productivity".

I'm very supportive of many features of Agile - especially, frequent builds, and frequent testing. Our code quality has improved as a result of these policies (which I had previously been advocating for without success).

However, we have achieved precisely nothing in terms of programmer productivity.

I'm also very concerned that Agile seems to have absolutely no interest in architecture or coding standards. In fact, Agile seems to beactively opposed to the idea of a "systems architect" role...instead assuming that each team will agree amongst itself what the best architecture is for the project at hand.

From my perspective, that is a recipe for disaster in the long-term, and denigrates the importance of the quality of intellectual property, in favor of "do it fast now".

Rock or Disco? Seems more like Disco to me.

Wed, Jan 14, 2009

I think this story was written because Bully was rejected by Agile Development teams

Fri, Jan 9, 2009 Ted Malone Colorado Springs, CO

This article brings an interesting point to light (will Agile survive the times) but I think the author misses a critical point; Agile is a mindset and not a process. Truly Agile development is adaptable, therefore *can* work with non-seasoned developers. I've blogged and spoken extensively on this subject on my blog at portal.sqltrainer.com

Mon, Dec 22, 2008

What mark said - it's hard to do any development without good developers. Instead of trying to figure out how to make do with not-so-good developers, we need to figure out how to turn those who can be into good developers, and how to encourage the rest to find a more suitable field in which to work.

The "software crisis" - the "shortage" of good developers compared to the amount of software that needs to be written - is an issue of supply & demand.

There is an inherent undersupply of good developers, but there is also an oversupply of demand as many clients just want variations on the same thing. If it is more profitable to be a good developer, those good developers will also (because it's what they DO) create frameworks and tools to help address the demand-side problems as well.

Mon, Dec 22, 2008 mark

"It's hard to do agile without really good developers."

It's also hard to non-agile without really good developers.

So, development isn't for everyone.

Add Your Comments Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above