Extreme Programming (XP)

A flavor of Agile that takes the beneficial elements of traditional software engineering practices to “extreme” levels. It is characterized by:

  • Frequent "releases" in short development cycles
  • Programming in pairs or doing extensive code review
  • Unit testing of all code
  • Avoiding programming of features until they are actually needed
  • Flat management structure
  • Code simplicity and clarity
  • Expecting changes in the customer's requirements as time passes and the problem is better understood
  • Frequent communication with the customer and among programmers.