Let us take a detailed look at several XP roles desired to have in a team.
XP includes customer as an active member of the team. Customers’ role is to set requirements for the software. Because of the unavailability of the real customers, this role is obtained by the member of the organization. They coordinate the release planning defining what would be valuable for the important stakeholders. Customer has to have the knowledge of the software domain. Very often this role is obtained by the product owner, domain experts and business analysts. Advice is to take two on-site customers for every three programmers when starting XP.
Product manager or Product Owner:
Role of the product manager is one of the most important roles in the project team. Product manager knows the needs of the stakeholders; he knows the system and its priorities. He has a job to: maintain and promote the product vision, communicate to stakeholders, prioritize release’s planning, evaluate team progress and lead iteration demos.
Person that takes the role of domain expert has to have a wide knowledge of the software domain. He very often creates customers test by checking the boundaries cases. Domain expert analyse the details of the each user story.
Very similar role to domain expert is the role of business analyst. He clarifies and refines customer needs helping customers to think of the details. Business analyst is the liaison between developers and customers.
Technical specialists are experts in the technical domain. For example, database designer, security expert and network architect are the persons involved to get the best design of the specific technical software component. These roles are obtained by the programmers’ with an extra knowledge of the technical domain or can be assigned to part time members of the team. For example, an organization can have one security expert that sets the system security for multiple projects.
Interactions designers are responsible for creating attractive and functional user interface. They have a job to provide customer with the pleasant user experience. Knowledge of the user’s needs and habits is in this case the key of success. It is desirable that the role is obtained by the product manager or graphic designer. Also, programmer that has a sense for creating attractive user interface can take this role.
Programmers have a responsibility to find the most effective way to implement user stories: they establish coding standards and create code database. All the programmers are responsible to maintain and improve that database. While working they respect XP practices of pair programming, test-driven development, refactoring and incremental design and architecture. Programmers ensure the stability and maintainability of the produced software documenting the changes as required. XP team requires four to ten programmers with different area of expertise.
Designer and architects:
The role of designer and architect is very often obtained by programmers. In XP team everybody has to be aware of the processes and components, but if someone of the programmers has additional knowledge of the specific area he becomes a guide for it.
Testers assist in finding cases when the system might fail. They cooperate with customers creating wide variety of tests. Testers have to have creative but critical thinking, sense for the details and experience in creating tests is also welcome. It is recommended to have one tester per four programmers.
Coaches- The Programmer Coach:
The Coach role is very important at the beginning of the XP implementation. Coach leads the team to appropriate implementation of the XP concepts into the software development processes. After a while of practicing XP, coach is no more needed. XP teams become self- organizing teams which is also one of the assumptions.
Still, what is needed is the role of the programmer coach. Programmer coach is often senior developer with wide knowledge of the system and ability to lead people.
Role of the Project Manager can be obtained by the role of the Customer. Responsibility of the Project Manager is to communicate with the rest of the organization. Often he coaches the team with non-programming practices.
The Project Community, Stakeholders and Executive Sponsor:
Project community is every side affected by the project inputs or outcomes. They can have both material and non-material interests into the project.
Stakeholders are the specific subgroup of the Project Community that has interest in project’s success. They can be a group of users, managers, purchasers or executives.
Executive Sponsor is the ultimate customer. He is the one that pays and has a particularly important role in the project.