agile3
Frameworks

Extreme Programming (XP)

An engineering-first agile framework: pair programming, test-driven development and very frequent releases.

2 min read · Practitioner

In 30 seconds

  • XP pushes good engineering practices "to the extreme".
  • Core practices: TDD, pair programming, continuous integration, small releases.
  • Built on five values: communication, simplicity, feedback, courage, respect.

The idea

If code review is good, review all the time (pair programming). If testing is good, test first (test-driven development). If integration is good, integrate many times a day. Extreme Programming takes practices that work and turns the dial all the way up.

Core practices

  • Test-driven development: write a failing test, then the code to pass it.
  • Pair programming: two people, one keyboard, continuous review.
  • Continuous integration: merge and test many times a day.
  • Small releases: ship working software in short cycles.
  • Refactoring and simple design: keep the code easy to change.
  • Collective code ownership: anyone can improve any part of the code.

Where it came from

Kent Beck developed XP in the late 1990s, and his 1999 book Extreme Programming Explained spread it widely. Beck was one of the authors of the Agile Manifesto.

XP and Scrum together

Scrum says how to organize the work but is silent on engineering. XP fills that gap, so many teams run Scrum events with XP engineering practices.

Myth vs reality

Myth · Pairing halves productivity.
Reality · Pairs often ship fewer defects and spread knowledge, which pays back.
Myth · XP is only for small teams.
Reality · Its practices scale; its pure form fits co-located teams best.
Myth · XP is outdated.
Reality · TDD, CI and refactoring are now mainstream; they came largely from XP.

FAQ

What are the XP values?

Communication, simplicity, feedback, courage and respect.

Do I have to adopt all XP practices?

No. Most teams adopt the engineering practices that address their biggest pain first.

How long are XP iterations?

Typically one to two weeks, with releases as often as the team can manage.