Roles in Extreme Programming (XP)

Customer

As an agile methodology, Extreme programming was designed to help solve the business challenges and problems that arise during a software building process. The final product will have to be approved by the customer, so instead of waiting until then, Extreme programming incorporates the customer into the entire process.

An on-site customer is critical in all the stages of a software building process. He/she should be accessed easily not only to help the software development team but also be a part of the whole process.

Responsibilities of a Customer in XP

User stories

Write user stories and ensure the software’s intended functionality is covered by those stories. He/she will be responsible for the provision of the system requirements and will liaise with the developers, who will help him/her project the estimate in variables such as time.

Liaise with external stakeholders

In the entire process, a customer will be required to be the link between the project funders and the development team. He/she will be the link to the clients as well as the end users of the software. The primary concern for the customer is to create and maintain a budding relationship and also instill confidence in all the parties involved, more so the developers.

Prioritize

Be a key determinant in the release planning discussions. The customer will need to prioritize the stories and then determine which one is of more importance and that needs to be completed first. The customer’s role stretches even further as he/she will need to negotiate on the timing of the release and also select a user.

Set the bar for acceptance testing

The customer will need to provide the requirements of the system as per the business that will need to be complied with for the project to be acceptable. This helps the team of developers assess the product to see whether it’s ready for delivery.

Provide sufficient information to help finish a programming task

The customer will need to be always in contact with the development team to provide enough details and help decide which components are to be postponed in case of an overbooked project velocity for a given iteration.


All the above-stated roles of a customer, in an extreme programming process, point out to the fact that they will always carry a huge responsibility in ensuring that the project is a success. They should be willing and be able to commit lots of time to the project, from when it’s conceived to the very end.