Yes I think it's a huge benefit to have managers who really understand software from personal experience. I have been in teams with non-technical management, and my experience is that so much time is wasted on irrelevant details. Often managers will ask the wrong questions, and do things the hard way because they're unaware of how the requirements could be modified a little bit to make the whole system work a lot better, and a lot easier.
The responses are telling of how controversial it is, as if people are trying to make excuses for why an EM should not be able to write code and how that's OK. It's not.
I suspect there's also great deal of "If a tree falls in the forest and no one hears it, does it make a sound?"-effect going on. Would you consider a secretary who coordinates a engineering team and handles communication between them and the rest of the company, but doesn't make any technical decisions to be a "engineering manager"?
A good manager/leader doesn't need to be competent in the field, but needs to be aware of their incompetence and know how to defer to those who are competent.
A good manager with a good team that includes one or more senior technical people will be able to rely on their guidance and lead the team effectively.
But any non-technical manager with a junior team is a recipe for disaster.
A good leader doesn’t ask people to do something they themselves wouldn’t do. If the leader has no clue how to code or debug then they have no clue what they are asking their subordinates to do. That is a horrible way to lead in my opinion.
That's nonsense. A CEO cannot be a jack-of-all-trades and has to lead a large organization and direct many people to do things that they, themselves, cannot do.
And scaling back, a manager of a cross-functional team is at a similar disadvantage. I work in a field where we mix ME, EE, CS/Software Engineering, IT/Ops, and other fields. A team could consist of people from all disciplines. Hell, right now I am learning the basics of astrodynamics so I can write the software related to it, the lead is an AE and can't code to save their life. They're still an effective leader.
In a previous team, the lead could not manage a Linux server, but still had sysadmins in the team. Did that make them an inherently bad leader? No, they deferred to the expertise of those team members. Like a good leader.
If the manager can't code, the second best option is if they can't use the computer at all.
The worst situations are with those in the middle. "I know what the computer is: a list of PowerPoint documents uploaded in SharePoint, so that's what we're going to do. Also, I don't really understand what you guys do, but here is a new Jira where you have to document it step by step. Then I will read your descriptions, and regularly schedule meetings based on my misunderstanding of what you wrote."
In fact, imagine a manager what wouldn't even go to work, and just let the engineers work alone. Ironically, that would be more Agile than what 90% of companies do.
Sort of agree, it's enough if they could at some point. If they keep an ear to the ground about how things work and what's possible, that goes a long way.
Just to clarify, I meant that if they at some point knew how to code, that goes a long way to understand the mindset. It doesn't matter as much if they could code their way out of a paper bag if you put them in front of a modern toolchain.
A general doesn't need to know how to fly a fighter jet. But it helps if they stay up to date on modern tactics.
Or at least they should be able to understand the project from a technical point of view.
One of the most frustrating things working with non-technical managers is their lack of understanding of the effort needed to accomplish a task. Oh you need to re-write an entire library from scratch, work with Joe and have it done by Wednesday (today is Monday).
Now good luck explaining and convincing them that two days is not enough.
I really don't understand how companies get in the position where they think it is a good idea to have people who hardly know what a "library" is managing engineers.
Because managing people is a different job to development. Chances are a manager who can't code who is a shitty manager would still be a shitty manager if they could code.
They aren’t informed if they can’t code or debug. A leader shouldn’t ask people to do something they wouldn’t do. I’m this case the leader can’t even do what they are asking others to do. In my opinion, they shouldn’t be the leader then.