Client satisfaction must be at the heart of any company strategy. In order to ensure that the clients are satisfied, it is essential to include them throughout the project implementation process and to work with them taking into account their requirements and changes. All the agile methodologies apply this principle. This is also the case with the Extreme Programming method or XP which guarantees that a delivered product or service precisely meets the client’s needs.
By following this method, your project team can be responsive to changes that occur at any time during the project lifecycle. But why Extreme Programming? It’s because this method is considered the most extreme implementation of the agile approach.
The first project carried out using the Extreme Programming method dates back to the 6 March 1996. Kent Beck, Ward Cunningham et Ron Jeffries developed and refined the method by working on the “C3” compensation calculation project at the American company Chrysler. The method was officially published in October 1999 in the book Extreme Programming Explained by Kent Beck.
Originally, the method XP was created for the IT and software development sectors. However, since then the method has led to the success of numerous projects at companies of various sizes and sectors around the world.
The principles of Extreme Programming are those of the agile approach but pushed to the extreme. This method supports collaboration between all participants of a project: project team members, clients, suppliers, contractors, etc. It is based on the iterative processes, meaning short cycles including tests, continuous exchanges with clients and deliveries. This way, the project team can quickly detect and eliminate errors as well as immediately implement the changes requested by the customers.
The XP method is based on 5 fundamental values:
- Communication: essential to the success of the project, it helps to quickly detect problems and resolve them as quickly as possible. It is about communication between project team members and with clients. Face-to-Face communication should be prioritised.
- Simplicity: “Simplicity is the secret to success.” André Rochette
In the XP method, simplicity is prioritised, and we only develop what is necessary and required at the moment T, nothing more. No need to try and anticipate, nor to get lost in incidental considerations. It will always be possible to evolve the product later on.
- Feedback: Regular tests of the product, short cycles and frequent deliveries enable detection of errors, receiving rapid responses and thus continuing to improve. It is essential that the project team and the client share their feedback as often as possible so that each demand for change can be taken into account immediately.
- Courage: Changes take courage. In fact, it takes courage to revisit what exists but doesn’t work, and recreate something new, adopt a new technique and completely change the organisation of a project. It also means having the courage not to give up and be persistent to succeed.
- Respect: this value includes both respect for others and self-respect. It is essential to respect the people you work with, whether they are part of the project team or not. The mutual respect contributes to the good atmosphere within the team and to its performance.
How does it work?
Five values of XP are broken down into three practices that build on each other.
- On-site client: to ensure rapid and regular feedback between the client and the project team, the client must have a representative on-site during the entire project. This representative is available for responding to team questions, proposing ideas and defining priorities.
- Planning games (or planning poker) : It is an organised meeting at the start of each new iteration. The team and client exchange on the work accomplished, share feedback and discuss the next tasks to be carried out. These are then assigned to the members of the project team.
- Continuos integration: The functionalities are integrated and carried out bit by bit to the project.This avoids an overload of work and stress to integrate everything into the project before delivery. Tests are essential: as soon as they are positive, the iteration is considered complete.
- Small deliveries: regular deliveries allow for more frequent client feedback and faster detections of possible errors so that they can be corrected in the next iteration.
- Sustainable pace: Nobody should be working overtime. If this is the case, review the planning. A tired employee will be less efficient and is likely to make more mistakes.
- Functional tests: These tests allow for the progress of a project to be checked. If they are validated, the iteration is completed.
- Unit tests: each functionality is tested to ensure that it will work as planned. They are checked with the same tests throughout the entire project. This type of testing, often automatic, helps to identify errors.
- Simple design: We avoid complication, we keep it simple and we go to the essentials by taking into account the client’s current needs, without anticipated anything. Each deliverable will be able to evolve in the next iterations.
- Use of metaphors: The project team and the client must speak the same language in order to understand one another and understand how the project and the final product work. Simple terms and metaphors can be used.
- Refactoring (or redesigning the project): The project and its functionalities are constantly being improved to avoid errors and provide an impeccable final product.
- Collective ownership of a project: the responsibility for the project is shared by the whole team. Each employee can improve functionalities, even those on which they have not worked.
- Naming convention: Make everyone’s work easier by using the same terms for everything related to the project.
- Work in pairs: two employees are assigned a task, a pilot and a co-pilot. This way of working avoids errors and provides better first-time deliverables.
The XP method applies the agile principles to the extreme. Simplicity, reactivity of the project team, regular feedback, integration of changes are the basis of this method. For the method to work, it is essential that all the project players work together, and, above all, the clients are fully involved in the project.