It is common to believe in the hypothesis that adding more people to a team, deliveries tend to respond proportionally.
I remember during math classes, an exercise about “rule of three” asked how many workers would be needed to build a house in 5 days, knowing that 10 people did it in 20 days.
The expected answer is 40 workers. However, real life deviates from this linearity.
Brook’s Law states that adding more people to a delayed project only delays it further. Software development does not follow a linear behavior between team members and delivery speed.
In fact, the fewer people there are to do a task, the better.
Managing people is something that I consider crafty, highly dependent on the “feeling” of the project leader.
Often, a lean team is much more productive than a team with many members. It is also much easier to keep track of what they are doing.
One of the main reasons is simple… communication. The more people there are, the more each of them needs to know about what the others are doing.
I’ll try to explain it with a simple mathematical rule. Imagine a team of 3 people, and each one knows what the other two are doing. In total, we have 3 lines of relationship. See in the image below, how it becomes more complex with 5 and 7 people.
It doesn’t need to be said how much more complex it becomes with 8 or 9 people and beyond. The number of “communication lines” grows exponentially. What does that mean?
In practical terms, 3 people have a total of 3 communication lines. If there are 5, we will have (5-1) x (5/2) = 10 lines. If there are 7, the total is 21 lines.
Therefore, we conclude that the more people we add to a team, the more complex the communication becomes and because of that, the slower the progressing of any task.
How can we manage more complex projects? This is a subject for another post.
In a web application for example, when the project is starting, let’s say, in the first release, a good number in the team would be 3 people.
One person in the backend, another in the frontend and maybe someone with the role of data engineering, who would be responsible for the structure in which the information will be stored and later analyzed.
As the project grows, and with that, other fronts usually arise, it is expected that we need to include more people who make the application more robust. Not necessarily in this sequence, the professionals that will probably enter the project are:
- QA Analyst;
- Security Analyst;
- Agility Analyst;
- Data Scientist.
All of these can handle one or more applications, so it makes more sense for them to join as the project expands.
However, I strive to always keep a maximum of 7 people in a squad.
As a factor that I consider most in a development team is communication, it is important that each team member knows what everyone is doing.
I usually call this synergy. Since it is intangible, it is not measured, but it makes a lot of sense for the good performance of the project.
The bigger the number of people, the greater the entropy and the decisions become more chaotic. Keep this in mind.
With Operar Tecnologia, you don’t have to worry about scaling your team, as it is our role to bring in more people as the need increases.
In addition to all of this, one of the main advantages of keeping a lean team is the drastic reduction in time and development cost.
If you need a team and don’t know where to start, contact Operar.