The 5 Worst Software Engineering Managers

                                                           Photo by Mathieu Stern @mathieustern on Unsplash

I’m sure we’ve all been there. Battling against a manager who doesn’t have our best interests at heart.

I know I have been, so here are the 5 worst managers for software engineers.

The Micromanager

I think I’m detail-oriented and pretty suited for a life as a software engineer. 

However, I have found that when a manager looks through my work, I’m much more likely to make trivial mistakes.

Yet when someone looks over my shoulder all of the time, I make many trivial mistakes. So, when a manager looks at my work — closely — for a long period might well think me incompetent. Actually, I’d say they make me incompetent.

This hasn’t happened for a long time, although a tech lead recently wanted to look over my code line by line. They blocked my ticket for three days as I needed to wait for them to look at it, and then they approved it with no comments. They left their position a couple of months ago, and I’m thankful since Micromanagement brings out the worst in me. I was fearful that they might want an hour-to-hour justification of my time, or to look through all of my work.

A micromanager takes away your independence and autonomy, and for me makes me nervous and incompetent.

The Manager Who Fails to Prioritize Management Tasks

This might be a controversial opinion, but I think managers should prioritize management.

I’ve had managers giving late feedback, last-minute cancellations of one-to-ones, and being overall unresponsive to members of staff. Unpopular opinion incoming: If your job is to manage someone, perhaps you should manage them? Avoid the sort of behavior that cut short my performance review because of the worst reason I can imagine

Ideally at work we all put people first before code, and a manager who doesn’t want to manage effectively leaves their subordinates without help within their business. 

The Manager Who Lacks Openness to Feedback

A poor manager will often fail to take feedback on board, meaning their conduct does not improve. They aren’t listening about what they should be doing or how they can become a better manager.

I once had a manager who didn’t listen to the team. They had their own ideas that they wanted to implement, changing the structure of the code and the way we worked. Over the course of one year, all of the subordinates left the company, to be replaced with new younger programmers. I wonder how their codebase looks now?

We give this as advice to people at the beginning of their careers. Be open to feedback and work to improve. Shouldn’t we expect people managers to do the same?

The Dismissive Manager

Rather than building employees up, poor managers may dismiss their ideas and contributions. 

I’ve had a manager who took the credit for their employees’ work, talking up their contributions in organizing and managing the team. They took credit for code refactoring and implementing features — despite never making a pull request for the work they claimed they ‘implemented’. Our team had many events and meetings where we didn’t invite the manager.

They might simply not listen to their subordinates. Worse they might even take credit for subordinates’ work. It’s not fair, not right, and might even encourage staff to leave.

Is that the sort of culture that companies are going for?

The Manager With No Structure

Bad managers can be disorganized, unprepared, and unwilling to put in the work. 

This type of manager might be in a company where they are satisfied with this type of lazy work, and if that is what you are looking for, sure go for it.

So, there you have it. The 5 worst managers for software engineers. 

So, what are the components that make a great software engineering manager? I’m glad you asked. Read on.

The components of a great tech manager

Communication Skills

Great managers communicate expectations, feedback, and concerns. They ensure everyone on the team understands their roles and how they contribute to the project’s success.

Empathy and Understanding

They understand their team members’ strengths and weaknesses and provide support where necessary. They foster a supportive and inclusive environment, ensuring all team members feel valued.

Delegation and Trust

Effective managers delegate tasks effectively, trusting their team members to complete their work while providing guidance and support when needed.

Vision and Strategy

They have a clear vision and strategy for their team, aligning their goals with the company’s overall objectives. They help their team understand how their work contributes to the larger picture.

Adaptability

They are adaptable and open to change, are able to adjust strategies as needed based on feedback and changing circumstances.

Feedback and Development

They provide constructive feedback and are committed to the professional development of their team members, helping them grow and advance in their careers.

Conclusion

Bad managers aren’t just an inconvenience; they’re a roadblock to innovation, productivity, and team morale. Whether it’s the Micromanager who stifles creativity, the Dismissive Manager who takes all the credit, or the Manager Who Fails to Prioritize, these individuals create environments where software engineers can’t thrive.

But it doesn’t have to be this way. With the right leadership — managers who communicate clearly, prioritize their team’s growth and embrace feedback — software development can become a fulfilling and successful endeavor. So, the next time you find yourself under the thumb of one of these managerial types, ask yourself: Is this the kind of leadership that drives the tech industry forward, or are we simply stuck in reverse?

Why don’t we start training our managers to be as great as the code we aspire to write?

Previous
Previous

The Downside of Senior Developer Snark

Next
Next

The Standup That Didn’t Stand for Anything