Imagine you’ve just transitioned from engineering to engineering management. 

You’ve come off a long career of software development mastery, likely as a senior engineer, and have plenty of technical experience to offer. But then, after a few weeks, you realize most of the job requires you to work with people and not code. You have: 

  • Engineers arguing with project managers (PMs) over timelines
  • Designers fighting with engineers about UX 
  • And, of course, frontend and backend playing their endless tug of war

Technical skills can help, but soft skills are far more essential to preventing or putting out these and other fires. While these soft skills might not come naturally at first, you can master every single one with time and practice, beginning with communicating to be understood. 

1 - Communicate to be understood

The way we need to communicate at work is different from the way we need to communicate in other spaces, and not everyone is good at it. 

Nobody is a mind reader, including your team members. So, for example, you might need to communicate an important piece of feedback to the designer, but if you’re vague about what you need, they won’t know how to fix the issue.

As another example, look at the difference between these two sentences:

  1. “This is not going to work. Nobody does it like that.”
  2. “Bear in mind that when this button is clicked it will take up a minute to perform the action. That’s why in other apps they have animation showing progress and a way to show errors – we might want to do the same.”

The first one is general and open to interpretation (it’s also more negative and less supportive). The second points to a precise area needing improvement. It’s actionable, and the designer walks away knowing what they need to do.

Always consider if your audience will understand your message, whether it’s verbally or in writing. If not, adjust it so they do.

2 - Put it in writing and make your “tone” clear

We’re all busy and can easily forget what people tell us orally. So, make sure you follow up important instructions with written communication.

However, be aware of what’s missing when you do so – specifically, your facial expressions, posture, and tone of voice. 

Maintain a good “tone” when being direct on tools like Slack. For example:

  • Avoid making easily misunderstood jokes
  • When you post messages, do so in full paragraphs instead of single-sentence messages so you don’t stress anyone with too many notifications
  • Save on words by using emojis when you agree with other people’s messages – they’re easier to read and lead to less notifications
  • Post occasional fun memes to lighten the mood, but use discretion

Failing to do so can mean your individual contributors (ICs) misinterpret direct, flavorless text as you being frustrated, passive-aggressive, or angry.

Additionally, separate the main points of what you’re saying into different paragraphs. They’re easier to read that way and less likely to become lost in a wall of text.

3 - Structure and facilitate effective meetings

Good communication goes beyond conversations. 

You need to have effective protocols when it comes to meetings, such as: 

  • Taking notes
  • Sending out agendas 
  • Generating summaries 
  • And following up on the notes you took

All of this takes time, so block enough to do everything. If you’re busy, delegate this task to a team member or set up an automated tool like Grain to help with notes and summaries.

Facilitating meetings is also a major soft skill. This means setting a firm meeting length and sticking to it, but this is only the first step. 

Meeting management also requires:

  • Staying conscious of the time
  • Keeping the conversation relevant
  • Bringing attention back to important points
  • Ensuring key people give their input

Doing so ensures less wasted time, clearer communication, and increased productivity. 

4 - Keep everyone updated

This includes yourself, so follow up with team members on tasks. Check in halfway with your ICs to confirm they’ll finish their tasks according to the current timeline. If not, ask them to alert the PM and all other important contributors so they stay in the loop.

This is one of the most important tasks because, as any PM will tell you, if one person is unexpectedly late, then it affects more people’s schedules. 

Think about the workflow like a busy airport: if one plane lands not according to schedule, then you have to clear room somewhere for them to land, disrupting other planes.

This goes both ways. It’s entirely possible that you promise to prepare a report or describe what needs to be done and then not do that on time. If you have to adjust the timeline, communicate that as soon as possible.

It’s important to model these behaviors because they might not come easy to your team. If they see that you run over the meeting time or are late with tasks, they’ll think it’s not a big deal if they do the same.

5 - Seek to understand people’s motivations and intentions

Humans are emotional beings – there’s no way around this. So, there will be days when a team member speaks to you angrily, and it’s easy to think they’re angry at you.

But here’s the thing: maybe they had an awful commute to work, or they had a difficult conversation with their partner at lunch. None of it has anything to do with you, but sometimes you can’t help but take it personally. 

As a manager, you have to keep in mind you’re not the center of the universe (a good rule for life in general). If someone gets upset, it’s not the end of the world. It happens, and you shouldn’t let it affect your mood or actions at work. 

But you also have to think about how this kind of emotional miscommunication could impact your team. 

For example, one time an engineer was giving feedback to a designer on a mockup they made. The engineer told the designer it didn’t work and needed a lot of adjustments. The designer was miserable because they interpreted those comments as proof they were bad at their job. 

Everyone is focused on different parts of the job and has the same goal in mind, but these things happen. While you can’t always prevent this, you can build a culture to address it and teach others how to minimize it or not let it affect them. Failure to do so will cause problems down the road.

6 - Don’t just mind your own business

Being a team player means knowing what’s going on around you. I know you already have a lot on your plate, but when checking in with team members, make it a habit to ask about the work issues they’re dealing with and what you can do to help. 

Every company has many moving parts. If you’re in a large one, this means dozens or even hundreds of workers spread out over different teams. 

Most of your team members are focused on their tasks and don’t have a high-level view, but you do. Sometimes, you can resolve an issue simply by bringing in another person or some extra resources, but you can’t do this if you don’t know what’s going on.

Paying attention like this helps put the right people in the right place and builds connections across teams. It aligns people’s priorities and facilitates information flow.

Being involved in your engineers’ work lives should also result in mentoring relationships. As an engineering manager, it’s your responsibility to take care of your team for the long haul. This means supporting their growth, providing guidance, and preparing them to step into new roles as time goes on. 

7 - Be proactive with solutions and collaborate instead of blame

It’s far easier to point out problems than provide solutions. This is an issue most people struggle with – so being proactive with solutions means you’re going to stand out in the company (and be better liked by the people you work with).

This can be a simple communication approach. When people come to you with a problem, you have two options: 

  • You can criticize them for the issue 
  • Or you can work with them to come up with a way to address it

Doing the second keeps the focus on the problem, not the person. This boosts morale and lets your team members know you’re on their side. 

I keep saying this again and again: making sure your team knows you’re on their side is one of the most important tasks you have as a manager. 

It keeps an open line of communication with them and makes it more likely that they alert you to problems as they arise. But you don’t have to wait for them to come to you. 

Make it a habit to check in with people to ensure things are on target. This way, if there are issues, you can stop them before a small problem becomes a huge one. 

It may not look like it, but your team is always watching you. If you model this behavior for them, they are more likely to become more proactive with each other, too.

8 - Be flexible with change

Imagine you’ve mastered the soft skills above and seen the fruit of your labors: 

  • Morale is up
  • Team members are successfully implementing your strategies 
  • And productivity is rising 

But then something happens. Maybe it’s an industry-disrupting development like ChatGPT, or maybe there’s a change in team structure, and you have to start from zero again. 

One of the worst things you can do as a manager is be rigid. 

Things are always going to change, and you’re going to have to roll with the punches. Staying flexible helps you implement new tools and strategies as they emerge, but it’s also important with your team. People come and go or hopefully grow into different positions, so you need to be ready to balance your team as time goes on.

Flexibility is also important when it comes to your expectations. 

Imagine one of your engineers says they will do a task by next week. But then, two days later, they say they’ve looked deeper into it, and it’ll take two weeks instead. Welcome their openness and the fact they took time to rethink their initial estimate. Recalculate your timeline or adjust the task and move forward.

9 - Turn team members into allies

This is one of the most important tasks for a manager. As mentioned before, your team needs to know you’re on their side and have their back. 

A great book on this is How To Win Friends and Influence People by Dale Carnegie. In it, he talks about how you can give people what they need. 

For example, you can acknowledge their strengths instead of just focusing on their weaknesses. Don’t take critique personally – rather, thank people for their feedback. Clearly explain what you need, and communicate you’ve understood what people tell you. 

I saw a funny sketch on Instagram once in which a couple ordered food at a restaurant, but their waiter gave them terrible service. They could have been awful to him in return, but they decided to win him over instead. When the waiter passed by, the man mentioned loudly that he thought the waiter was doing a great job. The woman joined in and said she found him good-looking. The waiter’s behavior changed dramatically.

You don’t have to be so obvious, but the principle is the same. Make people feel valued, and they’ll treat you better in return.

The short version: master the skills, master the workplace

Working with software engineers demands as many soft skills as technical skills. So, mastering them is essential to becoming a productive, efficient, and respected engineering manager

With that in mind, here are those skills:

  • Communicating to be understood: think about whether or not your audience will understand what you’re saying and adjust if not
  • Putting important communication in writing and making your “tone” clear: make sure people remember essential info and use techniques like emojis to make your “tone” easily understood
  • Structuring and facilitating effective meetings: take notes, generate summaries, stay conscious of the time, and keep the conversation relevant, among other things
  • Keeping everyone updated: this is especially important when delays happen
  • Understanding other people’s motives and intentions: people get emotional – instead of getting emotional back, learn why
  • Not just minding your own business: check in with your team members and ask if you can help with anything
  • Being proactive with solutions and collaborating instead of blaming: focus on the problem, not the person, and look for ways to help
  • Being flexible with change: be ready for when it happens and adapt accordingly
  • Turning team members into allies: show people you care, and they’ll care in return

You don’t have to master all at once, though. But mastery doesn’t mean you can ease off, either. Keep learning and improving each of these skills. Do so, and you’ll deliver the kinds of results you want as an engineering manager, stand out in your company, and enjoy a successful career.


Want more tips on leading effective software engineering teams?

Join my newsletter if you’ve found this content useful


Originally published on Medium.com