Fortunately, the Agile roles and responsibilities make it easy to create just such a project.
But let’s get some semantics out of the way first. Agile does not have roles as such. It is an overarching methodology within which frameworks define the day to day processes, roles and responsibilities which carry out the project in an agile way. The most popular of these frameworks is called Scrum. So popular, in fact, that the main roles of Scrum are often mistakenly taken as the roles of Agile. To be technically correct, Scrum is underneath Agile.
With that out of the way, there are four roles in an agile (scrum) project:
- Scrum master
- Development team
- Product owner
The first three make up the scrum team, which works together to create the product. The fourth is included because most projects have many other stakeholders, internal or external, that influence the project in various ways.
All of the roles are at an equal level, that is, none of these roles is the boss of the other three, including the scrum master. The scrum master, development team, and product owner work together to create working software.
The scrum master is not the project manager. Rather, they are experts in agile project management and seek to promote agility within the project. They coordinate the project information, develop the project roadmap, lead the daily scrum meetings, coordinate the formation and prioritization of user stories, manage the kanban (task) board, and lead the sprint review and retrospective meetings.
The scrum master’s primary task is to shield the development team from distractions, thereby becoming the lightning rod for project stakeholder issues and turning them into actionable user stories and tasks. These then get placed into the product backlog for prioritization into a future sprint.
Usually they are on the same pay scale as the development team, although they are often the most experienced member since they have studied agile project management in addition to their technical roles.
The scrum master has the following roles:
- Helps remove road blocks from the development team’s path
- Shields the development team from impediments to their productivity and distractions
- Fosters cooperation between the stakeholders and the scrum team
- Acts as a process coach, helping the project team and organization follow agile values and practices
The scrum master is a servant leader. They do not assign tasks to the development team in a traditional command-oriented fashion. Rather, they assist in assembling the product backlog and establishing its priorities so that the product owner can assemble the priorities for the next sprint (during the sprint planning meeting).
The scrum master measures project progress and estimates the amount of product which can be developed within the approved budget by measuring velocity, that is, the speed at which the development team is producing functionality.
The scrum master’s primary strength is the ability to influence. In most organizations there are many people and processes that push and pull on project members, creating distractions and affecting their productivity. There are also indecisive product owners, pushy salespeople, and stakeholders that impose their requirements on their own schedule rather than the project team’s. The scrum master must cut through the social, interpersonal issues and bureaucracy to ensure the development team is utilized to maximum productivity.
The development team are the people who create the product. They are in the trenches creating value, and this value must be maximized. Hence, development team members need to be separated from distractions and bureaucracy. The scrum master’s job is to take care of the distractions, but the development team must remain focused and spend their time on development.
The development team has the following roles:
- Determine their own development tasks from the product backlog. In agile, development teams are self-organizing and self-managing, and they prioritize items from the product backlog into the sprint backlog during the sprint planning meeting, rather than being assigned tasks by the scrum master.
- Communicate with the other members of the development team to produce the product as efficiently as possible.
- Seek to maximize multi-disciplinary knowledge and skills. Ideally, all members of the team should have all of the skills necessary to build the product, for example design, develop, test, integrate and document, but this is not always practical. Still, it should be an ideal that is continually strived for via additional knowledge.
The development team should ideally be co-located and dedicated to one project (i.e. not multi-tasking). However, if team members must be located in separate offices or spread out among several projects, the resulting inefficiencies must be recognized and expected.
The product owner is the software owner’s representative within the agile project. They attend daily stand-up meetings and decide what features and functionality will be included in the product. The product owner’s role in an agile project includes:
- Provide project strategy and direction
- Envision the completed product
- Understand end user and stakeholder needs
- Manage and prioritize product requirements
- Manage the product roadmap
- Decide on release dates
- Work with the development team
- Accept and reject work
The product owner should be confident in making decisions that drive the project in the right direction. If the product owner is not familiar with the final product or not confident in making strong decisions, the project will not succeed.
Although not part of the scrum team, other stakeholders are present on most projects who have an influence, either power over, or interest in, the project. These stakeholders must be taken into account as they can affect project success.
- The end user (in software, this is often separate from the product owner)
- The customer, or organization who takes ownership of the software
- I.T. people who maintain the product once its developed
- Customer support
- The legal department
Ideally, the scrum master must manage the stakeholders to ensure that the development team is focused on development, and if the stakeholders ever decide to go directly to the developers the scrum master should intervene.
With a strong knowledge of these 4 Agile (Scrum) roles you can create a project that’s a well oiled machine that gets the job done.