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 well.
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 decision-making process.
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 miserable.
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 management.
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 ratio.
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 team.
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 their portfolios.
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 possible.
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 task.
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 well-known flaws.
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 avoid it.
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 numbers.
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.