XP (eXtrem Programming)

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:


  • Simple
  • Frequent refactoring


  • 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


  • 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:
XPRegular Methodology
Working softwareComprehensive documentation
Customer collaborationContract negociation
Responding to changeFollowing a plan