XP Team (The Whole Team)
XP believe in cross-functional teams composed of diverse people who can fulfill all the team's roles.
XP teams sit together in an open workspace. The team also meets for daily stand-up meetings, an iteration demo, a retrospective, and iteration planning
XP Team consists of many roles:
Note: You do not have to be one person for each role - Some people can fill multiple roles.
1). On-Site Customers - Typically Product Manager, Domain Experts, Interaction Designers or BA
1. Release Planning
2. User Story Creation - Identify Features & Stories
3. Define Project Vision
4. Business Decision
5. Clarify Business Rules
6. Customer Test
7. Creating Mock Up.
8. Managing Risk
9. Playing Planning Game
10. Weekly Iteration Demo
Typically, product managers, domain experts, interaction designers, and business analysts play the role of the on-site customer.
2). Product Manager (aka Product Owner)
1. Maintain and Promote Product Vision
2. Generating Features And Stories,
3. Setting Priorities For Release Planning,
4. Providing Direction For The Team's On-Site Customers,
5. Reviewing Work In Progress,
6. Leading Iteration Demos,
7. Involving Real Customers, and
8. Dealing With Organizational Politics
In addition to vision, PM must have the authority to make difficult trade-off decisions about what goes into the product and what stays out.
She must have the political savvy to align diverse stakeholder interests, consolidate them into the product vision, and effectively say “No” to wishes that can't be accommodated.
3). Domain experts (aka SME)
Domain experts spend most of their time with the team, figuring out the details of upcoming stories and standing ready to answer questions when programmers ask.
For complex rules, they create customer tests (often with the help of testers) to help convey nuances.
4). Interaction designers
Help define the Product UI & create Mock-Ups of UI elements. Their job focuses on understanding users, their needs, and how they will interact with the product.
They perform such tasks as
· Interviewing Users,
· Creating User Personas,
· Reviewing Paper Prototypes with users, and
· Observing Usage Of Actual Software.
5). Business Analysts
On an XP team, BA augment a team that already contains a product manager and domain experts.
The analyst continues to clarify and refine customer needs, but the analyst does so in support of the other on-site customers, not as a replacement for them.
Analysts helps in clarifying & refining customer needs into 'Functional Requirement Specification'.
6). Programmers
The bulk of the XP team consists of software developers in a variety of specialties. Each of these developers contributes directly to creating working code.
To emphasize this, XP calls all developers programmers.
XP Include between 4 and 10 programmers. In addition to the usual range of expertise, be sure to include at least one senior programmer, designer, or architect who has significant design experience and is comfortable working in a hands-on coding environment. This will help the team succeed at XP’s incremental design and architecture.
Programmers spend most of their time :
· Pair Programming.
· Write Tests using TDD,
· Implement Code,
· Code Refactoring
· Incrementally Design and Architect the application.
· Keenly aware of technical debt.
· Effort Estimates, Suggest Alternatives
· Playing The Planning Game
· Maintain A Ten-Minute Build
· Use Version Control and
· Practice Continuous Integration
· Ensure Long-Term maintainability, by providing documentation.
7). Designers and Architects
They contribute by guiding the team’s incremental design and architecture efforts and by helping team members see ways of simplifying complex designs.
They act as peers—that is, as programmers—rather than teachers, guiding rather than dictating.
8). Technical Specialists
XP programmers are generalizing specialists - Database Designer, Security Expert, Or Network Architect.
Although each person has his own area of expertise, everybody is expected to work on any part of the system that needs attention.
9). Testers
Testers help XP teams produce quality results from the beginning.
They help customers identify holes in the requirements and assist in customer testing.
Testers also act as technical investigators for the team.
They use Exploratory Testing to help the team identify whether it is successfully preventing bugs from reaching finished code.
Testers also provide information about the software's nonfunctional characteristics, such as performance, scalability, and stability, by using both exploratory testing and long-running Automated Tests.
XP Automates Regression Testing rather than performing manual regression testing.
Note:
Some XP teams don't include dedicated testers. If you don't have testers on your team, programmers and customers should share this role.
XP believes rather than relying on testers to find bugs for programmers to fix, the team should produce nearly bug-free code on their own.
10). Coaches
XP leaders lead by example, helping the team reach its potential rather than creating jobs and assigning tasks.
To emphasize this difference, XP leaders are called coaches.
Coaches help the team start their process by arranging for a shared workspace and making sure that the team includes the right people.
They help set up conditions for energized work, and they assist the team in creating an informative workspace.
One of the most important things the coaches can do is to help the team interact with the rest of the organization.
11). The Programmer-Coach
· Senior Developers / Technical Lead / Architect
· They can even be Functional Managers
· also act as normal programmers and participate fully in software development
12). The Project Manager
Lack Technical Expertise. Help the team work with the rest of the organization.
They are usually good at coaching non-programming practices.
Hope this helps.
Regards,
Arun