Updated: Mar 2, 2022
The Scrum development team is a collection of cross-functional capabilities (developers, testers, designers, etc.). These individuals work as a single "Self-organized" unit that will deliver the work they collectively committed to delivering within a sprint.
The effectiveness of a development team is determined by their ability to work together as a unit towards a common goal and vision, defined by the Product Owner. These factors are critical in any methodology, particularly in the Scrum process, which embraces collaboration and respect among team individuals.
What Should Be the Size of the Scrum Team?
Scrum development teams are self-organized, with an ideal size of 7 +/-2 members. If the team size is larger than the maximum suggested size (nine members), communication becomes less efficient and will not allow the team to realize their true potential.
To avoid adding resources to handle the workload that doesn’t work in most scenarios (An excellent book that can explain it is "The Mythical Man-Month" by Frederick P. Brooks Jr), we must not make the mistake of creating one large development team. It is better to split the team into multiple independent development teams that collaborate and synchronize to achieve the project goals.
The Responsibilities of the Scrum Development Team
The Scrum development team is accountable for its actions and deliverables. It could be that each team member may have a specific skill, but the whole team is responsible for collaborating to achieve a common goal. In addition to delivering a quality product, a team also has the following responsibilities:
Report any impediments affecting their progress.
Constantly improve the process, work environment and the quality of their deliverables.
Collaborate with the Product Owner to set the sprint goal, add technical stories and update the product/sprint backlog as needed.
Attend and contribute to different Scrum events (daily, review, retrospective, etc.).
Reflect on their real progress consistently.
Estimate, create tasks and commit to the workload they deliver during a sprint.
The Characteristics of a Scrum Development Team
The following defines the main characteristics any Scrum development team should have:
Use Scrum events only when needed
This is relevant only to advanced Scrum development teams that will use Scrum events (limited in duration and performed at specific times) as opportunities for conversations, synchronization, planning and making the right decisions.
Collective ownership is a fact, not a slogan.
Collective ownership is probably the most common characteristic among successful Scrum development teams. It means that all team members are equal, and there is no need to define specific roles within the team. This is because each team member possesses the same sense of ownership and will equally contribute to the project's success.
Having some slack time
One factor can be seen in many successful Scrum development teams. A team can find the slack time that is already overloaded with commitments and day-to-day pressure within their sprint. Slack time allows the team to relax, increases motivation, and helps keep performance at the highest level.
Can deliver features earlier and continuously
The basic Scrum process is well known. The team commits to delivering specific user stories at the end of a sprint. Great teams can continuously deliver their commitments earlier than the time committed.
Do not need a Definition of Done (DoD)
Definition of Done is used to ensure that each user story/Feature is delivered based on specified standards. Great teams understand what DoD means. Therefore, they can deliver their products at the highest level without creating and following a written DoD to establish a standard.
The whole team is responsible for the product backlog
Truly successful teams understand that the product backlog is the foundation of the entire project and that keeping it in good shape is crucial to their success. Therefore, they collaborate with the Product Owner continually to ensure the PO receives all the help needed to maintain the product backlog in the best possible way.
Team members share knowledge and experience.
You can determine how well the team is performing simply by looking at the knowledge sharing among its members. High-performance teams are based on team members sharing their knowledge, experience, and lessons learned with others. Sharing knowledge increases communication, respect, and trust, which ultimately help the team succeed in the Agile environment.
Do not criticize people.
One of the major pitfalls of any Scrum team occurs when team members criticize each other (especially during retrospective meetings) to justify their failures. Instead of providing solutions or suggestions for improvement.
The best teams have the right mix of team members with technical skills. This allows the team to understand the goal and challenges of each sprint instead of wasting time asking other people to do the job for them.
Creating dedicated cross-functional teams is a challenging task. What I recommend is that you let your teams learn their path under clear boundaries and the expected norms of the business. The team will develop their own unique identity, which they will use to overcome the challenges and failures that are part of any learning process.
Knows their real customer
Great teams know their customers and what they really "want" and, even more importantly, what they really "need." This is the only proper way for a team to meet customer expectations and develop the right product for them.
They understand the business value.
Great teams understand the business value of their deliverables and how they contribute to the customer and the organization. It is fundamental for the team to know how each commitment can affect the business and the consequences of low-quality deliverables.
Conduct an efficient retrospective
The retrospective meeting can be devastating for team morale if it becomes a "Blame" meeting (which indicates the low maturity of the team). A great team uses this meeting as positive reinforcement that ensures that team members contribute and share their insights.