Monday, February 26, 2007

XP - Cult or Movement?

Today somebody posted a very interesting comment on my recent article about my experience with XP. He (or she) linked to an article called Extreme Deprogramming. The comment's author said it was "The most insightful take on XP", in his opinion. Well, the article is very entertaining indeed, so first of all I recommend that you read it if you promise to come back when you're finished...

The article finds that XP is a cult. Well, I totally agree. But than again - so what? All great movements that come to my mind started as small cults. For example <insert your preferred transcendent association>. I don't really know about anything but Christianity, but I believe that other religious leaders had a hard time being accused of cult leadership, too, when they started their business. Now of course I counter polemics with polemics - but hey, I'll flagellate myself later with my cult-colored whip.

Speaking about movements, don't forget emancipation, civil rights or the Internet. In the beginning it's always a few nerds with some crazy idea who build up a cult. And in the beginning nobody can say if it's going to be the next big movement or just an other flash in the pan that didn't beat Metcalfe's Law.

The article doesn't have a single argument against any XP practice. Funny, eh? The value of XP is judged purely by the author's perception of XP in the media. Can you tell if an apple is sweet without taking a good bite?

Apart from tagging XP a cult, which is true, the article raises some claims that are - let me put it bluntly: wrong. For those of you who favor polemics over reasoning, stop reading here.

Elitist Attitude
Cited from Extreme Deprogramming.
This is definitely a group of people who think they have got it, and that anyone else not similarly enthused is a laggard.
That knowledge of what is and isn't OK is seen to be held by a central authority and is not in the hands of the practitioners themselves [...]

Those citations give the impression that XP's great ol' ones are arrogant know-it-alls, who just want to make a lot of money. OK, they probably want to make a lot of money, but if you get involved with the extreme programming yahoo group, you'll see that they answer your questions patiently. Especially Ron gives away a lot of consulting time for free (or he is a quick writer). The community behind XP is caring, open-minded and welcoming, always reflecting upon their own flaws.

All or nothing
This all-or-nothing thinking is typical of cults. Members must display total dedication to the cult and its objectives, or they are labeled impure and expelled from the community.

I don't know where this insight comes from, but when I read the yahoo group for XP many people advice you to try to implement a practice only if you think it addresses a problem you have.

Most of the author's knowledge about XP seems to stem from the newsgroup I can only do some guesswork: Mayhap there are many agile zealots who don't have a clue of what XP is about and they manage to build up some weird image in open newsgroups. I can only recommend to take a look at the archives over at the XP group and lean more about the community.

The long term success of XP will probably depend a lot on whether it really works. To get the answer you can try it out for yourself. Apart from that only time can tell if XP will be a movement that changes the way we implement software systems or yet another hype.


  1. Oh, I don't know, I've been in the industry longer than XP's been around too (since '91) and I know lots of developers who work for lots of different companies, and most of them don't work in an XP shop, including me, but several do.

    If something strikes me as an obviously bad idea, but other people think it's a good idea, I try to find out why. I'm curious, and I have a healthy level of self-doubt and skepticism. For what it's worth, the XP projects I personally know about have all been successes, at least one of them spectacularly so, in particular because they succeeded after two other non-XP teams failed. (Appropriate skepticism: it could have been just because it was a better team of developers.)

    So who says a cult can't deliver good software? Being in a cult would be really annoying, I think, but at the end of the day I just want to deliver good software. If it's a cargo cult, of course, that's a different story. You have to be careful about that.

    I'm reminded of the grizzled veteran mainframe programmer who told me in '92 that OO was just a fad, and the whole thing was going to blow over in a few years. Every fad generates its naysayers, and zealots, books, conferences, hype... But similarly, every fad has some kernel of truth. I see it as my job as a professional to get to the bottom of it, to cut through the hype, not to fall for it hook, line, and sinker, or to make the equal and opposite mistake and dismiss it out of hand.

  2. Quoted from above comment: "For what it̢۪s worth, the XP projects I personally know about have all been successes, at least one of them spectacularly so, in particular because they succeeded after two other non-XP teams failed. (Appropriate skepticism: it could have been just because it was a better team of developers.)"

    So... better teams of developers prefer to use XP? Hmm, interesting. :)

    I'm only half-kidding here. Most of the very good developers I know aren't very big on labels, and don't generally call what they do XP (I personally don't like the "Extreme" label, and pick and choose which practices to apply based on my current context), but they will freely admit they use a lot of the XP practices, and get a lot of value from them. I sincerely believe one of the biggest benefits of running a project in an agile way is that it's a great way to attract a bunch of great developers. Just do your best to filter out the bandwagon-jumpers and buzzword-compliant drones.

  3. OK. I don't actually recall hearing any of them call it "XP". But I know they pair programmed in an open workspace, had 1-week iterations, close contact with a customer, and when I was brought in on a contract for a different project, I saw their iteration velocity table on a whiteboard in their room, covering about a year of development. I didn't see any index cards.

    Anyway, I agree. Good developers are not big on labels. Especially "extreme", which is a terrible misnomer. I also believe that it usually works out better to attract developers with agility than impose agility on an existing set of developers who may or may not be interested.

  4. XML-LMX,

    you compare XP to "crossing railroad tracks in front of an oncoming train". I can argument that this is a bad idea, because the train will hit you and the force will probably kill you in one way or the other.

    If you think of XP, what is the equivalent to the "hitting experience"? I'd be interested, because at the moment I'm trying to cross the railroad tracks ;-)

    I agree that the name "Extreme" is probably a bad choice from today's perspective. I was repulsed by it at first, too. Perhaps it wasn't such a bad idea in the last century?

  5. Extremme Programming is just good enough for f*ckin' people without any life, family or friends.
    F*ckin' boring thing, should not exist at all.