Back to posts
6 min read

Is My Manager a Bad Manager?

I recently read a book titled Software Engineering at Google. In chapter 5, it discusses how to lead a team and the two kinds of leadership positions at Google: Engineering Manager and Tech Lead.

After reading the chapter, I was fascinated by how clearly Google defines the positive traits expected from managers. The text outlines what good managers should do and highlights the anti-patterns they should avoid.

Positive Leadership Patterns

The book highlights several patterns that make a good leader. First, they should lose the ego and focus on building the team collectively, not afraid to apologize for mistakes and encourage others to criticize constructively. This builds humility, trust, and respect.

A good leader should also be a zen master, staying calm and composed especially when problems arise. Your team is always watching you, so your reaction sets the tone for everyone.

They need to be a catalyst that enables the team to reach consensus and move forward, especially when the team is stuck technically or organizationally. Rather than dictating, they coordinate and facilitate.

Another important trait is removing roadblocks. A leader should use their network and knowledge to clear blockers—whether it’s internal politics or resource allocation—that prevent the team from making progress.

Good leaders also teach and mentor their team members. They balance between doing the work themselves and delegating, allowing engineers to learn even if it takes longer initially. The key is knowing how much help your mentee needs to grow.

They should set clear goals by defining the mission and priorities together with the team, so everyone pulls in the same direction and understands the trade-offs.

Being honest is crucial too. When you can’t share information, just say it openly rather than hiding behind vague answers. This honesty builds trust.

Finally, leaders need to track happiness in their team. They regularly check team satisfaction and individual career goals, adjusting workloads and support to keep people motivated. Recognizing achievements and providing growth opportunities matters a lot.

Management Anti-patterns

On the flip side, the book also warns about several anti-patterns that bad managers fall into.

Some managers hire pushovers—only bringing in people who are less skilled or ambitious. This might give short-term control, but it leads to long-term failure because the team can’t work independently and needs constant hand-holding.

Another common mistake is ignoring low performers. Hoping the problem will just disappear without doing anything about it demotivates the high performers and damages the whole team’s morale.

Some managers ignore human issues entirely, focusing only on technical outcomes and neglecting people’s concerns. This erodes trust, loyalty, and ultimately productivity.

There are also managers who try to be everyone’s friend, especially after being promoted from peer to manager. This blurs boundaries and makes it hard to give direct and honest feedback when needed.

Under time pressure, some managers compromise the hiring bar, lowering standards just to fill positions quickly. This leads to mediocre teams, high management overhead, and wasted resources.

Lastly, treating your team like children through micromanaging or refusing to delegate results in low trust and prevents team members from developing autonomy.

Your Manager Might Not Be Bad

Reflecting on that list, suppose there is a manager who shows some of the anti-patterns—like ignoring human issues or micromanaging—or lacks positive leadership patterns like neglecting direct report’s growth or failing to define clear goals. Does that automatically make them a bad manager?

My initial reaction was yes. Doing those things hurts long-term relationships and team performance, so it must be bad. But I’m not 100% sure yet. There must be a reason and another point of view that I can compare.

Fortunately, one night, the Software Engineering Growth community from Indonesia held an online discussion about Bad Manager, Bad Stakeholder & Mentorship. We shared experiences about management and tried to define what “bad” really means in a manager. I had the chance to bring up my uncertainty, and the variety of responses helped broaden my view.

One answer that opened my view came (coincidentally) from my former Engineering Manager who also joined the forum, lol. He said that a manager might not adhere to best practices of what’s considered a good manager. They might push pressure on you or reject your leave, or make decisions that seem inconsiderate. But from a business perspective, if their decisions help the team deliver features successfully, they may actually be considered a good manager.

From the company’s point of view, success is visible and measurable: features shipped, metrics improved, outcomes achieved. What happens inside the team doesn’t always impact that definition of success.

Still, numbers don’t tell the whole story for the people inside the team. That raised a more personal question for me: as an individual contributor working under a “bad manager,” is that success worth your stress, frustration, and unhappiness? And do you have the right to complain, knowing that joining the company also means supporting its goals?

You Have Agency

This line of thinking reminded me of something from the beginning of book The Pragmatic Programmer. David Thomas and Andrew Hunt discuss the idea of agency—You have the power (and responsibility) to make decisions and take action. If your job is frustrating or the environment feels toxic, you can try to fix it. It’s your career and your life. But you shouldn’t fight it forever.

“You can change your organization or change your organization,” Martin Fowler famously said. If you believe in the company’s mission, you can try moving to a different team or giving constructive feedback to that “bad manager.” (Maybe even hand them a copy of Software Engineering at Google—I dont know if its good or not) But if nothing changes after you try, you always have the option to find a new journey elsewhere.