Wednesday, June 09, 2004

Another Anti-Extreme Programming Rant

Let me preface this rant by saying that I am more of a system-level programmer that a application developer or project manager (and hence don't spend a lot of time thinking about development methodologies), and I can't book meeting rooms or schedule meetings in Outlook, so clearly I am no Enterprise Architect. These are the simple observations of a bald-headed poorly-dressed C++ programmer from Cronulla.

Before laying into XP, it is important to recognize that it has introduced or formalized a number of great practices like continuous integration and unit testing. So, it is important not to throw the baby out with the bathwater.

I think XP is fundamentally floored in two key areas. The key weakness, and in my view a fatal floor, is the notion of a caring, interactive customer that helps guide a project. In most projects, this is a pure fairy tale. Most customers don't have the interest, energy or time to become intimately involved in a software project. They won't work with developer to tease out and flesh out the various stories that need to be implemented. And if a really eager customer does exist, it can be worse. These eager customers are a source of constant feature-creep, and even with all of XP's continuous integration efforts, there still needs to be a point where the code is frozen and functionality testing, help documentation, installation testing across target operating systems, and all those other mundane post-development activities takes place.

My second gripe, and this isn't a fatal floor, is that I find the dogmatic application of XP development with common desks, enforced work hours and compulsorary team programming to be a commune style situation, and like all commune style conditions, I think it is an attempt to work against human nature. I want to own a particular section of an application, and I want to take pride when it is done well, I don't want someone looking over my shoulder when I type, I want to customize the keystroke-combinations in my development environemnt, I want to take lunch when I want, I want to go out for a surf-ski on Wednesday morning and get to work at 8.45, not 8.30. The extreme XP style of coding looks similar to the Khmer Rouge ideal of happy peasants all working in an agrian paradise with the intellectuals (in this case, project managers and architects) designated superflous, and removed from the equation. I am not trying to link XP to Pol Pots extremes (that would be a strectch even for me), and are simply comparing it to the Khmer Rouge ideology here, not its horrendous implementation.

I find RUP, even though it isn't a prefect process (none are) to be the best way of getting quality software done in a timely manner.


Post a Comment

<< Home