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.
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.
Loved the analogy on the car wash piece.
ReplyDeleteOne thing that you missed may be is the delegation part. I have seen managers who think that all they have to do is delegate.
In reality a manager should delegate tasks in such a way that the productivity of the team rises to a whole new level - even if it means doing some critical pieces himself.
There is no point in asking a hard core developer to gather good requirements - that is the analysts job or the managers job.
Good post Rajeev and also well written with numerous examples.
ReplyDeleteI have worked with many kinds of Managers in my career of 15 years and now I'm fortunate to have a dealership.
I dread the mechanics because its always the situation where the mechanic will try to score higher points than the developer and put the poor guy away. Things get resolved and you are back on track but that inferiority complex slowly creeps in which helps negatively in your accomplishments.
Thanks for your comments, Inferno and Rahul.
ReplyDeleteLet me think from the Manager's side.
ReplyDeleteWould'nt all three of the above categories exists in Developers also.
Rajeev,
ReplyDeleteVery good analogy. Few thing to add. Though there are good amount of science/methedology in Project Management it is mostly an art not just sceince. So the initial level of project managers (car wash manager or mechanics manager) will slovely turn into "dealer" manager during the course of the timen - and yes they will be expensive - what you pay is what you get :).
The same analogy holds good for developer community also, which is also a gradual transition from car washer to dealer :). But for a developer it will be difficult for a developer to remain as "Car washer" for long time as outcome will be visible is short duration. :)
Interesting analogy. I wonder where I would fit in?
ReplyDeleteRajeev, you'r fired!
Lol just kidding, cya tomorrow :)
What happened to my "e" ?
ReplyDelete