TL;DR: Here is why the author’s team prefer to go back to smaller-sized teams when the engineering organization grew:
Small size = very fast development. Able to have total mental model of the code we’re working on. Nobody is able to be left out or lag behind in understanding.
Smaller teams make it easier to plan and sequence work. This has enabled us to move quickly on a number of projects.
There’s much more ownership, opportunities to lead, and flexibility.
It’s easier to feel proud of the work we are doing since there is more accountability and each person has a more direct impact on the successes of the team.
But there are some adaptation to do to make it work:
Need to learn to trust more easily
Need to train the leads
Need to change the role of management: each manager now had multiple three-person teams reporting to them and had a larger number of direct reports. Managers were no longer responsible for directly managing projects.
However, note that there can be some dangers to pay attention to:
Technical ownership was less stable
Engineers were less connected to each other’s work