[Originally written in 2005. A little more polarizing than I would write it today.]
Extreme programming is a relatively recent software development process based on being “extreme”. Whether it will be thrown on the ash heap of history is unclear to me, but this essay is little concerned with that. XP is simply a process. It doesn’t ensure project success, nor does it guarantee project failure. Many of the negative reactions to XP are based in some disappointment over the individual principles involved. I don’t have particularly strong opinions on the principles and I suspect they range in value from highly effective to benign to mildly detrimental. But how those principles map to those values depends highly on the texture of the project they are being applied to.
Nevertheless, to me processes in and of themselves are not particularly interesting, so then why am I writing this essay? XP is a little bit different. Or more accurately, the advocates of XP are a little bit different. You see, the advocates are playing a game, preying on the misunderstandings between management and programmers to sell a product. The marketeers are no fools, they know what they’re doing. And the results of their actions are unlikely to be more successful projects, but instead fatter pocketbooks.