The Development Team forms an integral part of a bigger Scrum team. It is comprised of professionals who deliver a potentially releasable Increment of “Done” product at the end of every Sprint. At the Sprint Review, a “Done” increment is required. Typically, only the members of the Development Team create this Increment.
Development Teams are structured well and empowered by the organization to effectively manage their own work. This results in a unique synergy that optimizes the overall efficiency of the Development Team.
There is no such fixed size of the Scrum development team. It may vary from one Scrum team to another. Ideally, a Development Team should be small enough to remain ‘agile’ and large enough to complete a significant amount of work within a specific Sprint. This will result in a product of the best possible value.
If the Development Team has less than three members, the number of interactions happening will be less, and this will naturally result in low productivity. Very small Development Teams may often encounter skill constraints during the ongoing Sprint. In such cases, they fail to deliver a potentially releasable Increment.
Having a very large Development Team is equally bad.
If the Scrum Development team size is more than 9, coordination problems may arise. In addition to that, very large Development Teams generate unnecessary complexity. The empirical processes are not much used in those cases.
It must be noted that the Scrum Master and Product Owner roles are not included in this count unless they are also actively performing the work of the Sprint Backlog.
There are some salient characteristics of a development team. The most important ones are listed below-
The Development Team is primarily responsible for the following-
During sprint execution, the development team members perform the tasks of designing, building, integrating, and testing product backlog items into increments of potentially shippable functionality. For this, they self-organize and mutually decide how to plan, manage, carry out, and communicate the work. The development team spends a good amount of its time performing sprint execution.
All the development team members need to participate in the daily Scrum. During this time the team members collectively inspect their progress toward the sprint goal and adapt the plan for the current day’s work. If some of the team members do not take part in the daily standup, the team can miss vital pieces of the bigger picture and may fail to attain the sprint goal.
In each sprint, the development team must dedicate an ample amount of time preparing for the next sprint. A large part of that work must be focused on product backlog grooming. This includes creating and refining, estimating, and prioritizing product backlog items. In every sprint, the development team should allocate up to 10% of its overall capacity to assist the product owner with all these activities.
The development team participates in sprint planning that takes place at the beginning of every sprint. In collaboration with the product owner, the development team helps establish the goal for the next sprint. This is facilitated by the Scrum Master. Once the goal is defined, the team determines a high-priority subset of the product backlog items which they should build to achieve that goal.
The time required for sprint planning is directly proportional to the size of the sprint. Sprint planning duration for a two-week sprint is about half a day. A four-week sprint might need up to a full day for sprint planning. This planning also follows an iterative pattern. Unlike traditional project planning methods, the team does not focus on an elaborate and uncertain plan at the beginning of its development effort. Rather, it makes a series of granular, more certain, and more detailed plans at the start of each sprint.
Towards the end of each sprint, the development team involves two inspect-and adapt activities: sprint review and sprint retrospective. In the sprint review, the development team, product owner, Scrum Master, stakeholders, sponsors, customers, and the interested members of other teams also participate. They review the just-completed features of the current sprint and discuss how to progress in an efficient way. The sprint retrospective is where the Scrum team inspects and adapts its Scrum process and technical practices to improve the way it uses Scrum to deliver the best business value.
The first and foremost job of a programmer in a development team is to work in collaboration with another one at the same workstation. One programmer (the driver) writes the code and the other one (the navigator) reviews each line of the code.
Every development team member should be well versed with advanced techniques of using automated unit tests to drive the design software and get rid of dependencies in the team.
Self-motivation is the biggest driver of efficiency, one which is usually seen in successful development teams. There is no senior-junior hierarchy within the team. The entire team should work on its own.
The very foundation of Scrum is built on teamwork as a summation of individual efforts. These teams achieve bigger goals working together than as individuals. Every person in the team should be more of a team player and less of an individual team member.