# 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.