A logo showing the text blog.marcnuri.com
Español
Home»Quality Engineering»What is Extreme Programming (XP)? Values, Practices, and Why They Still Matter

Recent Posts

  • Fabric8 Kubernetes Client 7.7 is now available!
  • Superpowers: The Claude Code Skills Framework Shipped as Markdown
  • The Missing Levels of AI-Assisted Development: From Agent Chaos to Orchestration
  • Promoted to Senior Principal Software Engineer at Red Hat
  • Fabric8 Kubernetes Client 7.6 is now available!

Categories

  • Artificial Intelligence
  • Backend Development
  • Cloud Native
  • Engineering Insights
  • Frontend Development
  • JavaScript
  • Legacy
  • Operations
  • Personal
  • Pet projects
  • Quality Engineering
  • Tools

Archives

  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • October 2025
  • September 2025
  • July 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • August 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • July 2019
  • March 2019
  • November 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • December 2017
  • October 2017
  • August 2017
  • July 2017
  • January 2017
  • May 2016
  • December 2015
  • November 2015
  • December 2014
  • November 2014
  • October 2014
  • March 2014
  • February 2011
  • November 2008
  • June 2008
  • May 2008
  • April 2008
  • January 2008
  • November 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007

What is Extreme Programming (XP)? Values, Practices, and Why They Still Matter

2016-05-28 in Quality Engineering tagged Extreme Programming (XP) / Agile / Test-Driven Development (TDD) / Best Practices / Engineering Management by Marc Nuri | Last updated: 2026-05-12
Versión en Español

Introduction

Extreme Programming (XP) is a software development methodology that formalized disciplines many teams now take for granted: writing tests first, integrating continuously, pairing on difficult problems, and shipping in small increments. Kent Beck named it "extreme" during the late 1990s because each practice took something traditional teams already treated as a virtue and pushed it to the point where avoiding it became the harder choice.

More than twenty-five years later, the XP brand is quieter than it was at its peak. The practices, however, are everywhere, woven into how modern teams ship software, often without anyone calling them XP.

This is a practitioner's introduction to what XP is, what it asks of a team, and why a 1999 methodology still matters in 2026.

What is Extreme Programming?

Extreme Programming is a lightweight software development methodology Kent Beck shaped while working on the Chrysler Comprehensive Compensation (C3) payroll project from 1996 onward.

Beck distilled the team's working habits into Extreme Programming Explained: Embrace Change (Addison-Wesley, 1999); a second edition co-authored with Cynthia Andres in 2004 softened the tone and regrouped the practices.

XP was one of the methodologies in the room at Snowbird in February 2001 when the Agile Manifesto was signed. Beck, Ron Jeffries, and Ward Cunningham were three of the seventeen signatories, and the XP fingerprints on the manifesto are easy to spot: working software, individuals and interactions, responding to change.

What distinguishes XP from many other agile approaches is its insistence on concrete engineering practices. It is not only a way to plan work. It is a way to write software.

The Five Values

The 2nd edition leads with five values. They are the foundation underneath every XP practice:

  • Communication: prefer face-to-face over documentation; treat shared understanding as the unit of progress.
  • Simplicity: build the simplest thing that could possibly work, and resist speculative complexity.
  • Feedback: get signal as early and as often as possible, from tests, from production, from the customer.
  • Courage: tell the truth about estimates, refactor what hurts, throw away code that isn't earning its keep.
  • Respect: treat every contributor as essential to the team's success; quality work depends on healthy collaboration.

The practices serve the values. When practices appear to conflict, the values help decide what to do next.

The Principles

XP names fourteen principles in the 2nd edition. The ones I find myself reaching for most often in day-to-day decisions:

  • Humanity: software is built by people; sustainable pace and respect are not soft concerns, they are prerequisites for good work.
  • Mutual benefit: every change should benefit the writer, future readers, and the user.
  • Self-similarity: patterns that work at one scale (a method, a release) tend to work at others.
  • Improvement: perfection is unreachable; relentless small improvements compound.
  • Baby steps: small changes are easier to validate, understand, and reverse than large ones.
Extreme Programming nested feedback loops, expanding outward from Pair Programming (seconds) to Unit Test (minutes), Stand-up Meeting (one day), Acceptance Test (days), Iteration (one week), and Release (months)
Extreme Programming nested feedback loops, expanding outward from Pair Programming (seconds) to Unit Test (minutes), Stand-up Meeting (one day), Acceptance Test (days), Iteration (one week), and Release (months)

Each loop nests inside the next. Beck's argument is that a healthy team is one where signal travels freely across all of them: the seconds-long loop of pair programming catches what the minutes-long unit test misses, the day-long stand-up catches what the days-long acceptance test misses, and so on outward.

The 12 Practices

The 1st edition's canonical list of extreme programming practices is twelve, which group naturally (for our purposes here) into four bands. The 2nd edition regroups them as primary versus corollary, but the four-band reading still maps cleanly onto how most teams think about them today.

BandPractices
PlanningPlanning Game, Small Releases, On-Site Customer
CodingSimple Design, Metaphor, Coding Standards
TestingTesting / TDD, Refactoring
TeamPair Programming, Collective Code Ownership, Continuous Integration, Sustainable Pace

Each practice is small. XP's argument is that they compound: TDD without refactoring fossilizes, small releases without continuous integration is a coin flip, and pair programming without simple design just spreads the complexity around. The whole earns its keep because the parts reinforce each other.

Why XP Still Matters

Is Extreme Programming still relevant in 2026? The brand faded after the mid-2000s, but the practices won. The fingerprints are everywhere:

  • Continuous Integration → modern CI/CD. XP's "integrate many times a day, with an automated build and tests" is the seed of every modern delivery pipeline.
  • Small Releases → continuous deployment. Deploy-on-merge is XP's "release early, release often" with better tooling.
  • Refactoring as routine engineering work. XP helped normalize refactoring as a continuous activity rather than a separate cleanup phase, alongside Martin Fowler's Refactoring (1999), which gave the discipline its modern vocabulary.
  • TDD as a mainstream technique. Test-first development is not universal, but it became a central reference point in modern engineering practice because XP treated it as core.
  • Pair Programming, reborn remote. The post-2020 shift didn't kill pairing. It produced tools like Tuple and VS Code Live Share, plus a thriving async-pairing culture.
  • Collective Ownership → modern code review culture. Pull requests, mob programming, and "nobody owns this file" team norms are XP's collective code ownership reframed for distributed teams.

The methodologies that came after XP (Lean software development, DevOps, SRE) built on the same central idea: shorten the feedback loop, and trust the team to make small decisions often. Continuous Delivery (Jez Humble and David Farley, 2010) is the cleanest example. Read its opening chapters and you are reading XP, restated for the era of cloud deployments and feature flags.

Common Misconceptions

A few things worth getting out of the way:

  • "XP is dead." Not quite. Most teams shipping software today are practicing the XP methodology in everything but name.
  • "XP means pair programming all day." The practice is pair on the hard parts, not 100% pairing. Modern teams pair on tricky changes, design discussions, and onboarding, not on every commit.
  • "XP requires the full set or none of it." The original presentation emphasized how the practices support each other. The 2nd edition made the framework more flexible, distinguishing foundational practices from those that depend on greater team maturity.
  • "On-Site Customer is gone, so XP doesn't apply anymore." The literal practice rarely survives unchanged. The intent does: keep decision-makers close enough to shorten requirement and validation loops.
  • "XP only works for co-located teams." The original form assumed close physical collaboration, but many of its feedback mechanisms translate well to distributed environments with modern tooling and disciplined communication.
  • "Metaphor didn't make it." True. It's the one canonical practice that didn't translate into common modern vocabulary. Acknowledging that is part of what makes the rest credible.

Conclusion

A useful way to read XP today is not as a brand to adopt but as a vocabulary for naming engineering disciplines you already lean on. The values explain why the practices hold together; the practices explain how the values translate into daily work.

Follow any one of them far enough and it leads back to the same core ideas: shorten feedback loops, keep designs simple, collaborate closely, and make change safe enough to do often.

For deeper reading, Kent Beck's Extreme Programming Explained (2nd ed., 2004) remains the source text. Martin Fowler's bliki entry is the best single-page overview, and Ron Jeffries' site remains one of the most useful practitioner-oriented archives.

References

  • Kent Beck & Cynthia Andres, Extreme Programming Explained: Embrace Change (2nd ed., Addison-Wesley, 2004)
  • Extreme programming (Wikipedia)
  • Extreme Programming (Agile Alliance glossary)
  • Martin Fowler: ExtremeProgramming (bliki)
  • Ron Jeffries: What is Extreme Programming?
  • extremeprogramming.org (Don Wells's original site)
  • Jez Humble & David Farley, Continuous Delivery (Addison-Wesley, 2010)

You Might Also Like

  • What is Test-Driven Development (TDD)? A Practical Introduction
  • Conventional Commits: A Complete Guide to Better Git Commit Messages
  • Black Box vs White Box Testing: When to Use Each Approach
Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Post navigation
Windows: How to run PostgreSQL without installation (portable)Spring Data JPA + EclipseLink: Configure Spring Boot with EclipseLink JPA
© 2007 - 2026 Marc Nuri