Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way.
XP is about social change. It is about letting go of habits and patterns that were adaptive in the past, but now get in the way of us doing our best work. It is about giving up the defenses that protect us but interfere with our productivity. It may leave us feeling exposed. It is about writing great code that is really good for business.
Need both technique and good relationships to be successful.
XP is a stye of software development focusing on excellent application of programming techniques, clear communication, and teamwork.
- Philosophy of software development based on the values
- A body of practices proven useful in improving software development
- A set of complementary principles, techniques for translating the values into practice, useful when there isn´t a practice for a particular problem
- A community that shares these values and many of the same practices
- Short development cycles, resulting in early, concrete, and continuining feedback
- Incremental planning approach, which quickly comes up with and overall plan that is expected to evolve through the life of the project
- Ability to flexibly schedule the implementation of functionality, responding to changing business needs
- Automated tests written by programmers, customers, and testers to monitor the progress of development, to allow the system to evolve, and to catch defects early
- It´s not only create value for the customer. You can´t carry a lot of bagage and move fast. Technical knowledge necessary to be and outstanding team is large and growing.
XP embraces five values to guide developent: communication, simplicity, feedback, courage, and respect.
What matters most in team software development is communication.
Communication is important for creating a sense of team and effective cooperation.
To make a system simple enough to gracefully solve only today´s problem is hard work.
What is the simplest thing that could possibly work?
Eliminate complexity waste and avoid accidental compexity.
Achieving simplicity gives you that much less to communicate about.
Change is inevitable, but change creates the need for feedback.
XP teams strive to generate as much feedback as they can handle as quickly as posible. They try to shorten the feedback cycle to minutes or hours instead of weeks or months. Feedback contributes to simplicity.
Courage is effective action in the face of fear. Sometimes courage manifests as a bias to action. Sometimes courage manifests as patience. The courage to speak truths, pleasant or unpleasant, fosters communication and trust. The courage to discard failing solutions and seek new ones encourages simplicity.
If members of a team don´t care about each other and what they are doing, XP don´t work.
For software development to simultaneusly improve in humanity and productivity the contributions of each person on the team need to be respected. I´m important and so are you.
Communication, simplicity, feedback, courage, and respect aren´t the only possible values for effective software development. Those are the driving values of XP. Your organization, your team, and you yourself may choose other values.
Other important values include safety, security, predictability and quality-of-life. Holding these values as a team would shape your practices in different ways than the XP values do.
Values don´t provide concrete advice about what to do in software development. Because of the distance between values and practics, we need a way to bridge the gap beetween them. Principes are the tool we need.