Roles

Within a team we assign all the roles we need to support the agile process and to achieve the high level goals of the team. Teams will typically consist of 3 to 6 core team members with additional specialist roles as required. Often individual team members will take on multiple roles.

At end of each team shuffle meeting each team member will assign responsibilities to themselves from a list that covers all the responsibilities needed for highly functioning development team. This process creates some autonomy and ownership in a structured manner.

Below we discuss each role in a little detail.

Team Facilitator

The team facilitator handles the mechanisms of a sprint, makes sure all roles are filled and removes impediments.

When the following interactions are needed they will be facilitated by the Team Facilitator.

  • Standup
  • Plan Session
  • Retrospective
  • Development process expectations with the client

Prior to interactions the team facilitator will coordinate the following interactions.

  • Plan Session
  • Retrospective
  • Operational management meeting
  • Release
  • Sprint review
  • User acceptance process
  • Design sessions when needed

Coordination requires making sure there is good attendance by the correct roleplayers and that the environment for the interactions is adequate.

The team facilitator will keep an eye, or delegate and manage a view on support query SLAs. The team facilitator will communicate this information as is valuable to the team and the client.

Product Owner

Holds the vision of the product and prioritises future enhancements. Ensures that any new features are in line with the product vision.

For more on the product owner role, read here.

Lead Developer

The lead developer guides the team on a technical basis and ensures the integrity of new code written.

Typical functions performed by the lead developer:

  • Manage Code Quality
  • Perform Release
  • Manage Code Architecture

Developer

  • Programs new features and bug fixes.
  • Develops the requirement as per spec.
  • Adds necessary automated tests.
  • Performs dev testing of requirement as per spec where possible.
  • Reviews all code changes with another developer.
  • Demos changes to a manual tester.
  • Provides estimates during the plan session.
  • Demos selected assigned tickets to the client.
  • Handles comebacks on assigned tickets from QA and confirms they work on the QA environment.
  • Participates in design sessions when required.

Manual Tester

Ensures that code written satisfies the requirements of a new feature or bug fix.

  • Tests tickets as per acceptance criteria where possible.
  • Performs regression testing of specified impact areas on a ticket.
  • Performs negative testing.
  • Performs exploratory testing.
  • Participates in developer demos.
  • Signs off a sprint in QA.
  • Writes test cases.
  • Participates in design sessions when required.