"XP Programming" Myth Debunked (long)

From: Andrew Rybenkov (arybenkov_at_hotmail.com)
Date: 01/30/05


Date: Sun, 30 Jan 2005 02:49:04 +0300


(I really apologize for so long post, just wanted bring to your attention:)

Matt Stephens, Doug Rosenberg "Extreme Programming Refactored: The Case Against XP", Apress 2003
- quite interesting book, - if you have some spare bucks (and have interest into XP) - get it.

Here some excerpts:

----------------------------------------
back cover:
The book is meant to provide an independent look at Extreme Programming. It is meant to cut through the marketing hype
of Extreme Programming and expose a number of weaknesses with this approach to software development. It tries to draw a
distinction between true "agility" in a software process and "fragility" inherent in techniques such as oral
documentation. Extreme Programming (XP) is a consummate mix of good goals, some good advice, and lots of bad advice. The
goals and the good advice draw people in; the bad advice can potentially cause projects to fail. The XPers' theory is
that when applied together, this mixture of rules will somehow magically be safe. XP therefore represents a high-risk
process, wrapped in a "feel-good" methodology. The marketing, hype, and earnest self-assurance of its authors will
convince many project leaders to try out XP on their next project.
----------------------------------------
Chapter 14 Scalability
14.1 Painting Over the Cracks: XP on a 50-Person Project

What really happens when XP scales up to large projects? In this section we analyze a case study of a 50-person XP
project (with the team referred to as ATLAS). The case study can be found online here:
http://www.xpuniverse.com/2001/pdfs/EP202.pdf.

The ATLAS project was conducted by ThoughtWorks, Inc., an XP “shop” and home of Extremo author Martin Fowler. In this
project, we see the circle of snakes really come to life.

Note that when Matt wrote the original “The Case Against Extreme Programming” article
http://www.softwarereality.com/ExtremeProgramming.jsp and introduced the circle of snakes a few years ago, he had not
seen this research. But, as you’ll see, XP breaks down in just about all the ways you would expect it to as projects
grow in size. In fact, some of the breakdowns would occur even on smaller projects.

The first thing to note about this particular study is that, after a year and a half of XP, the “code is definitely
worse than [when they] started.” Yet this is one of XP’s biggest selling points: that repeated refactoring supposedly
results in greater code quality. So, what went wrong?

Looking at the case study, it’s quite obvious to us that the circle of snakes broke loose. One practice slipped, meaning
that the next in line stopped working, and so on. The team, meanwhile, saw this as a sign that it needed to work harder
at applying the XP practices. (In the words of Boxer the cart horse from George Orwell’s Animal Farm, “The only possible
answer is that I was not working hard enough. I will work harder!” Or, to put it another way, “The only possible answer
is that I was not refactoring hard enough. I will refactor harder!”)

XP is simply an impractical approach to follow on medium- to large-scale projects. Even a medium-sized, 50-person
project like the one described in the case study quickly shows XP’s shortcomings. To apply XP’s practices effectively
involves tailoring it, resulting in something that the team might prefer to call XP, but really isn’t.
----------------------------------------

Chapter 2: Where Did XP Come From? (Chrysler Knows It Ain’t Easy . . .)
2.1 Overview of C3

C3, or Chrysler Comprehensive Compensation, was the XP “poster-child” project. Many of the claims about XP working on
larger projects were based on the reputed success of the C3 project. In fact, many of the people (Kent Beck, Ron
Jeffries, Martin Fowler, Chet Hendrickson, Don Wells) who wrote the XP books available on the market today worked on C3.
Most of the initial 2 years’ worth of hype about XP came from the purported “success” of C3. Quite naturally,
programmers who had no interest in doing design or documenting their work began jumping on the bandwagon. After that, XP
books started coming out by the dozen, and the whole thing gained an aura of respectability.

To claim C3 as a success when it was a failed payroll replacement project that got cancelled after 4 years is, we feel,
a total distortion of the truth. However, if you repeat often enough that a failed project was really a success, and you
say it with enough conviction and gusto, over and over again (the marketing term for this is proof by repeated
assertion, as in “Cigarettes don’t cause cancer”), then people will of course start to believe you.

If you look on the C2 Wiki’s Cthree Project Terminated page ( http://c2.com/cgi/wiki?CthreeProjectTerminated), you can
find a very interesting discussion about this project and the impression it left on the folks at Chrysler. The Chrysler
Comprehensive Compensation page ( http://c2.com/cgi/wiki?ChryslerComprehensiveCompensation) is also interesting.
Everybody should read these pages!
----------------------------------------

--
Andrew Rybenkov.


Relevant Pages

  • Re: Implementation Driven Design : Simply Relabelling Extreme Programming?
    ... > me that I was perhaps simply describing a subset of Extreme Programming. ... > between all design methodologies since modular programming: ... > - decrease code coupling ... refactoring but it doesn't specifically say how the refactoring should ...
    (comp.object)
  • Re: Best Coding Practice
    ... to Extreme Programming, of which refactoring is an integral component. ... deal with improving your code to meet new business requirements. ... I recommend to all that hasn't already read them, to check out books ...
    (comp.lang.php)
  • Re: [OT] Re: Best Coding Practice
    ... sides - what refactoring is, how it is used, have experienced the entire 'extreme programming' gammut. ... i have an INFORMED opinion while you not only have your head up your ass, you seem quite comfortable in leaving it there and speaking from it. ...
    (comp.lang.php)
  • Re: Essential Literature
    ... Gotta check the other one about refactoring. ... "Extreme Programming" contains some valids bits and pieces too. ...
    (borland.public.delphi.non-technical)