In Scrum, customers are only involved in product feedback and acceptance. In Extreme Programming, on-site customer is an important practice to ensure that the deliverable meets the customer's expectation. The "customer" in Extreme Programming is not the person who pays for the system, but the person who actually uses the system.
Responsibilities of on-site customers
The blog on Extreme Programming: Planning Game mentioned that user stories are from customers. Teams who have tried user stories will find that user stories are actually 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 lifecycle 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.
Benefits of on-site customers
The practice of on-site customers not only improve the communication efficiency between the team and the customer, but also help enhance cooperation and trust. Secondly, the small release allows customers to try the functions faster, so as to confirm the accuracy of the function developed in time.
How to implement on-site customer practice?
On-site customer can be started from the followings.
- Communicate at any time
On-site customers need to ensure that the development team and the customer can communicate at any time during the implementation, so that the customer can make business decisions in a timely manner to avoid delays.
- Scenario-based user stories
When talking with customers on user stories, use scenarios and layman terms to describe user stories, so misinterpreted in the "interpretation" process can be avoided.
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 do not have clearly product expectations and the development team needs to develop new products.
The value of Extreme Programming is to apply 12 best practices comprehensively in the project, rather than using one separately. For other practices of Extreme Programming, to be continued.