Will Larsen had a nice post about what he calls Hero Programmers . Put simply, his theory is that some projects end up in a state where they count on massive effort by a select few heroes on the team. The problem is that this upsets those who aren’t heroes, burns out the heroes, and still won’t save an ailing project.
What was particularly interesting to me was some of the responses on Reddit. In particular one quote from “name_was_taken” stands out to me: “Fire the developers who are useless.”
There is a big assumption on both sides of this discussion that should be cleared. name_was_taken is assuming that the other devs aren’t carrying their own weight, Will Larsen is assuming that the environment is setup to discourage them from doing so.
There are obvious situations where you should fire a developer: misbehavior at work, damaging to team morale, poor performance, low reliability, etc. This is not about the obvious case. This is about when you have decent devs all around, but the distribution of effectiveness is massively unequal.
I think name_was_taken’s attitude comes from an assumption that there’ll be a “Star Programmer” available for this company to hire, that way they can have nothing but heroes. I don’t think that’s possible, and I think that’s a dangerous ideology to run a business on. The simple fact of it is that most programmers are average, and only a small handful are truly stellar. Therefore, any good business should attempt to hire the best, and plan for average.
The truly dangerous thing about the hero mentality is what it does to performance overall. Projects that require heroic attempts at fixing them often exclude team efforts. If one person is running around, massively refactoring everything, in an attempt to hold everything together, there is little to no chance that any other developer will be able to get any work done. They’ll have to keep up with a quickly changing system (that they have no input to), and make sure they don’t step on the heroes toes while working.
So the solution is to get out of this mode. Hero mode will burn out your heroes, and make it almost impossible to use the majority of your dev team. Even if you cull the worst members of your team, you will not be able to reliably hire more heroes in the best of circumstances, and most star programmers can smell and avoid an out of control project a mile away.