How to be a great manager

·

An insight from a non-manager perspective.

Before joining Autodesk back in 2017, I didn’t really have a proper manager. I either worked in family-like companies, where hierarchy was somewhat flat, or early stage companies where hierarchy was just developing. It’s only at Autodesk where I’ve been exposed to career ladders, and proper company hierarchy.

And while I do have managerial and leadership experience, I believe that a good manager can be judged only by the team he manages, rather than by his manager. I was managed by a great manager at Autodesk. He was so good that I even submitted a talk proposal titled “How to be a great manager - an insight from a non manager perspective”, to the internal knowledge sharing conference at Autodesk. My talk was rejected (don’t know why), but my observations stayed with me for the past 7 years. And now, after 7 years, a few more managers in my career, and a fairly popular blog, I decided to share my insights here. Let’s begin.

Being a great manager is being down there with your team. I joined Autodesk at a stage where the office I worked at was transitioning from a startup like environment, to a proper chain of responsibilities, and new teams were forming. My manager was my co-worker. We’ve both been software engineers working on the same product. I don’t think it’s a necessity for your teammates to see how you are being promoted to a manager in order to be a great manager, but I do think it’s important that as a manager—either one who was promoted to from inside the team, or hired outside—you need to stay close to your team.

Many managers justify their work by doing “management” stuff. They are in meetings all the time, they barely interact with their teams outside the necessary corporate rituals like team status updates, periodic planning meetings, and 1 on 1s with their team members. I believe this mindset alienates the manager from the team that he/she manages. Sure, management feels like something more important than writing code, but managers forget who they “serve”. They often want to play with the “big boys”, the upper management above them, rather than interacting with the people who they need to grow—their team members.

For example, my manager despite being a manager who was no longer coding, was still involved and interested in what is happening in the team. He would ask questions about the architecture or would discuss new approaches he learned for software development. He wasn’t taking active part in development, aside from doing light pair programming here and there, but he knew how the product works in general terms. I know that for many managers it’s hard to stay somewhat technical, but ain’t this the reason many engineers become dissatisfied with their managers because “he/she doesn’t understand what I’m even doing or how the product works from a technical perspective”?

This necessity to be part of your team rather than hang-out with the “big boys”, translates to yet another important quality of a manager—being the firewall between their team and the rest of the organization. There is a saying that people leave companies more often due to bad managers than any other aspect. We can tolerate somewhat boring projects, in-capable teammates, being in disagreement with the tech choices made in the team. But we seem to be unable to tolerate bad management. And we should not.

The entire function of the manager is to focus on managing their team, and in this sense to also create a wall between the chaos that is happening in rest of the organization in order to protect the sanity, and productivity of their team. Many managers are like messengers of bad news. If the company underperforms, these managers would fail to absorb the negative feedback, and would pass it down to their team. They lack stoicism, and are unable to control their emotions, thus creating a sense of tension, or sometimes even fear, inside their teams. Great managers, on the other hand, are able to shield the entire corporate drama from their teams. Not even once I felt stressed or being involved in corporate drama that is beyond my scope. Sure, when I was underperforming, my manager let me know that, but anything that was not related to me, or my team—stopped at my manager. I would often see other teams being in stress, thus having reduced productivity, because their managers failed to be the firewall that they should have been.

I mentioned feedback, and a great manager is a manager that knows how to give feedback, and especially negative feedback. Being a manager is being responsible for peoples’ growth. The success of their team, is their success, and yet, many managers seem to forget this. They lack basic empathy, they see themselves as “superior” to their teams, and they give negative feedback in such a way that it causes you to quit.

Giving, and receiving negative feedback is a complicated social situation. Nobody likes to be judged, especially when people feel like they are doing good, and suddenly they discover that they were underperforming. If you did not expect to get a below average score on your last performance review, rest assured that your manager failed to communicate a proper feedback to you. On the other side, if after receiving negative feedback, you feel like your entire world has collapsed, then your manager failed in their task.

I have never felt down or devastated by negative feedback, and there were times when I was underperforming. But every time when I was underperforming, my manager knew how to communicate it to me, and how to find a solution. And their method of communication was unique for each team member, which brings me to yet another trait of a great manager—they understand people.

You would think it would be a trivial requirement, right? I mean, if you hire a NodeJS developer, you would check their NodeJS knowledge and understanding, so when you hire a manager, you would check how they understand people, right? Right? But many managers lack people skills. They are unable to provide negative feedback in a way that it can be received and worked on. And even if they can, they try to apply the same method to each and every team member. However, every person is different. Some are more resistant to negative feedback, while others expect to be told the bold truth in their face. You can’t, as a manager, treat these people the same way.

You need to build a connection with each and every team member. I loved my 1 on 1s with my manager. I waited for them. We enjoyed talking, and I was feeling that my manager truly cares about me not only as an employee, but more importantly as a human being. Often in our 1:1s I’d share some personal things that I go through in my life, which could be affecting my work, and my manager would care to listen, and even give advice. I never felt that our 1:1s are just a part of the “corporate rule book”, or it’s there because it needs to be there. He would listen, give advice, and become an enabler to my success.

Yes, being an enabler for my success is yet another quality of a great manager. My success is his success, and he knew it perfectly. If I wanted to do something, be it try myself in a new role, mentor someone, try out a new tech—he knew how to make it happen. And even if it leads to failure, we would still find a way for me to try it out, while also figuring out how to recover if this fails. There are limits of course, in the end, you can’t expect your manager to enable you to rewrite the entire product in Rust because you love Rust, but the company uses JavaScript. But for reasonable desires like being part of the technical interviewers pool, mentoring junior developers, or leading my own project—he was able to make it happen.

In conclusion, management is a leadership position. Whether you want to be a great people manager, or you want to focus on being a great tech manager such as Tech Lead/Staff Engineer, you need to have these 5 qualities. Let me repeat them:

  • Be there for your team, remember that their success is your success
  • Be Stoic enough in order to shield your team from irrelevant news/events (especially negative ones) while allowing them to focus on what they do best
  • Know how to provide feedback, especially negative feedback, in a way that it can be accepted and worked on
  • Learn, observe, and understand people. Find the right approach to every individual
  • Be an enabler for your team, identify how they want to grow, and find ways to make it happen

This post does not necessarily talk about a specific individual, but rather outlines the most important qualities needed in order to be a great manager based on my observations when being managed by different managers throughout my career.

Share this:

Published by

Dmitry Kudryavtsev

Dmitry Kudryavtsev

Senior Software Engineer / Tech Entrepreneur

With more than 14 years of professional experience in tech, Dmitry is a generalist software engineer with a strong passion to writing code and writing about code.


Technical Writing for Software Engineers - Book Cover

Recently, I released a new book called Technical Writing for Software Engineers - A Handbook. It’s a short handbook about how to improve your technical writing.

The book contains my experience and mistakes I made, together with examples of different technical documents you will have to write during your career. If you believe it might help you, consider purchasing it to support my work and this blog.

Get it on Gumroad or Leanpub


From Applicant to Employee - Book Cover

Were you affected by the recent lay-offs in tech? Are you looking for a new workplace? Do you want to get into tech?

Consider getting my and my wife’s recent book From Applicant to Employee - Your blueprint for landing a job in tech. It contains our combined knowledge on the interviewing process in small, and big tech companies. Together with tips and tricks on how to prepare for your interview, befriend your recruiter, and find a good match between you and potential employer.

Get it on Gumroad or LeanPub