Extreme Programming (XP)

Steven J Zeil:

Last modified: Sep 14, 2017

Abstract

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

 

Stories

“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