Extreme Programming: On-site Customer

2021-10-19 20:41:38
Original 201
Summary : What is the on-site customer in Extreme Programming? Learn all about this and how you can use it to deliver your product faster.

Extreme Programming: On-site Customer 

Source: Freepik

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.

Source: ZenTao

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

  • Communication between customers and developers is efficient as they can communicate at any time during the development process.

    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.

  • Due to on-site customer practice, the oneness and cohesiveness of the team will be improved.
  • 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.

  • Acceptance test cases written by on-site customers are more effective if compared with those written by other people who do not have on-site customer practice.
  • It is not easy to build on-site customer practice, but on the other hand, on-site customers can shorten the release cycle and get faster feedback from users on their new functions. Since they sit together with developers, all team members can communicate directly to solve problems in time, which makes it easier for on-site customers to build a strong sense of oneness and cooperation among team members.
  • A short release cycle is achieved when on-site customers are involved in the development process because they provide feedback on new functions soon after their implementation.
  • The short release allows customers to try the function faster, to confirm the accuracy of the function developed in time.

    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:

  • 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 promptly to avoid delays.
  • Scenario-based user stories
  • When talking with customers on user stories, use scenarios and layman terms to describe user stories, so misinterpretations 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 does not have clear product expectations and the development team needs to develop new products.
  • Take on the role of customer
  • On-site customers need to take on the role of a customer during development, and not be involved in coding or testing. As such they should make business decisions for their department rather than technical ones. They must also write functional acceptance test cases themselves instead of handing them over to developers on the team.
  • Sit on the same site
  • 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.

  • Customer on-site regularly
  • If customers are not able to provide on-site customers regularly, they should try to have one at least once per iteration. It requires extra effort for customers because most of them are busy with their work and need to focus on developing use cases or acceptance test cases on their own. However, it is a good practice, which leaves the customers to make business decisions in time, and increases oneness among team members.

    Fig. 02. On-site customer in XP is treated as a team member who should be actively involved in the project.

    Source: Freepik

    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.


    See also
    Write a Comment
    Comment will be posted after it is reviewed.