Disclaimer: This post has nothing to do with washing or repairing cars.
Well, I have been pondering over Managers and Management for long - as long as I can remember. Every software developer does, in my opinion. I treat myself as a Manager's developer (akin to Director's actor :)). Having said that, I have flourished under stupid managers too (you have to believe me :)). Developers who perform well even under unhealthy managerial environment, are truly rock stars. But we seldom can be consistent.
Managers, in my opinion, should act as support systems (oh yes, I stole this from Joel Spolsky!). I believe this very strongly. I have lead many projects, and I always see that my team members get what they want from me. Maybe, that's because I am a developer myself and I know the pains and happiness of being one.
In my 15 years of experience in the IT industry, I have seen (and dealt with) many managers, which I think, can be put in these buckets:
1. Car Wash
2. Mechanics
3. Dealers
Car Wash
Imagine a car wash company posing as a mechanic. Or a mechanic who knows only to wash a car. And he/she is an expert in washing cars. :) You get the point, I presume :). Ok, to be more clear, if you take an issue to a manager, and he listens to you carefully, and replies in fine tone using all the polished, sophisticated business language you can get, and you thank him and get out of his office. Once you go and sit on your chair (if you have one), and think about a while, and you know your issue has not been resolved.... well those kind of managers are Car Wash Managers! (You take your car for fixing breaks, instead they wash your car and polish, and you are so happy that you car shines more than that of your neighbor's. But once you drive a mile or so, you realize your brakes are not yet fixed!)
Unfortunately, there are more Car Wash managers than you would like to deal with.
Yes, unfortunately :)
Mechanics
They don't wash your car. They are (sometimes) rude. They run dirty garages. Your car might get dirtier than before. BUT, your brakes would get fixed, for sure.
Some managers (mostly - not all - developer-turned-managers) know their stuff. They are in their caves always, and are not social enough to boost their team's morale. They do their work, and they help their team when asked for.
Dealers
Those who love their cars take them to the dealer. Because they walk the talk. They know their stuff. And they also wash your car! Nice deal, eh? But they are expensive, one would argue. Yes, but it depends. At a longer term, you would realize you have made a good decision.
These managers, seen very sporadically in IT industry, are considerate. That does not mean they are dumb. They are, in fact, the most intelligent of the breed, who knows whats going on with a project, and is constantly on top of everything. They have a work-life balance others can only dream of. They understand what the developers are talking about, and give them amicable solutions for their issues. They let the developers fail and try to move forward than pointing fingers at each other.
I am a fortunate developer, having worked with many Dealership type managers. And that's my weakness too. I easily get frustrated when dealing with Mechanics or Car Wash type of managers. Well, I just can't tolerate Car Wash managers, for sure. But, the reality is that this world is not made of Dealership kind of managers alone. It is filled with all types, and we have to mold ourselves to deal with every one.
What is your experience? Do you agree with my statements above? Put in your comments for a healthy discussion.