The Mediocrity Machine
Being part of a growing team is generally a pretty good feeling.
If a business is willing to continuously invest in a team, adding more and more people over time, it's a strong signal that whatever the team is responsible for is important and that the business wants more.
That's exactly the situation that I've found myself in over the last three years or so. My team has grown from around seven people to well over thirty, graduating from a single cohesive entity to multiple teams each with their own domains and specialties.
It's been exciting and engaging and tiring and much preferable to being part of a team that is shrinking, which can be awkward and off-putting.
But constant growth comes with downsides.
Please Retain Your High Level Of Skill
A constant influx of new people can feel like you're constantly in the storming phase of team development or result in people never feeling comfortable because everything is constantly changing.
But there is a more insidious issue that can result from constant growth.
The longer people work within a single bounded context, the more they understand. They know about the traps for the unwary, the historical decisions that were made and the tricks that can be used to get things done.
When that knowledge is combined with their more generalised skills and experience, it translates directly into effectiveness within that bounded context. The ability to quickly and reliably deliver value with little to no risk.
When groups of people exist in a bounded context for a period of time the same thing happens, but to a greater degree. Not only do they gain all of that delicious knowledge that I mentioned above on a personal level, but they also know how to support and be supported by the people around them.
Injecting a new person into a group shakes everything up.
Typically, this is okay, because everyone around that person still has all of the knowledge and context and they can help bring the new person up to speed quickly, returning the group to its previous level of effectiveness.
Constant growth ruins that pattern, because the new people never get up to the required level of knowledge and understanding before they are required to help support another new person.
As a result, each person knows just enough to be dangerous, but not enough to truly be effective, the pattern repeats, and a mediocrity machine manifests.
You Have Ten Seconds To Comply
Irritatingly, it's not always immediately obvious that there is a problem.
The new people get up to speed at a reasonable pace, they start delivering things and everything looks okay to a casual observer. Hell, it probably even looks okay to a hardcore observer, like the manager who is responsible for the entire area.
But over time, the cracks start to show.
Projects that should have taken a reasonable amount of time start taking longer and requiring more people to deliver. Scope gets cut more frequently from those projects in order to make up the difference, making for slightly worse solutions that still technically deliver the necessary value, just in a way that is a little bit harder to operationally support.
That then leads to additional problems, because the team is bigger, but their operational overhead is larger now, so they end up going even slower, because they have to support everything that was built and delivered, and the cost to do that rises disproportionately to the actual value being delivered.
Unexpected issues start to happen, putting further strain on the group as they need to be triaged, investigated and fixed. Sometimes, the people involved in these situations don't have all of the context necessary to make good decisions and accidentally create more issues, which cause further strain.
Knowledge becomes fragmented. Instead of understanding the entire architecture, people only understand bits, and this can lead to things being re-invented or people going down paths that have already been investigated and abandoned because they are sub-optimal or dangerous.
Ironically, this general slowdown and difficulty in delivering can result in more growth, as the business doubles down and tries to throw more people at the problem, which then makes things worse.
You Have Five Seconds To Comply
The obvious way to solve the problem is to stop growing, at least for a little while. Time will fix the problem, assuming you have enough space to encourage good engineering practices and people are actually learning from their mistakes.
This can be a struggle though, because it involves telling the business that its desire for more has to wait for an unspecified amount of time for fuzzy reasons that are hard to back up with actual data.
Instead, you can try to localise the growth. Instead of diluting an effective team or set of teams equally, put all of the new people into a different group and give them work that is less critical or allows them a safe space to build up the necessary context to be effective. Like maintenance work, or operational work.
That approach is still risky for much the same reason as just distributing the new people equally, but at least the blast radius is smaller. Probably.
The last thing that you can try is to be aware of the cost of growth and to set expectations appropriately.
Typically, when the business invests in a team, all sorts of poor assumptions are made about how much of an impact that investment will have on delivery.
Crush those assumptions quickly and with a brutality reserved for whatever it is that you hate the most. Instead, make everyone aware that adding a person does not mean you now have one more person from a capacity point of view.
You actually have like a tenth of a person for a few months, then maybe half a person for a few more, then maybe three quarters of a person after that and so on.
Assuming that is successfully communicated, use that space for training and other approaches to help the new person find their feet, build the context they need to be effective and not cause the secondary effects that make things worse and worse over time.
Honestly, at this point, all of the solutions that I mentioned above are somewhat hypothetical. They aren't backed by actual experience.
I've only got as far as noticing that constant growth causes a slow dilution of effectiveness, and even then, only because it was pointed out by a particularly perceptive Principal Engineer that I work with regularly.
I Am Now Authorised To Use Force
Everyone kind of knows that growth is a long-term benefit in exchange for a short-term cost, but when the growth is constant, that short-term cost quickly snowballs out of control in irritatingly subtle ways.
The funny thing is, the people who are being added to the team are not at fault at all. They are just as smart and capable as you would expect. The problem only exists on a meta level, as a complex effect manifesting out of a series of simple actions and interactions.
At the end of the day, realising that you have accidentally built a mediocrity machine is a pretty difficult thing to come to terms with.
But like a lot of things in life, admitting that you have a problem is the first step towards solving it.