Team Roles and Responsibility Areas

I want publically thank Greg Gagne for generously sharing his original course materials with me.

This document describes various responsibility areas. Each team member must take responsibility for one or more areas. They have roles corresponding to the areas that they take up e.g. the Team Coordinator takes responsibility for the Teamwork area. Roles will last for the length of the quarter, however you are encouraged to switch roles periodically if everyone in the team is agreeable to it. Please inform the instructor of changes in roles, and also note the change on the Team Roster document.

 

Note that roles indicate responsibility for ensuring that particular concerns get addressed well, NOT that the person who has the role must do all the activities for the role. Thus it may happen that the team coordinator participates extensively in testing, while the testing coordinator helps to sort out configuration management problems. Assigning coordination responsibilities to a particular individual indicates that they must take leadership in ensuring that the objectives in that area are met as well as possible. The specific activities in each area may be done by any of the members on the team, based on knowledge and ability, allocated tasks and need. Ultimately, all team members share responsibility for the success of the project i.e. everyone is empowered to contribute in any area and any way they can.


As a team you may decide to equally share all roles, and this is an acceptable approach. However, your team must define a team coordinator.

 

It should be strongly understood that all team members participate in development and unit testing of their code.

 

Review the list of goals for your role(s) every week, and make sure that they are being met. If they are not being met, this is an issue that must be brought up and resolved.

 

Teamwork (Team Coordinator)

Teamwork focuses on effective cooperation within the team. The goals include:

 

The Team Coordinator may or may not serve as a “team leader”.

Capabilities needed: Work well with people: good communication, interaction and empathy (“understand where each person is coming from”). Creative problem-solving to resolve tough situations. Meeting facilitation skills.

 

Requirements Management (Requirements Coordinator)

If you do a great job of building the wrong product, all your effort is wasted. Hence requirements are critical to product success. Goals include:

 

Capabilities needed: User-oriented thinking and user focus. Good interaction skills. Preferably some knowledge of the problem domain.

 

Test Management (Test Coordinator)

Good test design and effective testing require considerable technical skill and creativity, and have a huge impact on project success. Goals include:

 

Capabilities needed: Excellent understanding of the requirements and design. Excellent development understanding (actually test coordination needs this as much or more than development coordination). Being systematic and organized. High technical creativity.

 

Configuration Management and Tools Support (Configuration Manager)

Configuration management is critical to the success of team efforts with multiple artifacts and releases. Goals include:

 

Capabilities needed: Familiarity with tools / willingness to invest large amounts of time in learning them well. An understanding of the challenges of concurrent development, and the concepts underlying configuration management. An interest in “finding easier ways to get things done”. A “support mentality” – enthusiasm to help other people to work more effectively.