Scrum teams are self-organizing and cross-functional. The cross-functional team’s competencies are sufficient to complete the full scope of work.
The Agile Manifesto says the following about teams:
“Scrum teams are self-organizing and cross-functional. The cross-functional team’s competencies are sufficient to complete the full scope of work. The latter should be understood as the whole range of work in combination with the optimal way of its execution, necessary for the implementation of business value.”
A cross-functional team normally implies roles:
- The Product Owner creates requirements, maintains a backlog, and plans releases;
- The Scrum master. One of the other team members usually combines this role. Scrum master monitors compliance with the Agile Manifesto, holds morning meetings, and helps resolve conflicts and obstacles;
- The Development Team consisting of programmers and analysts. The Agile Manifesto does not regulate how many roles there should be, however, there is a general recommendation on the composition. These are usually 1-2 system analysts and 3-5 programmers.
- The remote dedicated development team – in case of a large volume of software development tasks.
The total composition of the team with this approach is usually from 5 to 10 people. Moreover, the same person can combine some roles in the team. This is not the classic Agile approach, but it has recently been applied by some organizations. For example, in some companies there are no programmers and analysts, there is a general concept of an IT engineer, and it is believed that such a person can perform the role of a programmer or analyst, so at any time can replace his colleague in solving a task.
At the same time, if we talk exclusively about the development team, it is probably worth forming it from developers of different levels. An American company has conducted an experiment. Two teams were assigned to solve the same problem. One had 3 senior programmers, the other 1 senior and 2 middle developers. In the end, a team with developers of different levels made the project better and faster.
There is room for a developer of any level in the dedicated team.