Extreme Programming (XP)
Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent “releases” in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.
Extreme Programming improves a software project in five essential ways;
- communication
- simplicity
- feedback
- respect
- courage
Core practices of Extreme Programming
- In this, every contributor to the project is an integral part of the “Whole Team“. The team forms around a business representative called “the Customer”, who sits with the team and works with them daily.
- Core Practices: Whole Team
- Extreme Programming teams use a simple form of planning and tracking to decide what should be done next and to predict when the project will be done. Focused on business value, the team produces the software in a series of small fully-integrated releases that pass all the tests the Customer has defined.
- Core Practices: Planning Game, Small Releases, Customer Tests
- Extreme Programmers work together in pairs and as a group, with simple design and obsessively tested code, improving the design continually to keep it always just right for the current needs.
- Core Practices: Simple Design, Pair Programming, Test-Driven Development, Design Improvement
- The Extreme Programming team keeps the system integrated and running all the time. The programmers write all production code in pairs, and all work together all the time. They code in a consistent style so that everyone can understand and improve all the code as needed.
- Extreme Programming is about team responsibility for all code, for coding in a consistent pattern so that everyone can read everyone’s code, about keeping the system running and integrated all the time.
- Core Practices: Continuous Integration, Collective Code Ownership, Coding Standard, Refactoring
- The Extreme Programming team shares a common and simple picture of what the system looks like. Everyone works at a pace that can be sustained indefinitely.
- Core Practices: System