Kent Beck, the founder of the Extreme Programming movement, says that XP is a community of software development practice based on values of simplicity, communication, feedback, and courage. Lets look briefly at these values and how they influence our approach to projects. After a look at the values, well examine XPs fundamental practices.
Some approaches to software development are quite complex, with many phases, rituals, plans, handoffs, and steps. XP, in contrast, is focused on being the simplest process that could possibly work. There are no required phases, documents, or steps. Your project situation may well require you to add in some of these complexity-adding elements, and if so, you must do them and do them well. To borrow the words of Einstein, an XP project should be as simple as possible, but no simpler.
Most projects have more than one person involved, and communication among these individuals is critical to project success, whether they are developers or some other kind of stakeholders. Extreme Programming emphasizes face-to-face, person-to-person communication. We make this emphasis partly in the spirit of simplicity, but mostly because two-way person-to-person communication is far more effective for reaching understanding and agreement than are colder forms of communication such as writing. You may find it desirable to document a joint understanding or agreement after the fact. Attaining that common view is most important, and that is far better done face to face when possible.
Complex efforts such as software projects work far better if we steer them frequently. Steering is a process of observing where we are and where we are heading, and making frequent adjustments. XP is full of practices that provide feedback. Face-to-face communication, already mentioned, provides for quick and effective feedback on how the communication is going. XP also uses extensive automated testing to provide feedback on how well the software is progressing, frequent delivery of running tested software to users to find out how well we are meeting their real needs, and short cycles of development to let us assess progress and accurately predict delivery time and contents.
Because it is rich in communication and feedback, XP fills project stakeholders with courage and confidence about how things are going. But XP also calls for courage in the first place: the courage to do simple things, to communicate openly and frequently, and to trust our fellow stakeholders on the project.
This is not blind courage; it is informed courage, created by simple feedback mechanisms and clear, open communication. Assessing our level of courage is a valuable flag that gives us feedback on how well we are performing our practices and how well we are living up to our values.
As an XP team goes forward, it strives always to make decisions in the light of these values. Team members adjust their practices, always, to have the best blend of simplicity, communication, feedback, and courage.