advertisement
Extreme Programming: Documents, Artifacts, and Roles
Rather than documents, Extreme Programming (XP) relies mostly on oral communication, the code, and tacit knowledge. While oral communication works for a small team, bigger teams require documentation to be in place. This is also applicable in the case of systems that by nature, are high-risk and are audited for legal, engineering reasons, and/or software consistency. To deal with such issues, the following artifacts have to be more formally managed, recorded/preserved, and regularly re-visited, as part of a formal and traceable XP process.
- User story cards: These consist of paper index cards that contain short requirement descriptions. The user story cards do not contain a full requirement statement but are a commitment to further conversation between the customer and the developer. During this conversation, the customer and the developer come to an understanding of the requirements to be fulfilled. Developer resource estimates and customer priorities are also included on the card.
- Task list: Tasks represent visible features of a user story. The task list is a listing of tasks for user stories to be developed for an iteration. The resource estimate for a user story should not exceed the iteration duration. Programmers are not assigned tasks but rather volunteer for them.
- CR Cards: CRC stands for Class-Responsibility-Collaboration. The responsibilities and collaborators of classes are identified during a design brainstorming session involving multiple developers and are recorded on paper index cards. This serves as a basis for software design.
- Customer Acceptance Tests: The customer develops Customer Acceptance Tests which are textual descriptions and automated test cases. The successful conclusion of the test cases denotes the completion of a user story and the confirmation of customer requirements.
- Visible Wall Graphs: Posting progress graphs in the teamwork area encourages communication and accountability. The graphs usually depict the number of stories completed and test cases passed.
Roles in an XP Team
The important roles in an XP team are as follows:
- Manager: The manager owns the team and is responsible for the issues faced by the team. He or she forms the team, gathers resources, manages people and problems, and coordinates with external groups.
- Coach: The coach teaches the team about the XP process, intervenes in case of issues, and monitors the process. The coach is a programmer and not a manager and is also responsible for the process as a whole.
- Tracker: The tracker traces the estimates made by the team and provides feedback to improve future estimates. The tracker also creates visible wall graphs by collecting user stories and acceptance test case progress from the developers. The tracker is a programmer, and not a manager or customer.
- Programmer: A programmer writes tests, designs, and codes. They also refactor, identify and estimate tasks and stories.
- Tester: A tester helps customers write and develop tests. They also run functional tests, broadcast test results, and maintain testing tools. A tester can also be a programmer.
- Customer: The customer writes stories and acceptance tests. They also decide which stories are to be prioritized for a release and an iteration. As customer collaboration is essential for the project's success, a representative is selected from within the development organization. Occasionally, some customers are also involved in the team.
advertisement
Conversation
Your input fuels progress! Share your tips or experiences on prioritizing mental wellness at work. Let's inspire change together!
Join the discussion and share your insights now!
Comments 0