# Roles & Responsibilities

Shipping web software requires the effort of a lot of people. While each client and project is different, the general shape of a project team looks something like this:

# Stakeholder

Blanket term that usually encompasses various client stakeholders (ex: marketing, operations, support, dev team, etc.) and end customers (users of the client’s product).

# Product Owner

Typically a client-side stakeholder who takes responsibility for representing the direction of the project to other stakeholders. Must be able to…

  • Collect feedback from other client-side stakeholders.
  • Have the knowledge, authority, and respect to be able to make lasting decisions regarding the project.
  • Dedicate substantial time to participation in the agile process, including:
    • Backlog generation and prioritization
    • Answering questions about issues from the project developers
    • reviewing delivered work

Ultimately the project’s success or failure should be owned by this person.

# Scrummaster & Project Manager

Responsible for…

  • Managing communication around burn and remaining budget.
  • Resolving any communication difficulties between Team Members & Product Owner.
  • Unblocking blocked issues/developers

# Account Manager

Responsible for…

  • Being the client’s first point-of-contact.
  • Handling initial negotiations.
  • Creating and executing contracts, including project proposals, SOWs, and support/maintenance agreements.
  • Cultivating and maintaining the long-term client relationship.

# Technical Lead/Architect

Responsible for…

  • Selecting appropriate technologies and architecting the solution, with help from other Tandem personnel as needed.
  • Performing the bulk of technical QA work or delegating it to qualified team members.
  • Solving difficult development problems.
  • Helping unblock other team members on difficult problems.
  • Teaching other team members new skills.

# Developer

Responsible for…

  • Estimating tasks accurately, relying on experience, skill level, and historical data.
  • Developing the requested feature(s), and fully testing all work.
  • Pushing new work to the repository on a daily basis.
  • Verifying that all work passes continuous integration (CI) testing.
  • Following through with all pull requests to make sure they get merged before going stale.