>>Taking your best coder and then spending their time on not-coding is wasteful of their talents.
Or the way I look at it, such a guy in a leader ship position can mentor young passionate folks to be just like him.
>>Furthermore, insofar as you create competition to hold that position
Having competent guys compete for a position is far better than promoting a total idiot to lead such guys.
>>you're creating a destructive work environment.
How is appointing a competent guy creating a destructive work environment, and appointing an incompetent guy not creating a demotivating environment.
Most demotivating part of my day is when I spend time with my higher ups, explaining them some very basics things like SQL or regular expressions or about network call latency which most of the times they have no clue of. Many times its so bad, you really have to talk to them like you talk to your 9 year old nephew and even after hours of explaining things are so bad they can't really get simple things like the difference between a DOM parser and a SAX parser.
I am not saying the guy must code like a champion 24x7. But he should have atleast been some one who has built a thing or two under tough demanding deadlines. Some one who has leaned stuff doing it by experience and not just some guy whose only known accomplishment is being at the right place at the right time, riding an economic wave or being some god father manager's yes man.
>>Software development is a cooperative activity that can't be efficiently partitioned.
Exactly that is why we need one of us to lead us.