Agile Development Roles
There is considerable confusion about the various roles within an Agile development team these days. There are many titles available with little explanation of how they relate to Agile development. Amidst the confusion, here is a primer on the basics of Agile Development Roles.
There are three primary roles in Agile Development: Product Owner, Scrum Master, and Developer.
Product Owner
A Product Owner is responsible for defining the product vision, managing stakeholders, and prioritizing the product backlog.
Product owners conduct business analysis on requests made by stakeholders and develop the initial requirements. They then work with the developers to refine the requirements into user stories. Acceptance criteria are defined for each user story, which will be used to determine whether the deliverables meet the stakeholders’ needs. The product owner should then bring these user stories back to the stakeholders for sign-off. Once the stakeholders have approved the user stories, the product owner should prioritize them for development. After development is complete, the product owner will verify that the user story meets the acceptance criteria before delivering the product to the client. Often, product owners will provide documentation and demonstrations of the completed work for clients.
A product owner is a general role that multiple people can fill. Project managers may be the chief product owner, with roles such as technical project managers or business analysts reporting to them. Smaller projects may only have one or two product owners who perform multiple duties, while larger projects may have multiple people working in the product department. These individuals work towards the goal of a product owner, though.
Scrum Master
A scrum master’s goal is to facilitate sprints, remove roadblocks, and ensure that Agile principles are being followed.
Scrum masters are the glue that holds a development team together. They ensure that communication is progressing both up and down the chain. They maintain the project's forward momentum and remove any impediments that team members encounter. They conduct status meetings, including daily stand-ups, planning sessions, and retrospectives. They are also responsible for team agile education and training. Suppose someone has a question about anything related to the agile process, requirement confusion, or anything that is holding them up. In that case, the scrum master is typically the first person to be contacted.
Smaller teams may have asked a team member to take on dual responsibilities, allowing either a product owner or a developer to serve as the scrum master. This is doable, but not recommended, as it may present a conflict of interest. Sometimes, business and development interests do not always align, and the scrum master should try to remain impartial.
Developer
Developers are those responsible for building, refining, and testing the product. Developers may include programmers, quality assurance testers, database administrators, and development operations specialists (to name a few). Developers are the ones who architect and implement the product, based on the requirements provided. They are responsible for ensuring that the acceptance criteria are refined during planning, so there is no ambiguity about expectations for the final deliverable. They are also responsible for delivering the final product that meets all quality expectations.