Extreme Programming (XP)

Steven J Zeil:

Last modified: Dec 21, 2019


Extreme Programming (Kent Beck, 1999) is an agile approach characterized by

In this lesson we will explore these component ideas and how they combine into a cohesive development model.

1 Values

2 Principles

3 Practices


(Beck, Extreme Programming Explained, Figure 3)

We’ll focus on the primary ones in the upper half of this diagram.

3.1 Teamwork


Whole Team

Team size (Gladwell):

3.1.1 Sit Together

3.1.2 Informative Workspace

3.2 Energized Work


3.2.1 Pair Programming

3.3 Planning



“the word ‘requirement’ is just plain wrong. Out of one thousand pages of ‘requirements’, if you deploy a system with the right 20% or 10% or even 5%, you will likely realize all of the business benefit envisioned for the whole system. So what were the other 80%? Not ‘requirements’; they weren’t really mandatory or obligatory.”

3.3.1 Weekly cycle

Why a week? Beck suggests that it is a natural unit for teams to work in. Everyone focuses on Friday. It is easy to tell if you have fallen behind and need to re-allocate tasks or stories so that you will have something deployable,

3.3.2 Quarterly Cycle

Quarterly planning meshes well with traditional business schedules.

“Themes” help refocus team o nthe “big picture”.

3.4 Integration


Ten-Minute Build

3.4.1 Continuous Integration

3.5 Programming


Test-First Programming

3.5.1 Incremental Design