logocopyright8trans.gif (1131 bytes)

whatisxp.gif (2534 bytes)

Extreme Programming, or XP, is a lightweight discipline of software development based on principles of simplicity, communication, feedback, and courage. XP is designed for use with small teams who need to develop software quickly in an environment of rapidly-changing requirements.

XP was developed by Kent Beck, who wrote the original book on the subject,  Extreme Programming Explained. Two new books will reach the market by October, Extreme Programming Installed, by Ron Jeffries (your host), Ann Anderson, and Chet Hendrickson; and Planning Extreme Programming, by Kent Beck and Martin Fowler.

Ultimately, any team's software development methodology needs to be customized to the team and their circumstances. No methodology is just a collection of rules to be performed in rote fashion, and XP - in spite of its famous rules - is no exception.

You will find two main divisions of XP writing here, and on the other sites we will point to. There are discussions of specific XP rules and practices, and there are discussions of the principles behind XP. Both are important. When a team is newly adopting XP, I recommend that they begin with the practices described here and in Extreme Programming Installed. These practices will tend to keep the team on track while they build up a grasp of the principles that form the basis for the practices. My colleague Don Wells, on the other hand, takes a gentler, less regimented approach to learning XP, and you should take a look at his site, www.extremeprogramming.org, as well as this one.

There are twelve key practices in XP, and we'll discuss them briefly here. Some of them are discussed in much more detail on this site, while others are barely touched upon. To provide input on this site, use the links on the home page. For further information on XP, try the links on our XP Links page. 

The twelve XP practices are:

The Planning Process, sometimes called the Planning Game.
The XP planning process allows the XP "customer" to define the business value of desired features, and uses cost estimates provided by the programmers, to choose what needs to be done and what needs to be deferred. The effect of XP's planning process is that it is easy to steer the project to success.
Small Releases.
XP teams put a simple system into production early, and update it frequently on a very short cycle.
Metaphor.
XP teams use a common "system of names" and a common system description that guides development and communication.
Simple Design.  
A program built with XP should be the simplest program that meets the current requirements. There is not much building "for the future". Instead, the focus is on providing business value. Of course it is necessary to ensure that you have a good design, and in XP this is brought about through "refactoring", discussed below.
Testing.
XP teams focus on validation of the software at all times. Programmers develop software by writing tests first, then software that fulfills the requirements reflected in the tests. Customers provide acceptance tests that enable them to be certain that the features they need are provided.
Refactoring.  
XP teams improve the design of the system throughout the entire development. This is done by keeping the software clean: without duplication, with high communication, simple, yet complete.
Pair Programming.
XP programmers write all production code in pairs, two programmers working together at one machine. Pair programming has been shown by many experiments to produce better software at similar or lower cost than programmers working alone.
Collective Ownership.
All the code belongs to all the programmers. This lets the team go at full speed, because when something needs changing, it can be changed without delay.
Continuous Integration.
XP teams integrate and build the software system multiple times per day. This keeps all the programmers on the same page, and enables very rapid progress. Perhaps surprisingly, integrating more frequently tends to eliminate integration problems that plague teams who integrate less often.
40-hour Week.  
Tired programmers make more mistakes. XP teams do not work excessive overtime, keeping themselves fresh, healthy, and effective.
On-site Customer.
An XP project is steered by a dedicated individual who is empowered to determine requirements, set priorities, and answer questions as the programmers have them. The effect of being there is that communication improves, with less hard-copy documentation - often one of the most expensive parts of a software project.
Coding Standard.
For a team to work effectively in pairs, and to share ownership of all the code, all the programmers need to write the code in the same way, with rules that make sure the code communicates clearly. 

There is much to read on XProgramming.com. 

  • XP Magazine includes various articles discussing aspects of XP, from practical, philosophical, and whimsical viewpoints.

  • XP Q&A answers questions people have asked here or on the newsgroups. If you have a question you would like to have addressed, please write the editor.

  • XPublications points to magazine and other external publications relating to XP that are available on the web.

  • XPractices must be read with caution. It describes the practices used by the C3 project, XP's first project. The team was very enthusiastic about XP, and the author of the writeup (your host) didn't always do the best job of describing what C3 did and why they did it. If some part of the writeup seems too extreme, check other resources before concluding that we're all crazy. It's just me.

  • XP Downloads will take you to links to testing frameworks for most of today's popular languages, based on Kent Beck's original Smalltalk testing framework, a good basis for the XP unit testing practices.

  • Extreme Programming Installed, on the home page, points today to a late draft of the book. When it is published and we get a clean copy, we will begin converting it to pages on the site. For best results, of course, you should buy several copies of the book.

Please check these links, and the other links on the site. There is a great deal of material here. We hope you will find it interesting and tantalizing, and that you'll want to learn more about XP.

Welcome!

Acknowledgements:

The primary XP authors: Kent Beck, Ken Auer, Ward Cunningham, Martin Fowler.

The C3 team, including Ann Anderson, Ralph Beattie, David Bryant, Marie DeArment, Margaret Fronczak, Rich Garzaniti, Dennis Gore, Brian Hacker, Chet Hendrickson, Doug Joppie, David Kim, Paul Kowalsky, Debbie Mueller, Richard Nutter, Adrian Pantea, Don Thomas, Don Wells..

... and Bill Rogers, wherever you are.