Why do businesses grow technology teams to the extreme? The Mythical Man Month
taught us that throwing people at a problem won’t help to deliver software
products faster. But in some cases, it still feels necessary.
Team Size != Productivity
This has been crystal clear for quite some time. Smaller teams usually have a
much higher performance than larger ones, and they are dramatically more
efficient. This is true in software development, but in most other fields as
The main reasons this is true are simple: fewer people means less communication
overhead, more focus on the most important things first and less friction in the
The more you grow a team the harder it is to communicate effectively. Layers
of management have to be put in place to try to create the illusion of having
some sort of organisation.
In a growing technology team, decision-making becomes a huge deal. Have you
ever tried to convince a bunch of stubborn technologists to agree on something?
No way in hell you’re going to try that — ever — again. It’s just plain
The super powers of a small team
So, what drives some of the most successful small engineering teams out there?
It’s a combination of things, really.
There’s a much deeper sense of ownership that drives people in an environment
where your impact can be visible to everyone and easily reach the CEO. Great
work can mostly become unnoticeable in larger organisations, where
individuals’ achievements have to be distilled by various upper levels of
In smaller organisations, people tend to pull together to overcome the toughest
challenges, rather than waiting for someone else to decide when and how to
proceed. For this reason, they are usually less prone to blockers as well.
There’s also very little room for political games. It’s harder to get
rewarded for someone else’s work.
People that choose to be part of a small company are usually more
entrepreneurial. They are not afraid of having to find ingenious ways to
overcome potential issues.
Trust between people in the organisation matures more quickly due to much closer
relationships. Quite often, in large organisations, some teams tend not to trust
other teams because they haven’t worked closely enough. In software
development teams it’s usually really easy to view someone else’s work as sub
par, after having a 5 minutes look at their solution. I hate to have to break
this to you, but the problem is: you haven’t worked with them, experienced their
pains, or have any clue why the final solution looks the way it does. There’s a
good chance you could have done it better, or worse, but you’ll never know.
In a smaller team, accepting a sub par solutions is much easier, simply because
you were part of it.
Speaking of efficiency, one key characteristic of these super-tiny but
super-productive teams is: it’s really easy to spot slackers. In big
organisations, you can probably get away with hiding in a corner with no one
noticing, unless you have a rock-solid management team.
Easier career progression is also a massive driver for the extreme dedication
and perseverance put in by a small team every day. If you do great work you are
much more likely to move up the ranks as the company grows.
Do I need to put the cherry on the top? Smaller teams are also less expensive,
much easier to manage, and usually, they have a better revenue per employee
The limits of a small team
Let’s now try to understand why small teams are not small forever. Small
businesses have their limitations and once a CEO has achieved some level of
success with a small team, he’s probably going to look for more. Ambition
drives bigger ideas, bigger projects, bigger goals, and of course, a bigger
A business owner is unlikely to get to a unicorn valuation with a small team,
and company’s investors will push for an almost reckless company growth to grow
Once the problem space becomes too big for the current team to handle, the team
has to grow. There’s no other easy way, you’re probably going to have to
compromise on efficiency, because teams are not very good at context switching.
It’s a better approach to have multiple teams working on their own context where
How to achieve sustainable growth
Quite a few business owners get quite frustrated by the decline in productivity
when their technology team starts growing. They tend to expect for its
productivity to skyrocket in the very short-term instead, but that is almost
never the case.
The speed at which a technology team grows can have an unpredictable impact. It
has to be monitored carefully. Growing too quickly can cause more problems
than it actually solves.
I’ll share some of the most common mistakes I’ve experienced throughout my
career that can threaten productivity while growing a tech team.
1. Focusing on quantity rather than quality
Hiring tech talent is hard. Let me say that again. Hiring tech talent is
really really hard. If your company is becoming more corporate, and it’s not
one of the tech giants, convincing talented engineers to join can be a Herculean
Talented engineers know their value and are normally interested in companies
offering amazing compensation or smaller companies that still offer a fair
amount of company shares, together with a high degree of freedom. For these
reasons, you might not be able to afford them and end up having to settle for
hiring only just above average engineers.
There’s no real panacea here, but making sure the new teams have the highest
possible quality given the available resources is critical.
2. Hiring too fast
Shortcuts in the hiring project can cause some real damage. It makes no
sense to hire faster just for the sake of hiring.
It’s understandable that the company might desperately need new teams to be
bootstrapped in order for them to start working on the new products or projects.
But hiring average engineers starts a vicious cycle where average engineers
end up hiring less than average engineers, and so on, and so forth. Pretty
quickly a stellar tech team becomes just an average tech team, with all of its
3. Unstructured and unorganised growth
Make sure there is a well-defined and agreed plan in place for new joiners and
their responsibilities. The business should have a clear understanding of its
domain and the context bounds for the upcoming work. Growing without tackling
dependencies within the organisation could end up being pretty pointless.
Throwing more people at a complex problem is not going to improve things without
a thought-through plan on how to split it up into manageable parts. It will
probably just increase the complexity of the structure of your organisation.
Using Slack as the main communication tool where everyone can instantly bother
everyone else in the company won’t compensate for your lack of structure.
4. Marginalising top performers
If the business is growing and doing well, it’s most likely due to the efforts
put in by the team so far. It’s a titanic mistake to forget about them.
Instead, allow them to choose what they would like to do next to keep making the
most impact in the growing organisation. Chances are, their entrepreneurial
attitude will keep helping the company moving forward.
When the talented people that made possible for the company to grow are
marginalised they are most likely going to leave, taking with them most of the
people they’ve managed to inspire. Not to mention, most of the domain knowledge
they accumulated will instantly fade away. Never let that happen if you can
5. Considering individuals as interchangeable resources
This is related to a couple of points already made above. Bigger companies and
their management tend to generalise and think of the technical teams as just
If you start losing key players and start hiring just to match the number of
resources required by looking at a spreadsheet, I wish you luck.
6. Not managing change appropriately
People don’t like change. Engineers are even worse. A growing company can
require a lot of changes. It’s important to realise which changes are necessary
and which ones are just plain disruptive. Keep restructures to a minimum and
avoid impacting teams that are working really well together. In simple words:
don’t create problems where there are no problems.
Growth and its effect on efficiency and culture
As an engineer, I’m obsessed with efficiency. I’ve come to realise, though, that
efficiency and company size can’t grow linearly.
Unfortunately, while it’s not so hard to set up a team of 5 that is 10 times
more efficient than the average team of 50, it’s a lot harder to have a team of
50 that can still be 10 times more efficient than a team of 500.
It’s also extremely unlikely that a company undergoing massive growth will be
able to maintain its current culture. Things will change, just embrace it, and
you’ll be fine. Or maybe not.