Values, Principles and Practices
Reference for Extreme Programming (XP) values, principles and practices.
Values
The five core values of Extreme Programming are:
- 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 aka Continuous Delivery
- Nearly Zero Bugs
- Informative Workspaces aka Visual Management
- Team Retrospectives
- Eliminate Waste
Full List of Practices
- Domain Discovery
- User Stories
- Rules and Examples
- Ubiquitous Language
- Acceptance Criteria aka Definition of Done
- Cross-functional Teams
- Loosely Coupled Architecture
- Incremental Design
- Concrete Experiments aka Spike Solutions
- Fail fast
- Release planning
- Maximize Work Not Done
- Backlog refinement
- Estimating
- Iteration Planning
- Daily Stand-Ups
- Work in progress (WIP) Limits
- Automated Acceptance Tests aka Customer Tests
- Technical Coaching
- Pair Programming
- Simple Design
- Test-Driven Development aka Programmer Tests
- Continuous Refactoring
- Version Control
- Streamlined change approval
- Continuous Integration aka Trunk-Based Development
- Coding Standards
- Collective Code Ownership
- Ten-Minute Build
- Exploratory Testing
- Nearly Zero Bugs
- Test Data Management
- Frequent Releases aka Continuous Delivery
- Deployment Automation
- Database Change Management
- Monitoring and Observability
- Root-Cause Analysis
- DORA/SAFE Metrics
- Team Retrospectives
- Eliminate Waste
- Iteration Demo
- Real Customer Involvement
- Informative Workspace / Visual Management
- Work-In-Progress Documentation
- Documentation as Code
Other resources
See Martin Fowler’s article on Extreme Programming for a detailed overview.