Here's the deal, I wanted to illuminate some very specific issues arising out of the concept of Leadership (with capital el) in Software Development Teams. As TDM & TRL indicated– in small groups of skilled professionals, it's hard to put one person in complete control without creating sociological issues. Added to all the other little frustrations of corporate life, these can very easily take you over the edge. Especially these, as team sociology tends to get VERY personal.
I'm guessing that adding the Leader role to teams is a direct consequence of Management's excessive need to delegate out the Manager role, aka Turning Developers into Baby-sitters. Management just seems to want a 'guy on the inside'! But, how wise is it to pick an insider (someone who's already inside the team) and switch roles?
What I'm really trying to get at is that (IMHO) Developers (REAL, HARDCORE developers) don't make good Managers... or Leaders... or... whatever you want to call that abomination of delegation! I prefer Field Manager in specific and Manager in general.
In creative collaborations, leadership is always situational. Each aspect of the problem invites the creative excellence of one or more team members. I don't believe any one person can 'drive' a sizeable effort from inception to conclusion alone. The Skill Sets (sociological as well as operational) required for these two roles are just too diverse for one person to cover! They have different Objectives; Their Interests and Incentives are usually in conflict... I mean how can you
put an individual in this situation? It's almost HARASSMENT!!!
Parting thoughts:
Managers give you a goal and let you figure out how to achieve it, monitoring along the way.
Leaders give you a direction to achieve your goals, walking along the way.