A team of 10 engineers was performing well, but inside of it was someone, Adam, who underperformed according to most project metrics. He was often a bit late in shipping features and had more trouble than others tackling very complex technical issues. Adam was well liked by the team, but after some pressure was put on his manager, she decided to let Adam go.
Suddenly the team’s output dropped drastically to a fraction of what it used to be with Adam on board!
What happened?
As it turned out, Adam worked as a product manager in a previous company. This meant he was a bit slower than classically trained software engineers, but he knew how to work well with the product department. As it turned out, he was facilitating discussions between PMs and engineers, often preventing conflicts from appearing. He was also friend with most people in the team, which helped tremendously in squashing small issues quickly and improve team morale. This wasn’t his role, and Adam didn’t even pay much attention to it as it felt like the normal thing to do.
Once was gone, the engineering team fell back to a more defensive approach in its relationship with the product team, which created tensions. This in turn reduced the velocity for the entire team.
Letting Adam go was a mistake from the engineering manager who should have identified that Adam’s value to the team went far beyond “just” shipping features. It was also a failure of the organisation who set up metrics only focused on delivery and not looking at the bigger picture.
Building vs Multiplying
Before starting, please keep in mind that a lot here will obviously be oversimplified for the sake of argument. Hopefully, it should still give you some insights on how to approach the different ways people can add value in a team.
In any given team we’ll have people bringing clear direct value, and others increasing the global output of said team. No group is inherently better than the other and, in order to succeed, a company will need both. It’s important to recognize that, even if some people might directly produce less, they can still be of great value to a team.
• A “builder” produces some amount of “value” every week. For engineers, this can be features going to production, bugs fixed , etc. It can be hard to exactly measure, but it’s more visible.
• A “force multiplier” will add x2 to the people they work with because they will help other people produce value faster, more efficiently or with higher quality. This can be done through mentoring, PRs, removal of blockers & bottlenecks, communication improvements , etc.
It’s usually not one or the other but more two scales. One really senior engineer will be a really good “builder”, but will also be increase the team’s output by providing really good pull reviews. A decent engineering manager will mostly spend her time removing roadblocks for her team, but she will also be able to open up a code editor and write a feature if need be.
Multiplying: Not Only a Manager Trait
It’s easy to say that only managers or project managers are multipliers: they don’t build things directly themselves and are mostly facilitators. However there are way more people that can improve the productivity of the team.
I’d say that there are 3 skills that one can have that will bring value beyond building features:
- Technical expertise
- Good communication & influence on culture
- Ability to build and have people follow good processes
Technical Expertise
Anyone with in depth knowledge of a technical field can improve everybody’s life and output by:
- Spending a non trivial amount of time efficiently mentoring other people. This helps them learn faster, in turn improving what they can accomplish for the team.
- Being involved in architectural decisions and big picture engineering strategy. This reduces the technical debt, the time spent fixing bugs and increases the velocity.
- Writing great technical documentation and clearly expressing their thoughts and designs, allowing other engineers to get up to speed faster on any topics and not loose track of important decisions.
- Motivating a group of people thanks to their technical abilities. It could also help with recruitment. It’s always inspiring to work alongside talented people.
Good Communication & Influence on Culture
Someone with great communication skills can also help drive the productivity of the entire team up by:
- Improving team morale, creating a more pleasant environment to be in, meaning that fewer people will leave. A good atmosphere is also important to attract qualified people. It’s also way better for everybody’s mental health to have a positive and friendly work culture.
- Facilitating discussions and generally preventing conflicts.
- Helping people to get in contact across groups, acting as a networker of sorts. This can help breaking knowledge silos and get a good company-wide dynamic going.
- Being involved in building the team and/or company culture, which is very important for long term success. This can mean starting small workgroups, have lunches with people from various departments or start a company blog and convince people persuade.
Ability to Build Good Procedures
Some people really can optimise things by defining procedures or best practices. They can too improve the team’s output by:
- Helping technical and communication experts formalise their knowledge into actionable procedures.
- Automatize actions that can be, and help with the adoption of new tools.
- Talking to people in other companies to see how they organise, and bring this in-house.
- Advocate from internal promotion of already in place best practices. For instance, if a team has success with a daily standup meeting, maybe the other teams could benefit from at least trying it!
- Identify and bring up organisational issues and sub-optimisations that the management team have missed.
Team Composition
It’s interesting to see how, depending on the team and context, you will need more or less of these two kinds of people. By keeping in mind the different ways people will bring value, you can really improve your team composition and output.
To illustrate, I’ll use an arbitrary and simplistic number to represent the direct output of a person. It doesn’t mean anything, but you can imagine it be story points, milestones reached or whatever you use to monitor the advancement of a project.
Small Team
Alexandra (Associate Engineer) | +5 |
Bob (Engineer) | +15 |
Charlie (Engineering Manager) | x2 |
Team output | 40 |
In this situation the engineering manager is focused on management and is not shipping features. This allows the two engineers to move faster thanks to Charly clearing roadblocks ahead of them. However Charly is a great backend engineer as well, so it might make more sense for him to code instead of spending his time managing:
Alexandra (Associate Engineer) | +5 |
Bob (Engineer) | +15 |
Charly (Engineering Manager) | +30 |
Team output | 50 |
This way, we get a higher team output. However this is not as simple. This will surely deliver short term value, but in the long term Alexandra & Bob might get frustrated or will plateau because of their manager not spending time with them. A good balance could be spending half and half:
Alexandra (Associate Engineer) | +5 |
Bob (Engineer) | +15 |
Charly (Engineering Manager) | +15, x0.5 |
Team output | 45 |
The output here is actually better than originally and we have a more sustainable organisation. It will be a bit more challenging for Charly who will have to juggle between his managerial duties and coding features, but since the team is still small it’s probably doable.
Large Team
In the case of a large team, any multiplier will have a massive effect. Let’s take this team:
Alexandra (Associate Engineer) | +5 |
Bob (Engineer) | +15 |
Christian (Senior Engineer) | +20 |
Dany (Associate Engineer) | +5 |
Elisa (Engineer) | +10 |
Franz (Engineer) | +15 |
Team output | 70 |
There is no way that any individual contributor will be able to bring +70 value, but any multiplier will bring a lot.
Alexandra (Associate Engineer) | +5 |
Bob (Engineer) | +15 |
Christian (Senior Engineer) | +20 |
Dany (Associate Engineer) | +5 |
Elisa (Engineer) | +10 |
Franz (Engineer) | +15 |
Gabriel (Staff Engineer) | +15, x1.3 |
Heidy (Engineering Manager) | x1.8 |
Team output | 190 |
Here having two people working as force multipliers has a massive impact.
More Options Than Going Into Management
The great news with this, is that you can have larger impact without going into management! For instance senior engineers can improve their technical expertise further into staff or principle positions, mentoring new hires and making sure best practices are clearly shared and followed.
Since you scrolled this far, you might be interested in some other things I wrote:
- Always Having Five Minutes
- One on One Meeting Format Ideas
- The Certainty of Failure
- Writing my Manager README
- Engineering Team Meeting: Format & Topic Ideas
- One on One Meeting Opening Lines
- The Developer / Manager Feedback Loop Difference
- Note Taking During One on Ones
- Don't Simply Be The Manager You'd Love To Have
- Startup & Tech Book Reviews