Home Blog Articles Books About Me Contact Me ThoughtWorks

XP (Extreme Programming)

Over the last few years I've become very interested in the software process Extreme Programming. The process was developed by Kent Beck, a well known figure in the OO community. XP is a very different software process for several reasons. For a start, unlike most methodologies, it is a very lightweight process which doesn't demand large amounts of paper to make it work. Furthermore it has a strong emphasis on testing and incremental development: both of which are vital to successful projects

One of XP's most difficult areas is its emphasis on evolutionary design, where a software design is not planned in advance, but evolved as it is built. This is a process that makes active use of refactoring. While you can use refactoring with any software process, XP attempts to really take the most advantage of it.

XP is a very controversial technique, but I think its influence on software process will be profound. I also think that it should be high on your list of processes if you are running a project with up to a dozen co-located developers with uncertain or volatile requirements.

To find out more about XP the best starting point is Kent Beck's book. There's also quite a few sites on the web where you can find out more about XP. A good place to start is RoleModel's XPDistilled, or Jim Highsmith's cutter article on XP. Ron Jeffries and Don Wells both have good sites which try to give a fairly complete picture of XP.

Two recent books give more details on the mechanics of XP. Planning Extreme Programming talks in more detail about the planning processes within XP. Extreme Programming Installed talks about how XP was put into practice at a major project.

There's plenty of other web sites that provide information on XP. For ongoing discussion the best place to look at the moment is the XP egroup set up by ObjectMentor . Much of the original exploration and discussion of XP occurred on the wiki. Also worth a look is Bill Wake's set of "XPlorations" which discuss his experiences in learning about XP.

Although XP has grabbed most of the oxygen in this space, it isn't the only lightweight process around. My new methodology article gives an overview of the whole field of light methodologies and discusses my ideas on the rationale for these approaches and suggestions on when you should use them.

© Copyright Martin Fowler, all rights reserved