If every manager needs to know the job of the underlings, how in the world would they ever get the time to get any management done.
My manager has told me "Software development isn't rocket science. I don't see why investigating a bug takes so long." She also hasn't done any development work herself, despite having a computer science degree. She went almost directly into a PM role out of college and doesn't have a frame of reference to understand her employees' work. She hasn't ever been able to understand what her employees are doing, what's reasonable in terms of timeframe for a feature or bug to be completed, doesn't know the product well enough to even know which part of it her team members are working on, etc.
In contrast, my previous manager was promoted up from the ranks of the developers. She was amazing to work for, because she always made her team's jobs easier, and understood what we were working on (in a broad sense, not down to the deep details, of course).
If every manager needs to know the job of the underlings, how in the world would they ever get the time to get any management done.
Knowing their jobs isn't the same thing as taking the time to do their jobs. A manager should manage, but they should know what their decisions mean to their team members. To my current manager, a flurry of e-mails means work is being done, and she expects a constant flow of e-mail to go around her team. I've been chastised in her office several times for not communicating enough while working through bugs on a piece of code that no one else on the team has experience with. I explain to her which bugs I've fixed, which I am still working on, and which features I've implemented. Doesn't matter. No e-mail means no work, because that's how her world works: E-mail and meetings mean decisions are being made and work is being done. No e-mail or meetings == black hole where nothing is happening.
If I needed a manager that knew my job better than me in order not to feel bossed around by a dummy, I'd be looking in vain forever.
Ditto. I know my work better than my manager. That's basically by definition, except for in a very upside-down project. But if I say "I've got the fixes for these 3 bugs in, and I'm working on these 4 others", and I get a reply like "OK, but what are you actually doing?", you'll have a hard time convincing me that I'm not working for an idiot. They don't know my job, don't understand what their employees are doing (even in abstract), and don't belong in a management position over a team until they understand what it is that they're managing.