Extreme Programming: On-site Customer
Extreme Programming: On-site Customer
In Scrum, customers are only involved in product feedback and acceptance. In Extreme Programming, the on-site customer is an important practice to ensure that the deliverable meets the customer's expectations. The "customer" in Extreme Programming is not the person who pays for the system, but the person who actually uses the system.
Extreme Programming (XP) is an iterative software development method that advocates frequent releases in short development cycles, which are one to four weeks long. This approach aims at quick delivery of software with good design and coding practices that produce a low defect rate. On the other hand, XP practices focus on teamwork, continuous customer involvement, and clear communication.
On-Site Customer is one of the practices in Extreme Programming (XP) that ensures that the deliverable meets the expectations of the user/customer. The "customer" here is not always who pays for a product or service; it's the person who uses it on a day-to-day basis. In a study, the on-site customer is a critical XP element and a determining factor to a project’s success.
Fig. 01.There are several roles in XP projects, each one with a certain set of activities to execute.
Responsibilities of On-Site Customers
The blog on Extreme Programming: Planning Gamementioned that user stories are from customers. Teams who have tried user stories will find that user stories are very simple. Compared with detailed functions, user stories are general descriptions, which means details need to be supplemented by communication between the developer and the customer. Therefore, in the life cycle of Extreme Programming projects, there should be at least one customer representative who will be responsible for clarifying user stories on-site, making business decisions, and writing functional acceptance tests to ensure the right functions are developed.
While the on-site customer is important in the XP process, it does not mean that customers need to sit on the developers' desk. The on-site customer should be responsible for clarifying user stories on-site, making business decisions, and writing functional acceptance test cases; they do NOT have to write code or explain how functions work!
With this practice, XP team members don't need to act as on-site customers themselves, which can help them to concentrate on the development process.
Benefits of On-Site Customers
The practice of on-site customers not only improves the communication efficiency between the team and the customer but also helps to enhance cooperation and trust.
In an on-site customer practice, there is a strong sense of belonging and cooperation because the on-site customers sit together with developers. In this way, all team members can communicate directly to solve problems in time. So having on-site customers not only improves communication efficiency between the team and the customer but also enhances trust among them as well as enhancing cooperation.
As you can see, the on-site customer is a practice that helps to improve the communication efficiency between developers and users as well as enhances trust among them, increases oneness and cohesiveness of teams, which eventually leads to a fast release cycle.
How to Implement an On-Site Customer Practice?
An on-site customer practice can be started from the following:
Ideally, the on-site customer is a member of the team and discusses use stories face-to-face with the development team. However, considering factors such as labor costs, it usually would not happen, and online communication is often used instead.
However, the on-site customer is meaningless when the customer does not have clear product expectations and the development team needs to develop new products.
On-site customers should sit on the same site as their development team, which will help to shorten the release cycle and get faster feedback from users on new functions. It is also easier for the on-site customer to build a strong sense of oneness and cooperation because they can communicate with each other directly to solve problems.
Fig. 02. On-site customer in XP is treated as a team member who should be actively involved in the project.
The Value of Extreme Programming
The value of Extreme Programming is to apply the 12 best practicesof Agile Development XP comprehensively in the project, rather than using one separately. On-site customer is a practice that can be implemented on its own, but it will have greater value when combined with the other practices. Development team members appreciate on-site customers because they build trust and oneness among them efficiently while giving timely feedback on new functions to users.
In on-site customer practice, customers need to sit together with the developer to communicate directly and solve problems in time. For on-site customers to work efficiently, on-site customers must have a clear understanding of XP team members' roles so they can use their knowledge and experience in collaboration.
To be continued for the other Extreme Programming practices.
What are the problems in your communication with on-site customers? Leave your comment below.