| |||||||||
Extreme Programming (XP) is a method in or approach to software engineering, formulated by Kent Beck, Ward Cunningham, and Ron Jeffries. Kent Beck wrote the first book on the topic, Extreme Programming Explained, published in 1999. It is the most popular of several agile software development methodologies.
The generalization of extreme programming to other types of projects is extreme project management.
Fundamental characteristics of the extreme programming method are:
These characteristics are only derivatives of principles that are known to be good, and are taken into extreme:
In general, Extreme Programming is believed to be useful for small teams under 12 persons. Some think it can be useful for larger teams while some consider the Rational Unified Process more appropriate in that case. However, XP has been demonstrated successfully on a team of over a hundred developers. It's not that XP doesn't scale, just that few people have tried to scale it, and XPers refuse to speculate on this facet of the process.
Extreme Programming also has its share of controversial aspects:
Most of the design activity takes place on the fly and incrementally, starting with "the simplest thing that could possibly work" and adding complexity only when it's required by failing tests. Unit-testing is a Crystal Light Methods from Alistair Cockburn