The Agile software development lifecycle (SDLC) was developed with a clear goal: rapid delivery of software builds through an incremental and iterative process designed to adapt and improve software quality from an end-user perspective. The goal is readily adopted by IT departments and shops, though the process framework is not always adequately adopted.
Organizations adopting an Agile approach may find themselves resorting to traditional/waterfall SDLC practices due to inappropriate distribution of Agile roles and responsibilities. So, let’s take a look at the roles that support Agile software development.
Roles in an Agile team
This article explores the roles and responsibilities within the Scrum framework for Agile implementation. Some key differences in Agile team building exercise include:
- The development of holistic teams with cross-functional expertise
- Domain specialists with a broad knowledge and view of the business aspects associated with their work areas
- Stable team structures that can iterate and improve the SDLC workflows on a continuous basis.
Agile teams are often comprised of the following key roles and responsibilities:
Let’s take a look at each.
The product owner represents the stakeholders of the project. The role is primarily responsible for setting the direction for product development or project progress.
The Product Owner understands the requirements of the project from a stakeholder perspective and has the necessary soft skills to communicate the requirements to the product development team. The Product Owner also understand the long-term business vision and aligns the project with the needs and expectations of all stakeholders. End-user feedback is taken into account to determine appropriate next-best action plans for the development throughout the project cycle.
The key responsibilities of a Product Owner include:
- Scrum backlog management
- Release management
- Stakeholder management
The Product Owner is knowledgeable of the backlog items added to the list as well as items selected for work. The Product Owner changes and sets the priority of backlog item list based on stakeholder feedback and project circumstances. The role also manages the release cycle planning to ensure that the development team can deliver updated project iterations on a continuous basis.
Finally, the Product Owner ensures that product development translates into value for the stakeholders. Communication with end-users, business executives, partners and the development team is therefore a key responsibility.
Team lead/Scrum master
The Team Lead or Scrum Master ensures team coordination and supports the progress of the project between individual team members. The Scrum Master takes the instructions from the Product Owner and ensure that the tasks are performed accordingly.
The role may involve:
- Facilitating the daily Scrum and Sprint initiatives
- Communicating between team members about evolving requirements and planning
- Coaching team members on delivering results
- Handling administrative tasks such as conducting meetings, facilitating collaboration, and eliminating hurdles affecting project progress
- Shielding team members from external interferences and distractions
The role is also responsible to manage external coordination with the organization and the Product Owner to ensure effective implementation of the Scrum framework. The responsibilities may include:
- Implementing changes
- Coordinating between stakeholders to find necessary resources
- Helping Product Owners optimize the backlog planning for optimum performance
The role of a Scrum Master is focused on attributes such as transparency across the Scrum Team, self-organization, commitment, respect and most importantly, following an empirical process to identify the best approach for product development.
Development team members
The team members within the Development Team are comprised of individuals with responsibilities including but not limited to product development. The team takes cross-functional responsibilities necessary to transform an idea or a requirement into a tangible product for the end-users. The required skills might be wrapped up in one or more dev team members:
- Product designer
- UX specialist
Not every member may be an engineer, but may be a part of the team if their skills are required for the project to proceed at the required pace.
In addition to the skills facilitating product development, the team members should also boast soft skills that would enable them to self-organize and get the work done. This means that when an issue occurs, the team is both capable and empowered to take corrective actions.
The key responsibilities of the Development Team is to perform work sprints as per the requirements provided by the Product Owner and coordinated by the Scrum Master. A regular standup meeting called the Daily Scrum is followed to communicate project progress with the peers and the Scrum Master. This activity ensures transparency and allows the Development Team to incorporate the changes as necessary in future sprints based on feedback from the Product Owner.
The Stakeholder position may not be directly involved in the product development process but is used to represent a range of key roles that impact the decisions and work of the Scrum team. The stakeholder may be:
- The end user of the product
- Business executives
- Production support staff
- External auditors
- Scrum team members from associated projects and teams
Input from the Stakeholders is key to direct the progress of the project in different directions to align product development with business goals, end-user expectations as well as addressing challenges facing the Scrum Development Team.
Additional roles for larger Scrum projects
In addition to these typical roles of the Scrum team, large enterprises working on large projects may include more roles into the Scrum teams. These can include:
- Technical and domain experts with the knowledge of technology as well as a wide variety of stakeholder requirements or expectations.
- An independent testing and audit team may join the Scrum team members and work throughout the product development lifecycle.
- An Integrator may be required among large teams that work on independent but closely coordinated subsystems for a project. The responsibility for the Integrator would include integration of the subsystems as well as testing that may be performed by external testing teams.
- An Architect Owner may be required for architectural envisioning, planning and decision making.
Both the Integrator and Architecture roles may be present in multiple sub-teams working on multiple connected sub-systems of the project.
In summary, the roles in the Agile methodology and specifically the Scrum framework should be seen from the perspective of responsibilities. These roles don’t reflect job titles and should not be treated as such. The Scrum responsibilities should be distributed among existing team members assigned with the tasks to follow project management activities as well as technical issues using the Agile principles.