This page summarizes the key values, principles, and practices of Extreme Programming (XP).

Lean Software Development
Book Cover

Values

The five core values of Extreme Programming.

Communication

Simplicity

Feedback

Courage

Respect

Principles

I’ve slightly updated these principles based on my own experience practicing Extreme Programming:

Open, honest communication

Autonomous, self-organizing teams

Accepted responsibility

Work in small batches

Quality work

Rapid Feedback

Incremental Change

Continuously Deliver Value

Sustainable Flow

Build Trust

Honest measurements

Reflection

Continuous improvement

Primary Practices

The following list has been compiled based on my personal experience applying Extreme Programming:

Domain Discovery

User Stories

Loosely Coupled Architecture

Acceptance Criteria aka Definition of Done

Iteration Planning

Pair Programming

Test Automation

Continuous Integration

Ten-minute Build

Incremental Design aka Refactoring

Frequent releases

Nearly Zero Bugs

Informative Workspaces aka Visual Management

Team Retrospectives

Eliminate Waste

Full List of Practices

  1. Domain Discovery
  2. User Stories
  3. Rules and Examples
  4. Ubiquitous Language
  5. Acceptance Criteria aka Definition of Done
  6. Cross-functional Teams
  7. Loosely Coupled Architecture
  8. Incremental Design
  9. Concrete Experiments aka Spike Solutions
  10. Fail fast
  11. Release planning
  12. Maximize Work Not Done
  13. Backlog refinement
  14. Estimating
  15. Iteration Planning
  16. Daily Stand-Ups
  17. Work in progress (WIP) Limits
  18. Automated Acceptance Tests aka Customer Tests
  19. Technical Coaching
  20. Pair Programming
  21. Simple Design
  22. Test-Driven Development aka Programmer Tests
  23. Continuous Refactoring
  24. Version Control
  25. Streamlined change approval
  26. Continuous Integration aka Trunk-Based Development
  27. Coding Standards
  28. Collective Code Ownership
  29. Ten-Minute Build
  30. Exploratory Testing
  31. Nearly Zero Bugs
  32. Test Data Management
  33. Frequent Releases aka Continuous Delivery
  34. Deployment Automation
  35. Database Change Management
  36. Monitoring and Observability
  37. Root-Cause Analysis
  38. DORA/SAFE Metrics
  39. Team Retrospectives
  40. Eliminate Waste
  41. Iteration Demo
  42. Real Customer Involvement
  43. Informative Workspace / Visual Management
  44. Work-In-Progress Documentation
  45. Documentation as Code

Sources

Updated: