Teams Growing Too Big

Most teams tend to grow in size to 15 to 20 people as work progresses.  It happens just about everywhere.  Business bring on more developers and testers as the realization of just how much work is needed to meet due dates.  Traditional Manager response “Let’s add more people!” Scrum Masters have to work to bring the team sizes back down to work able sizes.

Let’s Add More People to the Team!

Myths about teams:

  • I have to know everyone else’s code
  • We can’t talk to people on other teams
  • It is extra work to manage backlog for multiple teams
  • More meetings
  • What about Dependencies?

I have to know everyone else’s code

So what really happens when the teams get too BIG?

  • Stand ups start to take longer
  • Teammates start assuming someone else will jump in and help teammates with bugs, issues or code reviews – resulting in no one helping
  • The cell phones or laptops start to come out during meetings
  • People’s eyes start to glaze over during stand ups
  • Getting everyone’s opinion and participation during planning and retrospectives gets harder to achieve
  • People go quite and slide off the map

Someone else will volunteer, so I don’t have to…

So let’s look at splitting teams in two examples.  One example is a simple split in the middle and the other example might apply if there are SME’s added to a team but maybe their product goal is different than the rest of the team.

So what is the impact to the communication channels by splitting the teams?  In the beginning of this article there is that circle diagram for the communication channels.  There is also an equation to calculate the communication channels also (N*(N-1))/2.  The results for various team sizes are shown in the table image below:

Team size to number of Communication Channels

Team size to number of Communication Channels

In the third column, I showed the reduction in the number of communication channels by by a slight adjustment in the team make up.

They reduce by over 50% to almost two-thirds the number from the original larger teams.  The blue rows match up (16 channels to 11 or 10) and the green ones (13 channels to 8).  That is an amazing increased in shared “Quality” knowledge of each Other’s activities on the team.

Increasing the Quality Knowledge of Each Other’s Activities

Please note that yes this make up does not follow the ideal team make up where everyone is crossed trained / skilled.  I will say that if your team is too big and the skill-sets of the members are varied, a good scrum master will start to get the team cross-skilled in preparation for a team split.

Let’s look at a couple of the myths

I have or even want to know what everyone else is coding

I Would argue that that is not really physically nor mentally possible.  I chaleenge anyone to know what they coded a couple of sprints earlier, let along what 8 other developers coded in the same sprint.  You might get some highlights but that is about it.  Either way you have to re-read the other person’s code before you use it.  This is where good coding practices are important no matter what the team size.

It will take more time

The only that might go up is the Daily Scrum or Stand up time and that is only for the PO’s, Managers, SME’s or Scrum Masters and they are not the core developers/testers.   Let’s do a real simplified example, assuming each person in a daily scrum used a minute to talk.

a 16 person daily scrum would take 16 minutes
a 10 person daily scrum would take 10 minutes

So in a

  • 2 week Sprint the developers get back 1 hour – who wouldn’t want to go to 1 less 1 hour meeting?
  • 3 week Sprint they get back 1.5 hours
  • 4 week Sprint they get back 2 hours

I would also argue the amount of development and test time actually grows and grows in quality also.

If we take a 30 point – 20 story normal Sprint Velocity and split it into two sets of 15 points and 10 stories for simplicity.  The total number of stories the PO still has to prepare is still the same.  The real change is for the Developers:

  • Now there is a 1 in 10 chance a developer will work a story vs a 1 in 20 chance (assume 1 story per developer – which is not my preferred way)
    • So during grooming or refinement, it is more likely the developer will pay attention because the odds are better they will have to work it
    • Monitoring the backlog of 10 verse 20 stories is so much easier for a team that does not like doing it in the first place
  • If we go from 8 developers to 4 there is now a 1 in 4 chance that I will need the code my teammate is working
  • Developers can hide from doing code reviews and helping their teammates.  There is now only 3 other developers to turn to.  Anyone who does not like to help will get exposed pretty darn quickly as a non-team player.

So the work of the PO did not change at all and the quality of the team’s output is bound to go up with less bugs.  The smaller teams tend to look out for each other more verse a larger team there can be more hiding or blame for failure to meet a commitment is now spread over 4 developers vs. maybe 8.  It is just a natural tendency that will surface no matter the well intentions a few.

Dependency issues increase

  • I would argue developers have the same dependency issues in one team or split into two teams.  To help minimize the impact I would offer the concept of managing and developing by Features.
  • Features are a grouping of stories that are closely related to delivering a more complete business value.  The dependencies among the stories could remain in a team if the each team works different features.
    • Features tends to have limited dependencies between each other.

Now I have to manage multiple backlogs

  • I would argue, if the PO’s take a Feature approach to managing the backlog the decision making is actually easy.  As the stories are grouped by feature delivery.  Just assign a team a feature and the stories automatically come along for the ride.
  • And since features typically take more than one sprint to finish, the features/stories for next sprint are pre-selected based on the previous sprint.  There should be hardly any thinking needed.
  • As for the digital tools to manage the boards, just add a simple field for team ID and create a filter to be used in displaying the boards.  In Jira it takes like 5 minutes maybe to replicate the main board from the larger team and creating two new cloned boards for each team.  The nice thing is that the old board can be still used to see if the overall velocity has improved.  Yes – I know each team has a different way of sizing stories, but it is still available, if the teams still use the same sizing methodology.

I could even make arguments that the overall velocity will increase with a smaller team and maybe I will in another post.

Well I hope this discussion was a good one and I would love to hear about your experiences in splitting larger teams into smaller ones.

Cheers,

Greg Mester