XP is an agile development methodology that is more and more considered as the de-facto standard.
It is defined by a list of strict rules listed below:
The 4 main differences of XP as opposed to heavy-weight methodologies are:
Design
- Simple
- Frequent refactoring
Coding
- Using standards
- Code unit tests first (test-driven development)
- Using Pair programming
- One integration at a time
- Frequent integrations
- Use proven technologies
- Maximum collaboration and communication
- Open space is a privileged environment
- Testing and cleaning regularly the code
Testing
- All code must have unit tests such as CUnit, CppUnit, JUnit or NUnit) (see the tools page)
- All code must pass the unit tests before releasing
- A non-regression test suite must be built
- A user-Acceptance test suite following customer's high-level requirements must be built
The 4 main differences of XP as opposed to heavy-weight methodologies are:
XP | Regular Methodology |
Individuals/Interaction | Process |
Working software | Comprehensive documentation |
Customer collaboration | Contract negociation |
Responding to change | Following a plan |