9.2.4.1 Extreme Programming—A gentle introduction
Extreme Programming is successful because it stresses customer satisfaction.
Instead of delivering everything you could possibly want on some date far in
the future this process delivers the software you need as you need it. Extreme
Programming empowers your developers to confidently respond to changing
customer requirements, even late in the life cycle.
- Simple Rules
- Planning
- User Stories
- Release Planning—Release Schedule
- Frequent small releases
- Project divided into iterations
- Iteration planning starts each iteration
- Managing
- Open work space
- Sustainable pace
- Stand-up meeting to start each day
- Project Velocity is measured
- Move people around
- Fix XP
- Designing
- Simplicity
- System metaphor
- CRC cards
- Spike solutions
- No functionality is added early
- Refactor
- Coding
- Customer is always available
- Code to agreed standards
- Code the unit test first
- Production code is pair programmed
- One pair integrates code at a time
- Integrate first
- Dedicated integration computer
- Collective ownership
- Testing
- All code must have unit tests
- All code must pass all unit tests
- When a bug is found, tests must be created
- Acceptance tests are run often