Extreme Programming is not just about software development. The practices and values that are used to improve the outcome of software projects, also aim to improve ourselves.
[XP] is about being open about what we are capable of doing and then doing it. And, allowing and expecting others to do the same. It is about getting past our adolescent surety that “I know better than everyone else and all I need is to be left alone to be the greatest.” […] It is about the process of becoming more of our best selves and in the process our best as developers. And, it is about writing great code that is really good for business.
The XP philosophy is based on five values: communication, feedback, simplicity, courage, and respect. Each of these values is backed by a set of principles to reinforce and complement each other.
-
Communication
You and your team should be on the same page. Communicate often. If something is not working be quick to talk about it, and be honest.
-
Feedback
As we make progress on a project we get more information, which help us make better decisions. We should embrace change, and the best way to do so is with frequent feedback. Release often, talk with your customers, and reprioritize features by value over time.
-
Simplicity
Aim for simple solutions, not just in code but also in the release plan. The best way to release early and often is to reduce how many features are implemented in the first place. Do only what’s absolutely necessary to create the most value. Staying simple will also allow change.
-
Courage
Software development is hard. There are complex problems that might seem impossible to solve. Have the courage to take action. Also have the courage to speak the truth even if it’s unpleasant to hear. If you think you know best, have the courage to make your case and expose it. Do what you can to make a project succeed.
-
Respect
Care about your teammates, and care about the project you’re working on. We’re all equals, the contributions of each team member must be respected.
The principles and practices of XP are based on these values, and they should serve as guide when you are unsure of how to proceed. XP is about doing your best effort today, striving to do better tomorrow, and evaluating yourself constantly.
References
- Extreme Programming Explained: Embrace Change (2nd Edition).