The Dangers of Heroes and Martyrs
Posted by Jacob Harris Thu, 09 Feb 2006 04:02:00 GMT
In my last posting, I riffed at dubious length about how taking responsibility for your code (from testing and maintenance through fighting fires in extreme situations) was a lot like cleaning up after your dog—a frankly unpleasant task, but one that you owe to your colleagues and customers. More importantly, I feel you owe this obligation especially to your fellow software developers of all stripes, as we are all hurt by the cynicism that results from crappy code being left in the world.
Maybe it’s the fact that I was out yesterday for an extremely rare sick day, but I’m feeling philosophical again today about a related yet opposite problem that also strikes software developers: the hero complex. And since I’m in this frame of metaphor, it’s time to return to dog poop to explain the craziness of the hero complex. When I’m at the dog run with Bella, I always clean up her mess. And occasionally I will go and clean up someone else’s if I’m feeling charitable. But what if I were to scour the dog run for all messes and clean them up, even if other owners there should be watching after their own dogs? What if I were to regularly go to the dog run at 3am in the odd chance that there might be some more poop I could clean up? What if I strutted around all proud because of my poop scoopery? What if I were to do all this because I was magically hoping for a commendation from the Parks Department? You’d think I was nuts, and yet this is exactly the kind of thinking that motivates the heroes and martyrs of software development.
Scott Berkun’s excellent book The Art of Project Management is the only project management I’ve seen so far that talks about the dangers of this hero complex to software development. The problem with hero developers is that they derive their self esteem solely from their rescue efforts, and this can create some real problems for the software. It might encourage code to be released recklessly with little or no testing, because the developer feels he can fix all problems that occur. If the hero is really good, it might mask serious problems in the organization (a horrible testing process, other bad developers who really need to be replaced). Worst of all, the hero complex might lock the organization into a constant fire fighting mode, where all resources are allocated in reaction to things breaking on a regular basis, leading to poor strategic vision, a lack of energy for new projects, and ultimately complete burnout.
The hero complex is ultimately a problem of self esteem. In a few cases, the hero has a huge ego, which leads himself to think he really can single-handedly tackle any grand challenges that come his way (hopefully he doesn’t take down the company in the process). This is usually what most people think of as the hero complex problem, where a charismatic cocksure loner takes everybody down with him. But for most developers, the hero complex emerges in a different fashion out of low self-esteem. We have no real idea what value we’re contributing to the company, because we only get feedback when things go wrong (negative and angry), and any positive feedback usually comes at most once a year in the form of a performance review. And so, many developers easily find themselves seeking out the positive acclaim through the hero complex. But many more find themselves sacrificing more and more of their selves to curry favor with their bosses; I call this the martyr complex. For instance, you might find yourself volunteering to clean up and cover for other people’s messes, because you’re worried you’re not enough of a “team player.” You head into the office very early and work late, grab more things to be responsible for without any additional pay or help, get added to pager duty for evenings and weekends, even stagger in with a high fever from the flu –- all of this is considered worth it for getting your boss’ notice and praise. Which is crazy, because your boss most likely doesn’t care (or you work for a soulless tyrant who thinks you should put him before your own family). No offense, but you usually don’t matter as much to the company as you think you do. You need to redefine your self-esteem.
But isn’t the alternative just nihilism? No, you instead need to develop a true sense of what you contribute to the company and how the company in turn contributes to your career path. I hope to delve into my own experiences and my own dabbling in martyrdom. But that’s a subject for another time…

Very nice write up.