# Extreme Programming (XP)
Extreme Programming (XP) is an agile software development methodology created by [[Kent Beck]] in the late 1990s. It emerged from the Chrysler Comprehensive Compensation System (C3) project and emphasizes technical excellence, continuous feedback, and close customer collaboration.
XP takes proven software development practices to "extreme" levels; if code review is good, do it continuously (pair programming); if testing is good, write tests first ([[Test-Driven Development (TDD)]]); if integration is good, integrate continuously ([[Continuous Integration (CI)]]).
## Core Values
- **Communication**: Team members talk constantly
- **Simplicity**: Build only what's needed now
- **Feedback**: Learn from code, tests, and customers quickly
- **Courage**: Make necessary changes, refactor boldly
- **Respect**: Value each team member's contributions
## Key Practices
| Practice | Description |
|----------|-------------|
| **Pair Programming** | Two developers at one computer |
| **TDD** | Write tests before code (see [[Test-Driven Development (TDD)]]) |
| **Continuous Integration** | Integrate and test frequently (see [[Continuous Integration (CI)]]) |
| **Refactoring** | Continuously improve code design |
| **Small Releases** | Release often in small increments |
| **Collective Code Ownership** | Anyone can modify any code |
| **Simple Design** | Build the simplest thing that works |
| **Coding Standards** | Consistent code style across team |
| **Sustainable Pace** | 40-hour weeks; no death marches |
| **On-site Customer** | Customer available for questions |
| **Planning Game** | Collaborative release/iteration planning |
## XP Lifecycle
```
┌─────────────────────────────────────────────────────┐
│ XP Iteration │
│ │
│ Plan → Design → Code → Test → Integrate → Release │
│ ↑ ↓ ↓ ↓ │
│ └── Feedback ←──┴──────┘ │
│ │
│ [Iterations: 1-3 weeks] │
└─────────────────────────────────────────────────────┘
```
## References
- https://en.wikipedia.org/wiki/Extreme_programming
- http://www.extremeprogramming.org
## Related
- [[Kent Beck]]
- [[Agile Manifesto]]
- [[Test-Driven Development (TDD)]]
- [[Continuous Integration (CI)]]
- [[DevOps]]