I have a counter/supplementary theory that it is just as disruptive to assume a good developer will be a good leader or manager, too.
Rant time (aimed at no one in particular, especially not parent comment):
Managing is a very different skillset. There needs to be some significant knowledge of the industry at large, the specific domain that is relevant to your biz, and "generic" (for lack of a better phrase) management skills (i.e., communication and management of the squishy bits of your org that show signs of sentience and sometimes speak)
I've lost count the number of times I've heard colleagues say "They are such a bad (technical) manager, they'd never be able to do what I/we do." and have responded with "They don't need to. That's why they pay you."
I get very tired of this "debate" that it is management _versus_ IC/developer/engineer/worker. I also strongly believe a lot of what is perceived as "top-down" management is harbored by a "bottom-up" resentment - or just plain resisting authority.
You are a team, so work together.
I also hold the opinion that if your organisation has this mindset ("versus") within then you have a much bigger problem than what is presented at face value.
> I also strongly believe a lot of what is perceived as "top-down" management is harbored by a "bottom-up" resentment - or just plain resisting authority.
As long as the people calling the shots still make more money than I do and I am the one cleaning up the mess that creates, I feel pretty justified in resenting them.
The first thing that comes to my head when talking about bad management are manager positions with the power of taking decisions they they either don't fully grasp the consequences at-large of, or will not be hold accountable of bad results for.
How do you know they don't have a bigger-picture view than you? How do you know that they haven't had to acknowledge your problems but have to compromise because the alternative would be more problematic? (It's been my experience from both sides that even simply telling people this is the case isn't enough.. I've seen peers get upset when management explicitly acknowledge and explain why compromises are made but some on the team still feel resentment to that manager - but not the reasoning, despite it being objective) as well as members of the team I am managing hold resentment to me despite my own objective reasoning, and even support from other members of the team, not being enough to, I quote, "show them I am a good enough manager."
I'm not going to pretend managers are automatically all massive value-adds. A bad manager is a bad manager. But a bad developer is a bad developer. A bad person is a bad person.
My previous rant is mostly about those who perpetuate this nonsensical adversary between managers and workers everywhere they go, often wearing their repertoire of conflict with management like some kind of accolade.
To assume any given manager is bad because of previous experience, or based upon your own misunderstanding of what a manager does? That is ignorance and prejudice, which is your cross to bear.
"Managers" (the collective/stereotype) don't deserve any resentment. An individual manager that is disruptive and/or a drain on the team's productivity then sure, there is a valid grievance.
Consider that you may be making messes that you are unaware of, and that layers above you may be cleaning up all the time.
The "bottom of the pyramid" is not all knowing and a reservoir of wisdom.
While I agree that managing is a different skill set (have switched between the roles several times in my career) the problem with focusing on "it is a different skill set" is that it allows mediocre managers to get in who have neither a clue about the product nor about real life software processes but e.g. are great "agile master"s or have a sales background. A lot also depends on the nature of the project - some are more tangible and some other are very technical.
We need people who know where we want to end up, can recognize problems, understand dependencies, can remove hurdles, can provide resources, can communicate, make sound and stable decisions, motivate and plan. Some of these skills are mandatory in a developer but there are quite a number of managers who have a surprising lack of ability to recognize dependencies, mentally juggle dependencies, plan and making stable decisions. And when they are coming from a pure "agile master" factory they may even not be able to communicate and focus on a product goal.
> You are a team, so work together.
I agree but there are cases where managers are such a bad fit that exchanging them is the only option. Two days ago I put out feelers to see whether others thought our project manager was in over his head and we needed to escalate it. Working as a team together was not really an option as we as a team would have to do all the managers work, deal with the overhead he was creating and still had key questions undecided. Yesterday I learned the manager is quitting which is good for everyone, clearly he was not comfortable in his role and had looked for alternatives. And no, there was no animosity from the team and he had a lot of help when he started. A nice guy but not a fit.
This is a great comment, and it helps reveal to us why there are approximately zero good managers.
Imagine a job advertisement:
Position available for (Software Development, but any industry really) Project Manager.
Hard requirements:
• Take ownership
• Delegate
• Know where we want to end up
• Recognise problems
• Understand dependencies
• Remove hurdles
• Provide resources by identify bottlenecks and resource constraints and remove them
• Be able to communicate to the team collectively and each member individually to a high level
• Make sound and stable decisions
• Motivate the team
• Do all of these things well above average level
• Not just this project and this team, but also the next project and when the team gets shuffled around from time to time
There are approximately zero people who can do all of this on a consistent basis. Maybe one in a million can do some of it well some of the time, perhaps. Maybe.
If you have a manager who is simply a reasonable sort of person, though they may be lacking everything else, I strongly urge you to do everything you can to keep that person where they are. If you don't mind tolerating them, you're on to good thing, because there's a fair chance ousting them will result in your team finding the next person is much much worse.
I agree managing is a skill all on its own. Yet IME it's easier to respect the choices or difficult circumstances when they come from someone who clearly knows the important parts at a conceptual and deep technical level.
I have a counter/supplementary theory that it is just as disruptive to assume a good developer will be a good leader or manager, too.
Rant time (aimed at no one in particular, especially not parent comment):
Managing is a very different skillset. There needs to be some significant knowledge of the industry at large, the specific domain that is relevant to your biz, and "generic" (for lack of a better phrase) management skills (i.e., communication and management of the squishy bits of your org that show signs of sentience and sometimes speak)
I've lost count the number of times I've heard colleagues say "They are such a bad (technical) manager, they'd never be able to do what I/we do." and have responded with "They don't need to. That's why they pay you."
I get very tired of this "debate" that it is management _versus_ IC/developer/engineer/worker. I also strongly believe a lot of what is perceived as "top-down" management is harbored by a "bottom-up" resentment - or just plain resisting authority.
You are a team, so work together.
I also hold the opinion that if your organisation has this mindset ("versus") within then you have a much bigger problem than what is presented at face value.