Extreme programming: the good, the bad, and the bottom line
Robert Lee Glass · IEEE Software · 2001
0 7 4 0 7 4 5 9 / 0 1 / $ 1 0 . 0 0 © 2 0 0 1 I E E E A h, Extreme Programming! It began as a kind of software counterculture collection of ideas. The subtitle of Kent Beck’s innovative book Extreme Programming Explained is Embrace Change, and Erich Gamma’s foreword to the book says “there is no doubt XP challenges some traditional big M [methodological] approaches.” But now, at least in some circles, XP is becoming the “in” way to develop software. It has evolved into a near religion, complete with advocates and even zealots, and with its own kind of (at least little) M approaches. It makes you wonder what the Loyal Opposition side of this issue should be. Is it pro-XP, because Beck essentially saw it as a radical new approach? Or is it antiXP, because its advocates are pushing it into (their view of) the software mainstream? I’ll do here what I think is the right thing to do with any methodology—disaggregate it and examine its constituent elements in isolation. (Undoubtedly, XP should be considered a methodology—Beck, in the second sentence of his book’s preface, calls it a “lightweight methodology.”) That approach also eases its way around the dilemma of what the proper Loyal Opposition position should be. There might or might not be an appropriate position on XP as a whole, but there certainly are appropriate positions to take on its elements. On the basis on my reading of Beck’s book, XP consists of