Most articles about scaling deal with the technical aspects, like servers and infrastructure. There’s another scaling exercise to consider that most managers will participate in at some point, and that’s scaling a development team. Like scaling technical infrastructure, it’s almost always an urgent need, and if it’s not carefully thought out beforehand, it can end in disaster. The question for new managers becomes, “How do I scale this team, and how can I do it quickly?”
Before we get into the weeks of HOW, let’s take a moment to talk about something very important. The answer to “How can I scale this team?” is...you can’t. Every time you add or subtract a member, you have a new team. The dynamics change every time the team does. This might sound like semantics, but it is an important starting point when discussing scaling a team. Yes, the team still occupies the same position on the org chart and may even still enjoy the same nickname, but make no mistake, it is a new team; and as the manager, you will be faced with new challenges.
If you’re still with me, then you’ve obviously decided that the fact that you need more brains on the project is worth the new challenges that you will face. How can you bring more developers into the project?
Scale or split?
Ask yourself if you really want to add another developer to this team or if you should divide the team first.
Jeff Bezos famously created the “Two Large Pizza” rule. No team should be so big that it can’t be fed by two large pizzas. Bezos didn’t intend this rule because he was cheap and didn’t want to feed a lot of developers. The more people that are on a team, the harder it is to keep the lines of communication open and flowing.
When there are three people, you can all sit around and overhear all the conversations. This makes it easy to keep everyone informed. Even distributed teams that are small can keep the lines of communication open. By the time you get to five people, this becomes much more difficult. Not everyone will be in the loop at all times, and this will cause problems. A team of seven developers seems to be the largest that a team can be and still function well.
Think about how the team is performing. Are you already having communication issues? Are there some people “in the loop” and others who are “out of the loop” on the team? If you answer yes to either of these questions, you probably want to split the team into two smaller teams before adding a new member to one of them.
The job description exercise
Before you can add any developers to a team, you need to decide what kind of help you’re seeking. A good starting point is to spend some time listing the skills you need. I’ve found that an easy way to organize my thoughts is to sit down and write the job description. Even if this isn’t the final job description, it helps to bring things into focus by allowing you to think through the requirements for the job and the skills needed to perform it.
At this point, it’s a good idea to share the job description with a couple of your developers, both senior and junior. Your senior developers will help you identify skills or requirements that you may have forgotten or help you remove ones that aren’t needed.
A junior developer has the eyes to help you figure out if you’ve written a cohesive job description or what a lot of developers call a “Kitchen Sink” job description. If a junior developer looks it over and tells you that there’s no way they could ever aspire to that job, you’ll want to start shaving requirements.
Check your infrastructure
Now that you know what you are looking for, you probably want to hand off the job description to HR or a recruiting partner like Gun.io. While you are waiting on the crushing load of resumes to be delivered to your email inbox, take a moment to think through your team’s current infrastructure.
Even if you are splitting teams, you are increasing your communications needs by adding a new developer. Are you prepared to handle the load? Technically speaking, do you have the programs and licenses in place? Are you actually ready to add someone to your development infrastructure?
The other side of that is processes and procedures. Do you have processes and procedures in place that can be expanded? Think it through, and make sure you do. You might be ok to add one more, but what are the implications of adding 2, 3, 4… more developers? Can your procedures scale with your team?
As I’ve previously stated, you don’t scale teams, you create new ones. Whether you are adding new developers to an existing team or splitting a team to add more developers, every time you make a change, you make a new team.
Before you start the process, think it through.
- Make sure you know exactly what you are looking for before you start the process.
- Have your existing team double-check your thoughts on the skills that you need to bring on.
- Make sure your technical infrastructure is capable of handing the additional people you are bringing on board.
- Review your processes to make sure that they won’t break down if you add additional people.
Now you are ready to begin the process of adding a new person to your old team, merging them into the existing culture, and enjoying the productivity of your new team. Finding the right person–technically and culturally–can be a daunting task. That’s where a partner like Gun.io can help.
We cut the hiring time significantly, because we’ve already done a lot of the work for you. Contact us today, and let us show you how we can help scale your team with great developers.