Extreme Programming (XP) is a set of 12 practices that enables a team to collaborate effectively to deliver working software closely aligned with current business needs within realistic, proven timelines. Project management transforms from crisis management into merely a series of business decisions, and all the participants have excellent visibility into the project. See Kent Beck's 'Extreme Programming Explained', Addison-Wesley 2000, IBSN 0-201-61641-6. (Chris H.)

Four Values





These four values guide the decision making process during an XP project and are meant to be practiced.

(Chris H.)

The Twelve Core Practices


The Planning Game or Planning

On-site Customer

Coding Standards

Simple Design



Collective Ownership

Pair Programming

40-hour Week or Sustainable Pace

Continuous Integration

Small Releases

(Chris H.)

Earlier Comments (unknown author)

Extreme Programming is a methodology for getting programs working quickly without suffering from "analysis paralysis". The basic tenets of Extreme Programming are:

Write your tests first

If you write your tests before writing your code, you already know what the code should do. Initially, your tests will fail, but then you write enough code to make the tests work.

Refactor early and often

Refactoring means improving the design of your code in incremental steps that don't change the results, and instead just make things neater and cleaner. This is where Python comes in. Dynamically typed languages in general are easier to refactor with. Python has the added advantage of good readability and this is key to refactoring. When you refactor you optimize for simplicity and readability.

Work in pairs to review design and code, and to get the collaborative juices flowing

Having people work in pairs encourages communication, which gets and keeps ideas flowing. This also discourages individual code ownership, and keeps the code reviewed continuously. Plus, with two people working together, many bugs get caught and fixed almost as soon as they're written.

Working together also allows you to validate that your ideas about testing and refactoring are really correct.

I'm just starting to learn about it myself, but a good description can be found at http://www.xprogramming.com/xpmag/whatisxp.htm.


ExtremeProgramming (last edited 2008-11-15 14:00:57 by localhost)

Unable to edit the page? See the FrontPage for instructions.