|Advantages of Extreme Programming
||25 Sep 04
(Source: Kevin Smith post to email@example.com) After a
couple years of pitching XP, it became very clear to me that XP has
different key advantages for different audiences. You’ll have to
decide whether to pitch to a single audience, or try to cover several.
For developers, XP allows you to focus on coding and avoid needless
paperwork and meetings. It provides a more social atmosphere, more
opportunities to learn new skills, and a chance to go home at a decent hour
each night. It gives you very frequent feelings of achievement, and
generally allows you to produce code that you feel good about.
For the Customer, XP creates working software faster, and that software
tends to have very few defects. It allows you to change your mind whenever
you need to, with minimal cost and almost no complaining from the
developers. It produces reliable estimates so you can coordinate your
For management, XP delivers working software for less money, and the
software is more likely to do what the end users actually want. It cuts
risk in a couple ways: 1) It allows you to "pull the plug" on
development at almost any time, and still have highly valuable code, and
probably even a valuable working (if incomplete) application. 2) It reduces
your dependence on individual superstars, and at the same time can improve
employee satisfaction and retention.
The biggest disadvantage: It’s hard. It’s difficult to get many
developers to accept the practices, and it takes a lot of discipline to
keep doing them all. Customers may not like the idea of having to be so
involved. Management may expect fixed-cost, fixed-scope estimates, which XP
teams often refuse to create (because they are usually incorrect with any
Also, certain people may feel their jobs are being threatened, particularly
architects, testers, and project managers. "Cowboy" coding
"superstars" may dislike the reduction in fame, attention, and
adreneline from "saving" the project at the last minute.