Scrum is a popular Agile product development framework. It offers a foundation using which business goals can be delivered in a collaborative and time-bound manner. The Scrum process actually begins when a client or a customer needs a particular product. The framework provides certain guidelines which have to be implemented in the planned and organized manner within the project so positive results can be availed.
There are three fundamental roles in Scrum.
1. The product owner – Owns the project on behalf of the stakeholders and project owners.
2. The scrum master – Ensures Scrum is properly implemented and the team does not face any problems during the project.
3. The development team – Carries out the actual development activity and “manufactures” the product.
Scrum team roles
The Scrum team roles can be briefly “summed” up as:
1. Product owner
The person primarily responsible for the project’s outcome i.e. its success and failure is the product owner. The PO conveys the stakeholders’ vision regarding the product to the entire team and ensures that members develop the product in accordance with the expectations of the project owners (stakeholders) and the end users. The PO leads the Agile team by example and outlines every activity in the project.
The primary responsibilities of the product owner include:
- Creating, maintaining, and prioritizing the product backlog in accordance with the business values of the user stories.
- Conducting sprint planning sessions and creating the sprint backlog so the development team can develop product features in the sprints.
- Designing or planning the daily sprints.
- Be available to resolve issues and problems as and when faced by the entire team.
- Make sure that bug-free and shippable user stories are developed through the product incremental cycles (sprints).
- Ensure that the team velocity is maintained in a consistent manner at all times.
- Participate in the sprint review and sprint retrospective sessions.
- Ensure that the project delivers a certain business value – at all times – even while product features are being developed by the team.
Scrum encourages self-organization. The PO should respect this Scrum principle and respect the team’s ability to micromanage the development activity. He or she should not interfere with the actual development process and let the team handle it on its own.
Moreover, the PO should not:
- Give direct instructions as to how the team should develop user stories.
- Not transgress his or her authority and make efforts to “manage” the development team.
- Add any additional user stories to the sprint backlog once daily sprints commence.
- Halt or terminate existing sprints (This can only be done in rare situations).
2. Scrum master
The main role of the scrum master is to be a perfect “team player” and facilitate Scrum proceedings. A servant-leader role is highly recommended for him or her.
The main duties of a scrum master include:
- Ensure that Scrum principles and rules are properly implemented in the project.
- Remove any problems or impediments faced by the team members.
- Ensure that daily sprints are properly conducted and the team makes sufficient efforts to deliver shippable functionality through the sprint cycle.
- Make sure that the entire Agile team follows Scrum – including stakeholders, other individuals, and groups participating in Scrum events or processes.
- Help the PO “achieve” the product vision as “seen” by the stakeholders.
- Aid the PO and the team during the backlog refinement sessions.
- Facilitate and uphold Scrum collaboration principles.
- Make sure that the team remains conversant with any recent updates and changes occurring in the Scrum process and in product backlog items – user stories.
3. Development team
In the Scrum process, the actual development of the user stories – product features and functionality – is carried out by the development team. Ideally, the team should include approximately seven members, plus or minus one or two members but not more than that. Generally, the team is composed of cross-functional members, with each member having more than one skill or expertise. A development team can consist of architects, software engineers, analysts, programmers, testers, QA experts, UI designers, etc.
For a team to be effective and productive it should follow certain common goals:
- Pursue a common goal or objective.
- Ensure user stories are developed on a consistent basis through the product incremental cycles – sprints.
- Make sure they develop “shippable” user stories.
- Adhere to the same or similar norms and rules (Everyone follows the rules – there can be no “exceptions”).
- Collaborate and work together.
- Share ideas and thoughts.
- Respect for each other’s work.