In my experience, management tends to view favorably things like delivering on time, and on budget even if the product is compromised. Engineers tend to prefer taking longer and making it correct. Management loves accurate reporting, over communication and documenting. A lot of engineers tend to hate that stuff. Not all but a lot. A manager who isn't technical, or particularly personable but who does a good job of communicating up and out, and choosing high impact projects will do well. Even if they aren't exactly beloved by their direct reports
This surely happens sometimes. But I’ve personally witnessed a lot of engineers (especially junior engineers) who don’t give a shit about customers or shipping products or building alignment or communicating planning and impact. And to have a successful team/product/company you will need to aggravate them sometimes and they’ll post things on medium about how their boss sucks and that nobody should ever estimate anything or how all tech debt is awful or whatever.
Good managers should support their team’s growth and careers, which should hopefully eliminate some of the “my manager is an idiot” stuff but it can’t eliminate all of it.
This attitude is what I've usually seen from management, and junior engineers are often the ones who fight against this attitude, before they get too jaded and leave. Management will dishonestly claim successful delivery with zero regard for the actual product, and then force the engineers into 24/7 oncall.
> Good managers should support their team’s growth and careers, which should hopefully eliminate some of the “my manager is an idiot” stuff but it can’t eliminate all of it.
That's great, but it's no substitute for actual understanding of the problems. Planning done by incompetent managers is nonsense since they don't understand the low level details of the problems. From what I've seen, promotions into management are usually related to being best buddies with others in upper management. Incompetent managers will then use all types of excuses to justify their position, "I'm focused on hiring and growth of the team", "It's hard to be responsible for people", "leadership skills matter!" etc. all the while hiring and promoting their fellow incompetent friends and having zero care for the actual product.
At least that's what I've seen at Amazon across multiple teams. Over here the incompetent management cliques will even hunt for the junior engineers brave enough to give the managers bad scores on the daily "connections" pop-up survey.
Or do junior engineers build a broken system because they don't know better which results in them having to constantly fix shit and burn out?
And then a senior engineer is hired from outside with a lovely mess to clean up while getting paid more than the junior engineer was. And at that point in the company's life, the pressure is usually lower. So it's a nice gig. ;)
There is a balance here. This happens I'm sure. But I've also seen healthy velocity (no mountains of debt, no oncall) be pulled down by engineers who insist on working on what they find fun rather than what is actually good for a product. And these engineers have called their managers idiots to me.
The reason I ask is that it would seem that natural selection would take over, and if a management style that employees feel good about actually helps the company thrive, then those companies that promote "bad" managers would go out of business and be replaced by ones that promote "good" management style.
Secondly a human power structure a created thing needn't follow any such law. Success in society often depends more on perception than any objective measure of success. While bad decision making can put one out of business eventually there is no guarantee that the ones that follow will be more rational.
At the lower rungs this is because of how little influence there is on the big picture. On the higher rungs this is because everything has been completely de-risked through outsourcing of responsibility, depersonalizing potential blame in case of failure while at the same time allowing full credit basking when things didn't fail.
I would argue that "bad" managers would generally have higher turnover than "good" managers. And I would further argue that companies have repeatedly demonstrated that high turnover isn't bad when the company is obscenely profitable despite that high turnover.
This issue is not about traits, but outcome. If you delegate a task, you want that task to get done as you expect it to get done. The manager is your single point of contact wrt how that task is being executed, and thus the person who is held accountable for the outcome of that task. You hired someone to handle that task because you want it done but you can't spare your time doing it yourself. The manager keeps you in the loop and briefed about the major sticking points, and works with you to adjust your expectations. Obviously it's important that engineers approve their manager but the primary goal is obviously delivering projects that meet requirements and expectations, not pampering subordinates.
You get promoted for making your superiors happy, not for making your reports happy.
What actually makes anyone happy is going to vary from organization to organization, from person to person, and from situation to situation. I've known managers whose job was 100% just to keep their subordinates happy, but that happened because keeping those roles filled was one of the company's major challenges.
1) Make sure that his/her employees' day-to-day work aligns with the goals of the company
2) Remove any and all roadblocks keeping employees from being efficient and effective in their work, even if it means risking political capital.
I've always fantasized that if I ran a company, when annual reviews came around, the reviews would be bi-directional. In order words, employees must (confidentially) review their managers as well as vice-versa.
Someone will eventually respond, "okay, but if you let, say, engineers have that much control over how a company operates, you're not going to have a profitable company for very long." To which I would respond: that's why you set the company culture and also you have to be diligent about letting people go who are not a good fit for the company's goals.
Because the reality is that 80% of the typical workforce (maybe even more in the case of engineers) has a lot of comments about how things could be better and how their manager is doing it all wrong. And those comments tend to come out in an unnecessarily strong negative form if you provide an anonymous forum. But most companies don't need more people telling you what's wrong, they need people that take a responsibility in improving it and move things forward.
This is exactly what the article says
AKA growing the company. This seems like an accomplishment that is very worthy of reward/promotion based on the requirements of ownership (shareholders) and senior management.
Delivering new revenue today, without negatively affecting future revenue, is what drives a business to be successfull.
This applies to non-manager types too. Buzz words pay the bills. Always be in the growth sector, not the pay the bills sector.
Now all you are describing feels more like a Product Owner’s job than a manager.
But even putting that aside, employees also want a manager that makes their group look good, takes high visibility jobs and is good at politics. Having a successful manager greatly helps to get promoted, even if that manager tries to take all the credit. Also nowadays peer reviewing is pretty standard, it’s a lot more credible to present oneself as a good manager of a good team.
Incompetent managers spend all their time trying to be promoted and not fired and sacrifice their performance and the good of the company.
A “good” manager gives his team credit for success and takes the blame himself for failures. A bad manager does the opposite. That’s all there is to management really, it’s simple, but very few do it.
Edit: grammar correction
Employers don't have other option. What happens is the people who love coding don't want to be managers and the people who want don't want to code or suck at coding take up manager positions. The problem arises when these managers have to promote. They choose the lesser capable guy who is not a threat to their job. This is what i have seen in software industry.
Popular high school people spend all their time trying to be popular and sacrifice performance in school.
Incompetent managers spend all their time trying to be promoted and not fired and sacrifice their performance and the good of the company.
Edit:
"politics, self-promotion, networking, choosing the right (high-visibility) things to work on, taking credit, delivering new revenue and/or new marketable shiny products/services, having the right senior leadership mentors/wing-people." Are these your definitions of competence?
edit: people might ask, so here's a list of things that, in my experience, get people promoted at large companies:
politics, self-promotion, networking, choosing the right (high-visibility) things to work on, taking credit, delivering new revenue and/or new marketable shiny products/services, having the right senior leadership mentors/wing-people.
Note how none of these really require that a person be good at actually managing a team of people effectively.