The five XP values are:
According to me XP values can be broadly classified into two value systems:
- People values
- Execution values.
People Values: Courage and Respect.
People values deal with the social dynamics of a team and individual team member‘s personality/attitude. We do need Courage and Respect to build an env suitable for task execution by the team.
Execution Values: Communication, Simplicity and Feedback.
Execution values affect the way team members work to get the job done. These values affect the XP practices the most. I think the first 3 XP values are redundant. In other words, values like communication and simplicity are actually just a means to get timely feedback. In concrete terms, Timely Feedback is the crux of the execution value system. Communication and simplicity are just means to get timely feedback.
Think about it,
Why do we need to communicate? So that the development team gets the feedback they need to build the right system.
Why do we need simplicity? Why does the design need to be simple? So that it communicates to people what we are trying to achieve. A complex design will not be effective at communicating and hence the team will not get the feedback they need when they are building the system.
Short releases, Continuous Integration, TDD, Pairing, etc are all different ways of getting the timely feedback from different aspects of a software project.
It is important to understand these value systems before we go out and have religious wars over XP practices.