« You know you're a programmer when... | Main | Please Find Posted This Blog Entry »

October 31, 2006

Agile is a means to an end, not the end itself

Agile software practices are a tool. They're a means to an end, not an end themselves.

The goal of any project team is delivering business functionality with high quality and low cost. The manner in which you achieve these goals varies depending on the people you have on the team, the company's management structure and style, and the project's goals.

Just because the team is pair programming, adaptively planning, and driving development with tests does not mean it will achieve the business goal. If the team is programming solo and doing big up front design it does not mean the team will fail.

I advocate Agile practices; they are generally a better way to get software written.

Too often, however, Agile zealots insist that their ideas on how a project should be run must be unquestionably followed. They disregard the client's wishes, processes and management style. They do not consider the team members' abilities and wishes.

These zealots end up damaging the project more than they help. They strain relationships with the client and are too quick to change project practices.

Remember, you must always ask yourself: is this practice I am suggesting going to allow us to deliver more business value faster, cheaper, and with better quality? If the answer is yes, then talk to your teammates about making the change.

If they aren't appropriate, don't advocate the practice just because "it is Agile."

Posted by gsmith at October 31, 2006 07:14 AM

Comments

So these zealots aren't actually doing Agile right? So maybe they should be called misquided Agilists or something? By the way who are they and where can we find them to root them out?

Posted by: Jeff Santini at October 31, 2006 02:40 PM

Jeff,

I've been hearing a lot lately about agile zealots, and like you I've also wondered where they're all hiding. I work with companies that are interested in improving the effectiveness of their software development practices with the goal of delivering better business value. A lot of that involves helping people transition from traditional processes toward agile/lean processes in a pragmatic way. But until recently I haven't encountered anyone who resembles the extreme characterization of the agile zealot that appears with such frequency on blogs.

Until recently.

I met one the other evening, and if she is representative of the breed then we're going to be hearing a lot more about the zealots and the damage they're doing. I'll be blogging about the encounter in the near future. In fact, I'm thinking of doing more than just blogging about it, and putting together some sort of session for conferences and user groups to address the question of what we're doing wrong in the agile community, especially in our role as coaches and mentors, and how to correct it. I think that is a more productive approach than simply to make up a new buzzword that means what "agile" already means, like some people are doing.

Posted by: Dave Nicolette at October 31, 2006 05:55 PM