Tuesday, September 9, 2008

Common Agile Project Roles

Common Agile Project Roles
There are several roles common to agile teams. Sometimes a person will take on several roles and sometimes several people may be in the same role. Each role is briefly described and common synonyms indicated for most. Some synonyms are inappropriate within the context of agile projects and some are inaccurate. The common agile project roles are:
Agile DBA. This person works closely with developers and technical experts to support data-oriented activities on team.
Architecture Owner. This person is responsible for the architecture of the system, or subsystem, that the team is working on. Architecture owners don't develop and then dictate the architecture, but instead they facilitate the identification of the architecture, actively help to implement it, guide the implementation of the (sub)system, and mentor developers in the architecture and in architecture skills. Also known as technical lead and architect (inappropriate due to the collaborative leadership nature of the role).
Developer. This person models, writes, tests, and documents the system. Also known as programmer (inaccurate due to the scope of the role).
Domain Expert. This person has expertise in one or more aspects of the domain. This includes support staff, business specialists, business executives, auditors, and the "gold owner". Also known as a subject matter expert (SME).
Independent Tester. This person performs continuous, investigative testing throughout the lifecycle to find defects that were not discovered by the development team's testing efforts. Also known as tester, investigative tester, and quality assurance (inaccurate due to the scope of the role).
Product Owner. This person represents the stakeholder community. They are responsible for prioritizing the requirements and are the primary source of domain information. Also known as customer, stakeholder representative, and end user (inaccurate as end users are only one of many stakeholders).
Team Coach. This person is responsible for keeping the team on track, for helping team members deal with problems, and for helping the team to secure necessary resources. Also known as team lead, Scrum master, and project manager (inappropriate as this is primarily a leadership role and agile teams are self-organizing).
Technical Expert. This is a person with expertise in one or more technical aspects of the system. This could be a security person, a build expert, a tool smith, a legacy data owner, an operations staff member, or many other technical roles. They are brought on to the team on an as needed basis for a short period of time, sometimes just a few hours or days, to help them address a technical issue. Also known as subject matter expert (SME).

No comments: