Extreme Programming (XP)
Kent Beck 1996
Kent Beck (1961-) developed the Extreme Programming (XP) methodology for software development between 1996 and 1999 while managing the development of a payroll software system for Chrysler called the C3 project (which was cancelled in 2000 when the company acquired Daimler-Benz).
Extreme Programming leverages disciplined communication and unit testing in order to overcome the resistance to the substantial refactoring (altering or re-writing) of code found in traditional software development projects. XP projects typically have little or no up-front design work, instead focusing on developing the most important feature of the system first in a quick iteration, followed by the second most important, then the third and so on. As the system progresses and new issues come to light, the code is ruthlessly refactored to take these into account, even if this entails completely re-writing it at each iteration. An extensive body of unit tests is extended and preserved through each subsequent iteration in order to support this process and quickly highlight problems with the refactored code. Though not specifically part of the process, pair programming is often used in conjunction with XP in order to further enhance test capability, provide a sounding board and head-off obvious programmer mistakes as they occur (one developer spots the other's mistake as it is made).
The Extreme Programming process of its very nature requires deep and constant interaction with the customer for the software being developed through every iteration, and has relatively high overheads. The payback is that projects have something to show much more quickly than is the case with most traditional development methodologies.