I think the biggest misunderstanding is what a manager should be doing. In most cases, his job isn’t to micro-manage, or to know the ins and outs of everything every employee is doing. His job is to help his employees do their jobs. That is, in a way, a good boss really works for his employees and not the other way around.
The relevant part is when it comes to communicating information with your boss so that he can either make decisions, or then turn around and present that information in some way or another to his boss or to a customer. To that extent, I think that having done the job, while helpful, is overrated.
To use the carshop manager as an example. He doesn’t need to know how to repair a transmission, what he needs to know is how it affects his resources (man hours, supplies, etc.) and how to communicate any issues to the customer. Being specifically knowledgable is unnecessary because, well, you have plenty of examples of the resources to repair a transmission. And specific knowledge isn’t terribly helpful when explaining to a customer because, chances are, the customer is unknowledgeable. Turning a wrench won’t help with either of those.
Now, that’s not to say he doesn’t need some domain specific knowledge. I would say that a manager who doesn’t know what a transmission is would probably be a bad manager at a carshop, but being able to repair it himself is unnecessary. That’s why you have employees.
This is exactly how I approach my managers; that their job is to help me do my job. First off, none of them know a damn thing about programming, but it doesn’t seem to matter at all. When I need an executive decision about how to implement things, I approach them prepared with as large a set of options as I can along with what I perceive to be the pros and cons. It’s their job to assign weights to the pros and cons, not to understand why it’s that way. I’ll tell them one option is faster or one takes more space or gives a certain set of features or whatever and then they can make a decision without knowing a thing about how I’m actually implementing it. Similarly, they have no idea about timetables. Often, they expect some changes to be much more complex or much simpler than they actually are. And as a criterion for making decisions, I try to provide time estimates.
Personally, I generally feel like I have a good working relationship with most of my managers, and that’s simply because they realize that they highered us, not because they just needed someone to do a job they could, but because they wanted someone who was knowledgable and skilled. I’d hate to work for a manager who thought he was as or more knowledgable and skilled at the job than me, because in those cases I’ve often end up getting micro-managed, which means they’re not doing other things that they could be doing to make my job easier.