What is the perfect team size?

Say hi to your team


You start working with a team. But have you ever wondered, how the size of your team will affect your work? Have you thought about what is your perfect team size?

Larger team = Shorter project time? Not necessary so.


When you have a lot of work, it's natural to hope there are more people to help out. Sometimes it work but not necessary so during a product development. Or to be precise, the "efficiency" of having more people in your team does not scale linearly with project time. The more people you have, the larger the overhead in managing them - the daily update get prolonged (I will talk about the work around later), more concurrent tasks means more context switching.

What's more, no two individuals are the same. We have different personality, some communicate better than others, some do backend better than UI frontend. So the larger the team size, you have to possess more "set" of communication profile with the team member.

When we work solo, the project schedule is simple, we have a lot of flexibility to shuffle the tasks around. But once we have a team, we need to deal with multiples of working schedule. Tasks dependency among different people shows up and more consideration is needed if we want to execute the project efficiently.

A big team is not necessary evil.


So, should I avoid having a big team?

It depends.

There are tasks that scale well, tasks that are repetitive or demand just manual labor. One of the example is functional testing, although you can automate many of your tests, functional testing (or UI expectation for GUI program). When you have a proper test plan on hand, tester can carry out the test execution by themselves.

If you have a larger team (i.e. larger then my desired perfect team size), I can suggest some twist to ensure an efficient daily update.

Attend multiple of daily update
Instead of getting everyone together, you may split the big team into smaller entity. Group them together by functions and talk to each of them. This prevent the whole team but you to sit together for a lengthy period, yet, knowing what's happening to everyone is your job, isn't it?

Just bring the team lead
Another approach is just grab the team lead together and have them update on behalf of their team mate. The advantage of doing so is, all the team lead know what's the whole project is happening and they can then divert the message to their team mate in their own update session. You may have fewer chance to meet some of the team mate but compensate for it in other occasion, like a tea session or lunch gathering.

Three, the magic number


I prefer having a team of 3 people or 4 the maximum. If the 3 people are working as individual, there will only be 3 stream of work proceeding at the same time, which I can follow through and understanding the details. When there are more concurrent tasks, I find myself will begin forgetting the detail for each of them. For a more complicated tasks, I have the flexibility to assign 2 of them working together.

Also, preparing work that can "feed" 3 people is much easier than feeding a bigger gang. Since you only need to prepare a handful of tasks, you shall have sufficient time in defining them clearly. When the team are busying working on the tasks assigned, you have the buffer to prepare the next wave and also have time for your own work, too.

Go back and enjoy the team work.