The Agile Dictionary: E is for Extreme Programming

This is a sneak preview of an entry from Agile Learning Labs' newest publishing project, The Agile Dictionary.  Our mission: to craft succinct, state-of-practice definitions for common Agile terms, complete with origins and links to the most authoritative primary sources we can find for further information. We plan to beta test the definitions here on our blog, prior to publishing The Agile Dictionary 1.0 in print and online.

Many thanks to volunteers Angeline Tan and Tami Blake for their hard work as contributing editors, and to Jeff McKenna, who has bravely volunteered to serve as our first editorial advisor.

Extreme Programming (XP)

Definition:


An Agile software development methodology that emphasizes customer involvement, transparency, testing and
frequent delivery of working software.


The Extreme Programming canon includes a Customer Bill of Rights and a Developer Bill of Rights, and lists its core values as communication, simplicity, feedback, courage and respect. XP is a developer-centric methodology, and unlike Scrum, it prescribes specific coding practices like Pair Programming, in which two developers work side by side at a single machine, automated unit testing, and frequent integration. Another key
practice in XP is refactoring, or the continual improvement of design over many iterations.

 

The basic advantage of XP is that the whole process is visible and accountable. The developers will make concrete commitments about what they will accomplish, show concrete progress in the form of deployable software, and when a milestone is reached they will describe exactly what they did and how and why that differed
from the plan. This allows business-oriented people to make their own business commitments with confidence, to take advantage of opportunities as they arise,
and eliminate dead-ends quickly and cheaply. —
KentBeck

Etymology:

In 1996, Chrystler’s visionary CIO, Sue Unger, gave Kent Beck free reign to form a team to tackle the Chrystler Comprehensive Compensation System (C3), a large scale software project, using a handful of cutting edge methodologies around Object Oriented Programming and Pattern Languages that he, Ward Cunningham and others had been experimenting with as part of the nonprofit geek consortium, Hillside Group. Beck decided to seize the opportunity to “turn up the knobs” on
the project. He brought in his colleagues Ron Jeffries and Martin Fowler, and the project was developed in SmallTalk, an early object oriented programming
(OOP) language.

Primary Sources:

ExtremeProgramming.org

http://www.extremeprogramming.org

 

Extreme Programming Explained: Embrace
Change, by Kent Beck and Cynthia Andres http://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0201616416

 

Extreme Programming Installed by Ron
Jeffries, Ann Anderson, and Chet Hendrickson

http://www.amazon.com/exec/obidos/ASIN/0201708426/armatiesA

Extreme Programming Pocket Guide

http://oreilly.com/catalog/extprogpg/


C2.com wiki page on Extreme Programming

http://c2.com/cgi/wiki?ExtremeProgramming

 

C2.com wiki page on XP Roots

http://c2.com/cgi/wiki?XpRoots

Have a correction, opinion, or idea? Please do use the comments here to weigh in!

Share it!

Leave a Reply

Your email address will not be published. Required fields are marked *