Somone recently asked me what I thought of Gerold Keefer's assertion that XP is harmful. My response went something like this:
I don't care what he thinks (Obviously) and yet I realize that's not terribly interesting or enlightening...
So, I will also offer why I don't care:
Even if I grant that Gerold understands XP (and I do not), and that is article is well written (it is), he seems to have missed the point of what a process is for:
I don't set out to do XP in order to make my projects work, I set out to make my projects work, and I just happen to find XP helpful in doing that. If I didn't I wouldn't do it. Since I do, he's wrong. I don't care if he or someone else believes that to be false, because its just a simple statement of fact: I focus on making projects work, and I find XP helpful in doing so, therefore XP is not harmful -- at least for those of us who are succeeding and using it.
The point may not be obvious, so I will spell it out: We (the people working on software) succeed (or fail), not our process.
Many Anti-XP pundits have it reversed (I suspect Gerold is one of them): They view XP -- and indeed any process methodology -- as being held up as a way to make projects work, and that is backwards to how success really happens. On the statement: "Practice XP (or any methodology) and you will get reliable software", I concur that this is a really harmful idea -- but its not what we XP advocates are advocating.
In short, Gerold is non-agile in that he views process as having a larger impact on a project's success than its people, and so interprets XP on those grounds. He and others like him see nothing -- or very little -- in the XP process definition that will make people successfully deliver, and dismiss as dangerously irrelevant the notion that people can make a project succeed using XP (and even more importantly, with less pain and overhead than they could with a process that he may be more comfortable with).
You can usually tell by their language which of these views someone holds. You'll note in the paper that Gerold is not in-effect saying "I would make these mistakes" but rather "others may make these mistakes." In that I agree with him -- but its true of any process. He wants a process (his process of course) that will make others succeed. Agilists believe this view of process is inherently flawed. No process makes you successful, but people who will succeed anyway can do so with a more or less painful process. XP is simply the best collection of practices I have ever found that are generally useful in addressing the problems I try to solve on each project -- but in the end, I succeed because of me and the people around me, not our process, which we readily change in response to our current challenges.
This Agile viewpoint so fundamentally changes the role of process that it is easy to see XP advocates -- many of whom themselves have yet to realize this difference -- as advocating a silver bullet that will make your software reliable.
So let me state it again for Gerold (and everyone else): we don't claim XP will protect us from the harmful, we claim that it aids the successful. Since Gerold has that backwards, and has thus has missed our point entirely, I don't care what his paper claims about how others may use XP, I am going to continue successfully delivering software, and using XP to do so.