In this blog, I attempt to define a
scrum team structure for a co-located team and how the common project roles fits
within the scrum team. This is a guidance and actual team composition depends
on the project. The guidance is based on my experience with several scrum
projects and some common application of reading various agile / scrum books.
I suggest below team structure:
Role
|
Number
|
Comments
|
Scrum Master
|
1
|
100% as pure Scrum master, Or else,
At least 50% pure scrum master and 50% can be any other role.
|
Tester (a Team member role)
|
At least 1 per 3 Developers
|
100% from starting of project
|
Developers (a Team member role)
|
Max 6
|
With more than 6 developers you should consider breaking the
project in more streams and do Scrum of Scrum.
|
Product Owner
|
1
|
Coordinates requirements from n number of end-users / customers
and prioritize requirements
|
Max 6 developers – Where does the magic number 6 comes from?
– A team of six developers will mean total 6
dev + 2 testers + 1 scrum master + 1 product owner = 10 persons team. This is
just an appropriate size to be fit in a single room or that can be easily
managed with information flowing within all. Bigger the team size, it becomes
difficult to self-manage and coordinate, information flow becomes too big a
task requiring tools or formal processes. Scrum readings also suggests the
scrum team size to be from 5 to 9 team members. There are several dedicated
blogs which talks about issues with bigger team sizes.
The magic
ratio – 1 Tester per 3 developers? – This is a guidance and depending
on need you may have 1 Tester for 4 or more developers too. However, various
text suggests that this is the magic de-facto ratio.
Can we
have more than 1 Product Owner? – Yes you can, as long as they coordinate and act as one face for developers.
Scrum master Role: Scrum master removes impediments faced by team members, eg. Coordination with other teams for any dependencies. Another major role of Scrum master is to help team adopt Scrum processes, eg. Ensure that daily stand-ups are happening properly and regularly, user stories quality is up-to-date, etc. I propose a 100% committed Scrum master to start with. Later based on scrum maturity of the team, keep it at 100% or less but never below 50%.
Product Owner Role:
This is most important role, as a Product Owner (and not a scrum master)
decides the priority of features to be implemented. The product owner
represents the customers and end-users voice. This perspective is important. To
repeat, the product owner is business centric role and not development team
centric role.
Tester Role: Scrum or Agile team does analysis, design, development and testing at all times. Its important to have the tester role involved from the beginning i.e. from Iteration zero. Developers are the ones who writes unit tests, and testers are responsible for writing and executing functional tests (automation is desired and developers help can be sought here). Testers also assists Product Owners to come up with Acceptance tests and running the tests. Testers also performs test planning, and can also generate quality matrices if desired by Sr. Management. Main objective of Testers is not to break the system, and this is important. The objective of testers should be to help developers to prevent the defects.
Project / Team Lead: This is not a defined role in Scrum. Scrum teams are empowered, self-organizing, enabled to take team specific decisions and are self-managing. They do not need a lead. Also a Scrum master is not the Team Lead. Often Team Leads responsibility is to take decision in case of ambiguity which in Scrum is taken collectively by the entire team. In some setups, a Lead is a single point of communication with Customers, whereas in Scrum, all team members directly interact with the customer all the time. Leads are not required to assign tasks, in scrum, the team assigns tasks to themselves. Another responsibility of Lead is for management reporting which can be done by Scrum master or read the Project Manager Role description in this blog.
Project / Team Lead: This is not a defined role in Scrum. Scrum teams are empowered, self-organizing, enabled to take team specific decisions and are self-managing. They do not need a lead. Also a Scrum master is not the Team Lead. Often Team Leads responsibility is to take decision in case of ambiguity which in Scrum is taken collectively by the entire team. In some setups, a Lead is a single point of communication with Customers, whereas in Scrum, all team members directly interact with the customer all the time. Leads are not required to assign tasks, in scrum, the team assigns tasks to themselves. Another responsibility of Lead is for management reporting which can be done by Scrum master or read the Project Manager Role description in this blog.
Project Manager Role:
This is not a defined role in Scrum. In Scrum projects, you do not need a
Project Manager. However, I feel a project manager is of
great help. The role of Project Manager should be to prevent
team from external disturbances. Eg. To generate reports for Sr.
Management, for people management, assist in career growth / aspirations, etc.
Moreover Project Manager is aware of this projects impact to organization and
other projects within Organization likely to impact this project. This is not
often the perspective of Scrum master nor the Product Owner. Project manager, from
their project execution experience, gauge that something is not correct and can
point the team of the possible issues. Project Manager however should not
interfere with Team estimates or working style or any other aspect of project
development. In Scrum, if used, the project manager role is to support and not
a role with authority.
Architect Role:
If you need an architect for entire duration of the project, then, one of the
developers should be replaced with an architect (i.e. max 5 developers and 1
architect). If you do not need a full time architect, then consider adding an
architect for few iterations or else bring architect as per need. In such partial
allocations, keep max 6 developers and add additional architect for required
duration. In case of on-need basis inclusion, make sure that you have stories
that require architects intervention planned accordingly. Partial allocations
are always tricky and involves thrashing but at times may be the only option
available.
Business Analysts Role:
This is not a defined role in Scrum. However, just like you need an architect
for technical inputs, you may need a Business Analyst for requirements
gathering / analysis. A business analyst should never act as a layer between
Team and the Product Owner. A business analyst can assist the product owner to
form user stories or run acceptance tests and can help developers with
understanding business requirements. Organizations that are incapable of
identifying a Product Owner, or organizations working in an offshore scenario, assumes
a Business Analyst as a Product Owner. In such cases, a Business Analyst should
act as a real Product Owner, the one who prioritizes the requirements and takes
Business perspective and not developers view. Business Analyst is a specialized
skillset and is not a substitute for a Product Owner and organizations who fail
to employ a Product owner are in my view at a very high risk of developing a
product which no one needs.
UI Designer / Technical Writer / Database Specialist: Cross functional team does not mean
that a developer is expected to be the UI designer or a technical writer. These
are specialized roles. You need one, when you need one. Allocation of these specialized roles should be
considered in the similar fashion as mentioned for Architect Role in this blog. Having said this, when you have a specialist working in team, have the knowledge shared to all team members such that in absence of the expert, team members can pick up the work. Pairing or explicit sessions can help here. When required, the team members will help Specialists to accomplish tasks. A team of generalists is the preferred approach in Scrum teams than Silos of Specialists.
To conclude the blog with an example: Let’s
say you need a full time UI Designer and a full time Database Specialist and a Technical
Writer on need basis then the team structure will be –
- 1 – Scrum master
- 1 – Product Owner
- Permanent Team Members
- 4 – Developers (maximum)
- 1 or 2 – Testers (at least)
- 1 – Database Specialist
- 1 – UI Designer
- Technical Writer – On need basis
Hope this blog helps understand how a scrum team is structured. Consider this as a guidance which you will most likely refine based on the specific project needs.
What if the product is large and not possible with a team of this size. Check my blog on how to scale scrum teams via Scrum of Scrums.
No comments:
Post a Comment