راـبــــ Definition of XP : XP is software development methodology which is intended to improve software quality
History of XP : This method was created by Kent Beck between 1996 and 1999, when he was working on payroll project for Chrysler
the concept of XP is to focus on :
Principles – Values – Practices – Goals Principles : a strong responsiveness to changing customer needs, teamwork, the quality of the work provided, the quality of the tests carried out as early as possible . Values : Extreme Programming (XP) is based on the five values : Communication : Communication plays a major role in the success of a project , it is imperative that every team member communicates daily with his colleagues as well as the client . Simplicity : the simplest way to achieve the result is preferred. The project team does what is necessary and requested, nothing more. A simple application will be easier to upgrade afterwards. Feedback : Each step of the project is sent as quickly and often as possible to the client so that they can test, give their opinion and validate the step. Each modification request is taken into account immediately. Courage: It takes courage to make certain changes such as trying a new technique , to tell the truth about progress and estimates , to refactor the code Respect : Respect for each member of the team and their work is essential. The management, the project team and the client respect each other Practices : Planning game: Planning is done in cooperation with the client. He creates scenarios for the jobs he wants to get. The team evaluates the time required to implement them. Then the client chooses the scenarios according to priorities and available time. Customer on site: the customer must be represented on site throughout the duration of the project. This representative must have a global vision of the result to be obtained and be available to answer questions from the team. Continuous Integration: When the job is completed, it is instantly integrated into the complete product. This is to avoid overload due to the integrity of all items before delivery. Tests facilitate this integration: when all tests are positive, repeatability ends. Small release: releases must be as frequent as possible so that the customer gives his opinion and the changes are quickly taken into account by the team. Metaphor : Eliminate technical speak Simple design 40-Hour Week testing: from the scenarios defined by the customer, the team creates test procedures which allow to check the progress of the development. When all functional tests pass, the iteration is complete Refactoring: the project is regularly improved Collective Ownership :the entire team takes responsibility for the whole of the project. Coding Standards Pair Programming : In Pair programing, the entire code is written with two developers at one machine. Conclusion : With the eXtreme Programming methodology, managers, project team and client work in collaboration. promotes team responsiveness and establishes continuous quality control, XP is not easy to apply and to master because it requires a lot of discipline and communication.