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.