The following article is a sample from the full BVOP™ Ultimate Guide and is part of the preparation for the BVOP™'s modern Agile Project Management Certification Program.
The Development team at Scrum has between 3 and 9 developers in total. The Scrum Master and Product Owner roles are not included.
That is, if the team has one Scrum Master and one Product Owner and Development team of three, the entire Scrum Team will be made up of a total of 5 participants.
If the Scrum Master role is also a developer, then that role will need to be included in the limit for the total number of members of the Development team. If the Product Owner role is also involved in product development and everyone is working together on Sprint tasks, then the entire Scrum Team will be a total of 9 people, not 11.
With a maximum of 9 developers, the entire Scrum Team will be 11.
Reasons for limiting the Development Team
This limit of a minimum 3 and a maximum of 9 participants is recommended due to the perception that less than 3 participants would have problems creating a product. With more than 9 participants, the team will be too large, and everyone will have difficulty complying with the rules and principles of Scrum.
Development Team and its physical location
The main idea for small teams is to achieve self-organization and quick communication, where team members actually place a physical environment (workplace).
However, these desired effects cannot be guaranteed with certainty. The Scrum Master role, as well as the entire Scrum team, must strive for speed and efficiency.
Globally, many organizations use remote teams and Scrum practices at the same time.
The effectiveness of communication and interaction between team members can be seen as diminished.
The Development Team in Scrum is self-organized and cross-functional
The main features of the Scrum Development team are self-organization and cross-functionality.
What does self-organization mean when talking about the team? This means that Scrum represents the idea that every member of the team should be active and make their own decisions instead of waiting for orders from management roles.
Scrum does not by itself provide clear instructions about self-organization, but it can be expressed in individual decisions as well as group team ones. Time optimization, work self-monitoring, and many other topics can all be taken into account.
Trust among team members is another factor that can increase the productivity of a team.
Competence is another important factor. If a team member has difficulty, then he or she should try to acquire additional skills, or work together with the team to do so.
The Scrum Master role has a significant influence on the self-organization of the team. Guidance, encouragement, and a notice of all these topics may be required to keep the team focused on their goals.
Indications for a self-organizing Development Team
The main indications that a team can be defined as self-organizing can be the following:
- The team does not have a specific person who makes decisions for everyone or orders others.
- The whole team takes responsibility for the work that is done.
- The team and its members choose their tasks themselves, without anyone else assigning them.
- There should be no situation where Scrum Master, Product Owner, or some team leader assigns tasks.
- All decisions and all teamwork are focused on achieving the Sprint goal.
- The entire team and all members estimate the time required to develop tasks.
- The team provides the work itself.
- The whole team keeps track of their progress and tries to go according to plan.
- The team inspects its work and makes the necessary improvements.
The cross-functionality of the team means that all team members and all their general skills are entirely sufficient for the development of the whole product without the need for severe external intervention.
- For example, if the product being developed is a mobile application, then the minimum Development team should probably include the following specialists:
- Developer, Mobile Technology (Mobile Development)
- User Interface Designer (UI Design)
- Quality Control Specialist (QA)
- System Support and Development Operations Specialist (DevOps)
In such a composition, the team probably can produce the product.
If the Development team includes the minimum eligible Scrum participants - 3 participants - then these three participants appear to be insufficient to develop the product.
If the complete skill set of the team is less than the total skills and qualifications required to create the product, the most common practice and the most logical step would be to form a team of professionals who have more than one professional skill.
To develop a mobile application with a team of three participants, if four areas of qualification are required, one team member must have more than one qualification.
Mobile Developer may have competencies to handle tasks such as servicing App Store operations, server setup, Cloud Spaces, or anything else that may need to be completed to deliver a fully operational mobile application, downloadable and installable.
Another option might be if the designer, for example, has all the skills and competence to handle all the QA work.
Responsibilities of the Development Team
- Creates the so-called Product Increment - product update and enhancement.
- Shares responsibility for creating a quality product, along with the Product Owner role.
- Shares estimated time to complete their tasks.
- Follows all Scrum rules and principles.
The entire Scrum team spends its time working on Product Increment and working on the planned User Stories until each User Story is ready and evaluated, for example, with Ready status.
When a member of the team is experiencing difficulties, or there is some obstacle to his/her work, he/she must notify the Scrum Master role.
The Scrum Master role should try to resolve the problem of the team member as quickly as possible.
If a person outside the team takes part in the work of a team member, contacts him or her, and in some way prevents him/her from performing his/her duties, the Scrum Master role should be involved in this case as well.
All members of the Development Team should try to remove their obstacles on their own, as they must develop skills in organizing and solving problems.
The Development Team needs to be protected
The Scrum Master role protects the team from outside interference and distracting and disturbing factors.
If a member of another team or business stakeholder wants something, some work to be done, or some assistance, the Scrum Master role must be involved and act appropriately and reasonably. If the situation is fragile, the Scrum Master role offers assistance as a contact person and explains that they will look into the case, and the team should remain focused on their responsibilities.
If external intervention involves a work request that needs to be done, the Scrum Master role seeks assistance from the Product Owner role that needs to take action. The Product Owner will, at its discretion, decide to add or ignore this request for new development to the Product Backlog list.
The Development Team must be united
Sharing product quality responsibility may not simply mean that the Development team adheres to the requirements and specifications of their tasks. The Development Team must be united in its practice and in finding the right development tools and tests and must be united in all its processes. A certain dose of product care would be a perfect complement to the quality product endeavor.
It is appropriate for the Development team to choose their working technologies and tools without outsiders requiring specific ones. This freedom of choice allows the Development Team to choose tools and technologies that can achieve better results than would be achieved with those imposed by outsiders.
The Development team is most knowledgeable about technology and expertise
The Development team is most knowledgeable about their skills, knowledge of technology, level of competence. The team is used to specific tools. When the Development team uses resources with which it has previous experience, the confidence, and calm of everyone is greater. Confidence can be a factor in increasing the overall quality of the product and reducing possible errors and defects.
The Development team is welcome to refuse work
The Development team is welcome to refuse to work on a particular User Story during a Sprint if some of the team members are convinced that there is something wrong with the specific User Story. In this case, the team members should discuss their concerns with the Product Owner role.
Possible irregularities in a planned User Story could be, for example, unclear or incomplete requirements, inability to fulfill, or any other aspects that would harm the product as a whole.
In this case, the Product Owner role must accept these comments, understand them, and take the necessary steps to improve or change the planned work (the User Story).
Estimating the development time required to complete a User Story
One essential part of the work of the Development Team is to determine the estimated development time of the User Stories planned for Sprint and, on this basis, to determine how much work they can do for an iteration (Sprint).
The team anticipates the effort required to fully complete the work required based on their experience, knowledge, practice, skills, as well as previous work done in the last Sprint.
There are two types of development time estimation. One type is time to complete tasks with accuracy — for example, one day or 4 hours. However, Agile practices recommend the use of relative values over time. The Development Team suggests time only as a guideline, not with accuracy. It is assumed that when estimating the required time for tasks, team members still have no idea how exactly they will perform their work and may lack specific details.
The fixed and always equal length of the Sprint provides the Development team with a measure of their finished work. Also, for future sprints, the work estimation is easier.
Supporting the Scrum Process
Each team member has the responsibility to follow and respect the Scrum process and to ensure that the other members of the team follow and respect the Scrum rules. This is a core responsibility of the Scrum master role, but the entire Scrum team should also support Scrum practices to some extent.
Everyone participates in Scrum events, does not miss them and ignores them, and is aware of the importance of the events and their participation.
Development team members always have an idea of what other team members are doing. The development team maintains the highest level of transparency and does not hide problems and shares information.
The technical knowledge and specifics of working on the product are also clear to everyone and shared. If a member leaves the team, the loss will be easier to recover.
Pair programming is another practice that is sometimes used by Agile teams when working on a technology or software product. Generally speaking, it is programming work, or any other kind of technical work, in which a senior and a beginner team member work together on a single task, from one computer, or any other kind of work tool.
Pair programming makes it easier for beginners to get into the matter quickly and easily, and everyone has shared knowledge of specific technical topics.