The six team roles in the team model each have specific functions and responsibilities. This is true whether you fill the role with a single individual in a small project, or with a subteam whose manager oversees its role in the larger team. The following sections describe the role of each team member.
The Product Manager (or Product Management team) establishes and sustains the business case for the project, and plays a key role in identifying and setting priorities across the target audience. This includes ensuring that business expectations are clearly articulated and understood by the project team, and that the functional specifications respond to business priorities.
Product Management owns the vision statement for the project. The vision statement is an informal document that communicates the expectations and assumptions on which the project is based.
Product Management is also responsible for high-level project communications such as business projections, project costing, and contract negotiation. Product Management communicates the high-level milestones to the target audience and other team members.
The Program Manager or Program Management team "owns" the specification for an application's features and functionality and coordinates the day-to-day communication required to develop and deliver the application effectively and consistently within organizational standards.
Program Management has a key communication and coordination role, as indicated by its central position in the team model diagram. With input from other team leads, Program Management assists Product Management in articulating the vision for the project. Using this vision, Program Management drafts the initial version of the functional specification and is considered the keeper of the functional specification. Program Management is responsible for all activities associated with analysis, specification, and architecture.
Program Management is also responsible for defining how the project will interoperate with external standards, maintaining external technical coordination and communication, and managing the master schedule.
The Development team is responsible for delivering a responsive system that fully complies with the functional specification.
An important aspect of this role is active participation during the process of building the functional specification. Development works in parallel with Program Management to build proof-of-concept prototypes, while providing ideas on technical possibilities and exploring design options. When the functional specification is baselined, Development must be in agreement with Program Management regarding how the significant parts of the problem will be solved, and they become accountable for the development schedule.
A central concept in the team model is establishing a baseline as soon as possible and then managing changes to the baseline through formal change control. For example, Program Management will work with Development to baseline the functional specification as quickly as core feature sets can be agreed upon. Subsequently, Program Management has the responsibility to evaluate suggested changes while Development continues to validate and refine implementation options.
The Testing and Quality Assurance team verifies that the system complies with the functional specification. In keeping with the philosophy of zero-defect code, the Test/QA team is actively involved in the development process to ensure that quality is built into the product, instead of being tested into the product. Test/QA prepares the test plans, writes automated tests, and manages the bug tracking process. This role works independently but in parallel with development, and maintains checks and balances with the Development team.
The User Education team designs, develops, and publishes printed and online documentation, including instructional materials.
As the user advocate, the User Education team participates in the design and construction of the system and interface prototypes. It also takes part in the design and delivery of setup programs and procedures. User Education promotes and participates in the usability testing and subsequent improvement of product designs, and works closely with Program Management and Development to ensure that changes in the scope and design of the product are reflected in the documentation.
The Logistics Planning team manages a smooth transition from development to operations, ensuring a smooth rollout, deployment, and transfer to the operations and support groups. It works with Development leads to ensure that the system is packaged in a way that facilitates installation and administration.
Logistics Planning also coordinates with the operations staff to consider such issues as installation and troubleshooting, day-to-day administration (including Local Area Network and server management), disaster recovery plans, and version control strategy.
Logistics Planning members need to be very familiar with the organization culture and infrastructure. They need to understand the target implementation environment's performance issues, capacity planning considerations, and operations procedures.