A “super programmer” can be 5x – 10x more productive than the average programmer. That is an astonishing difference and you will know if you ever work with one … it is obvious that they just “get it” better and faster than those around them. Does that make them a good and valuable member of the team? Well, maybe.
Patton once said “… a staff officer of uncongenial disposition should be relieved irrespective of any other qualities.” Presumably including their productivity. The point he was making was that the staff was a team and the friction caused by an ill-disposed person would be destructive to the team morale and overall team performance.
The seduction of hiring and retaining a hero is that things get done … and done fast. The question, of course, is what gets done? Is it the right thing that is getting done – the team’s vision of what is to be produced – or just the hero’s vision. Tony Stark works alone … OK, with Jeeves the bot … basically alone. He works on his vision of what is needed.
It is not impossible for a hero to be a good team player. Take a virtuoso violinist … if the orchestra is playing Beethoven and the violinist is playing Mozart … well, he might be playing Mozart the best it has ever been played … and it will all sound like crap.
Keeping the hero on board with buy-in to the overall project and what is being developed by others can be a particular managerial challenge. If your favorite hero can only see their own vision – rather than make the team’s vision their own – then you will have a challenge. The hero may generate so much code so fast that it looks like waste to toss it out … easier to switch the vision. The waste, though, was on the part of the hero … they wasted their effort on their vision rather than the team’s. That is not to say that they mightn’t actually be correct and the team might really need to change their vision …
Attrition. Well, the hero rides out of town and the townsfolk are left with … themselves. The more the organization has relied on the hero, the more difficult this is. The team/organization has to be prepared to lose any team member … at any time … for any or no reason. Murphy’s laws of software development includes:
- The more important a resource is to completing development, the more likely it will be missing when needed most.
- Corollary: If a resource is needed to complete development then it will go missing and do so at the least opportune moment.
The right way to employ a hero may be as a hired gun … a contractor … bring the hero in to solve a specific problem and then let them go. The problem specification should include that the solution is documented so that the team can sustain it long-term.

