No matter how good your team gets, there are always going to be human mistakes disrupting workflow. There just will.
But when mistakes do happen, I often hear people (myself included) talk about the need for coaching. This is especially true when mistakes come from:
- Poor communication skills
- Underperformance
- Or a tendency to start conflicts
This would be a great idea if not for the problem with regular coaching.
Regular coaching doesn’t work
There’s an important distinction to understand here.
My girlfriend built a career as an executive recruiter and is training to be a career coach. But the kind of coaching she’s learning is very different from what we’re talking about.
In her world, people come to coaches for guidance. They have a particular problem they want to solve, but they’re not sure how to go about it. So, they hire coaches like her to help.
This makes the coach’s job easier because the client sets the goals. Unfortunately, the kind of coaching you, as an engineering manager (EM), will do is the exact opposite.
You rarely have people coming to you looking for specific guidance or to reach particular goals. Nine times out of ten, you don’t have anyone coming to you for improvement at all.
In fact, most engineers prefer to be left alone at all costs (which works for them and the process in most cases). Asking if they need help often results in replies like, “No thanks, I’m good,” or, “Please don’t.”
So, trying to approach them like a regular coach isn’t going to work. No amount of compliment sandwiches or active listening will help if the people you’re coaching avoid the problem altogether. Forcing the issue often blows up in your face and makes your team members get extra defensive around you.
Instead, start with awareness
Most people aren’t even aware they’re causing issues that lead to trouble. For me, the main task isn’t pressuring or manipulating people into doing what you want. Rather, it’s helping people understand the impact their actions have on the team.
I prefer to think about this like a marketing awareness model. When you’re selling a product, you have five categories of potential consumers:
- People who are unaware of the problem your product solves
- People who are aware of the problem but not a solution
- People who are aware of the problem and some solutions, just not yours
- People who are aware of the problem and of all solutions but haven’t picked yours
- And people who pick your product to solve their problem
As the manager, your duty is to make people aware of problems, aware of possible solutions and, at the very least, help them pick a solution (even if it’s not yours).
Issues are about more than underperformance
Before helping your team members become aware of their issues, you need to become aware of them yourself. This is especially true if you’ve recently transitioned from engineering to engineering management and haven’t had to consider this before.
And it’s easy to think the only problem you’re going to face is underperformance. But this is not true – you’ll face many issues as an EM.
For example, I once worked with a highly talented engineer people couldn’t stand to be around because of her communication issues. She hardly gave anyone else room to speak a word, and her written memos were atrocious.
I also worked with another who had Asperger’s syndrome. It was difficult for him to get emotional cues right, and often, he’d dump feedback on someone else without any sugarcoating. It was a traumatic experience for many.
Additionally, I can’t count the times I’ve had frontend, backend, or even designers at each other's throats over some miscommunication or for a desire to make things work on their terms.
In all of these situations, you can’t just tell someone to do better. These are complex issues often tied up with people’s egos, reputations, and team roles.
And the project manager (PM) isn’t going to do anything about these issues because they’re responsible for timing and coordination. As the EM, you have the relationship with the engineers and the big-picture view to address them with.
So, if you realize you have an issue, and you know classical coaching isn’t going to help, what can you do? For me, this starts with changing your mindset.
Kicking the can down the road has consequences
Imagine you’re in charge of engineers building an aircraft. There’s a team responsible for building the engines, and there’s something off with one of the engineers. They’re not bad at their job per se, but something’s not right.
Maybe they’re not able to send requests in a way that’s easy to understand. Maybe they’re always fighting and are miserable for it.
These can lead to major distractions. For example, they may cause them to forget to properly attach an engine to a plane.
That’s an extreme example, but the idea is not.
An engineer might not easily welcome feedback, or maybe you avoid giving it for other reasons, but this can lead to problems beyond an intolerable team atmosphere. And the more you avoid the issue, the harder it gets to take action without even worse consequences.
For example, if you alert someone the engine was incorrectly attached, you risk your whole team getting fired for the mishap. But if there’s an issue while the plane is in the air, people could die.
Obviously, building software is different from building an airplane, but the principle is the same. It’s better to lose your job than for people to die, but better still that you catch the issue before it has any major consequences at all.
No one wants to have a hard conversation about issues like communication, conflict, and so on. But the more you kick the can down the road, the worse things get.
Do the hard thing
Addressing issues regularly is like brushing your teeth. And if you’re like me, you find it annoying to do every day.
But you know what else is hard? Going to the dentist and getting half your mouth replaced.
If there’s a choice between doing a little bit of maintenance every day and going to the dentist in an emergency, it’s obviously better to bite the bullet and brush your teeth.
Life’s like that in general:
- Maintaining your house is hard, but so is dealing with major repairs
- Staying healthy is hard, but so is dealing with long-term health problems
- Maintaining your car is hard, but so is paying for a mechanic
We make our choices for different reasons. But it’s way too easy for people to avoid things because facing them head-on feels more unpleasant in the moment. In the long run, though, it’s really not.
In my experience, you’re also doing the person a favor by intervening early. I had an avoidant approach for years, and there wasn’t a single time I didn’t end up parting ways with the person I was avoiding talking about problems with.
I regret this former approach. I’m glad I have an improved one, and it’s producing better results, too.
But one of the difficulties in acting early is that once you’re ready to face the issue, there aren’t any hard or fast rules to address it. There’s no rulebook for how to incentivize people to change their behavior, and I don’t want to pretend I have one.
But I do want to share two principles that often help me start these conversations well.
Let the person know there is a problem
Imagine you have a group of friends and one of them, for whatever reason, smells bad. No one wants to be the person telling someone else they stink. It’s not comfortable, and it’s normal for it to be so.
But if you don’t tell them, what will happen?
The next time you meet with your friends, the smelly person won’t be invited. It’s an easy solution, but not a nice one. The group feels bad for not inviting them, and the friend feels bad because they weren’t wanted.
And it’s possible, even likely, the person had no idea they smelled bad. If they knew they had a problem, they would have fixed it themselves.
So, why not tell them to give them that chance? There are reasons other than simply being “polite,” of course.
For example, moving over to software engineering, perhaps you didn’t know there was an issue – as the EM, you might not be tuned into workplace problems. Or maybe nobody wants to be seen as a person who complains, even if it’s for a good reason. But then again, maybe the “smelly person” actively rejects feedback and puts the blame on others.
But as the EM, you have to accept that it’s hard to start the process and do it anyway. Taking people aside and letting them know there’s an issue is essential. Because if you withhold feedback:
- The problem continues
- Frustration builds
- People get miserable
- And maybe team members quit in response
Then, you’re left with even more issues.
Let people vent
The last thing you should do when you bring up an issue with someone is immediately offer advice on how to fix it. That’s because people aren’t usually listening deeply to you. They’re often just waiting for you to finish in order to start arguing again.
This happens even more when people are angry, triggered, or feeling defensive.
When you bring up an issue, what they’re going to want to do is vent. Usually about how:
- The problem doesn’t actually exist
- Or that others are to blame
I advise not calling them out on these excuses. Instead, let them be emotional, and don’t take it personally.
Listen to their arguments until there’s nothing left for them to say. That’s the moment when you can start talking about the other side of the story.
For example, when I approached an engineer who often gets into fights, I let him yell at me about how stupid all the other team members were.
When he finished, I said, “Hey, you yelled at this engineer. If he quits, we won’t have anyone to finish the feature. We’ll miss the deadline and won’t get any bonuses. People can’t take this kind of criticism, and it puts us all at risk, even you.”
This is a big-picture type of explanation, the kind that you have as an EM. Your engineers do not, so it’s helpful to explain it to them. After they’re done venting, they’re more ready to listen to it.
The short version: face the problem
I’m not going to promise you these principles will work every time. It depends on the people you’re working with, your mood, their mood, and a dozen other factors.
In short, my advice is this:
- Start being aware of team issues
- Know that underperformance isn’t the only issue to worry about
- Address issues before they get out of control
- Let people know there are issues
- And let them vent before presenting your side of the story
Taking these steps doesn’t guarantee results, but you’ll have better chances at resolving issues than if you don’t.
Want more tips on leading effective software engineering teams?
Join my newsletter if you’ve found this content useful
Originally published on Medium.com