DEV Community

loading...

Curing the Superhero syndrome in software engineering

mikulskibartosz profile image Bartosz Mikulski ・3 min read

How often do you meet programmers who think that they need to do everything themselves? People who don't take days off because, in their opinion, the team is not going to survive without them. People who come to the office when they are sick. If someone forces them to take days off, they attend the meeting remotely while being on vacations.

Some people think that without them the project is going to fail, the code quality will degrade, and the tasks won't get done.
Clearly, it looks like the IT equivalent of the Messiah complex.
Fortunately, I met only one such person many years ago, but I still remember it.

How does it look from the team's perspective? They have to work with a person who wants to control everything and be involved in every action. The "Superhero" wants to do all of the important stuff. Usually, the most critical tasks are also the most interesting, so the rest of the team works only on tedious tasks. That does not help to build trust and motivation in a team.

The Cure

The "Superheroes" usually give up when their actions are not appreciated. It should not surprise anybody that when a person does some extra work, and the effort is ignored or punished, they feel betrayed and abused. Even if that additional work is not welcomed and not wanted.

Imagine the following situation. You worked extra hours to finish a task. You postponed your vacation to help the team reach the goal. You even worked remotely from home while you were sick.
Obviously, you expect gratitude, but instead of that your effort gets ignored, and people start complaining about your control issues and negative attitude.

What would you think about such a situation?
Let me tell you what the "Superheros" think. In their mind, the team is just a bunch of lazy idiots who don't care about the company. The "Superhero" thinks that people who complain do it only because they are envious of the Superhero's achievements. In the Superhero's mind, the team complains because they don't want anybody to expect similar effort from them.

At this point, the Superhero becomes cynical and hostile. The Superhero starts to see the team as yet another obstacle in their journey to become The Greatest Programmer. What happens next? Either the Superhero quits and goes no a new company (probably the one which hires only the "Rockstars") or makes the workplace so unbearable that everyone else stars looking for a new job.
Pathetic? Yes. Surprising? Not at all.

Prevention

There is nothing we can do about Superheros. For them, it is already too late, but it may be not too late for us. Maybe there is something we can do, at any point in our career, we start to think that it is better when we do everything ourselves without the team.

At the end of the talk "Beyond developer," Dan North talks about making yourself redundant. Not only by automation but mostly by empowering the team (or the whole organization).

In his opinion, it is a way to be "available again." You make yourself redundant in one area, which means that you can start working on something else. You have a bigger and bigger impact, but at the same time, you make sure that you don't become the infamous "Superhero" because you help others do your job well.

I highly recommend watching that talk even though he did not give advice on how to make yourself redundant. He does not tell that we should write documentation, use tests as the method of documenting the code, do pair-programming, give talks, write manuals, or implement libraries for tedious tasks.

Perhaps, every one of us should find a way that works best in their case. For me, it is writing. For you, it may be recording screencasts or mob programming. It does not matter what method you choose, as long as you get the results you wanted.

Self-reflection

Now, I wonder what if writing such a blog post is a symptom of trying to be an "IT Superhero"? One may say that awareness of the problem is the first step to fix it. What if the person experiencing the issue does not think that it is a problem?

It is knowledge-sharing, and I really enjoy writing articles which, in my opinion, are helpful. At which point being helpful becomes a problem? Does it happen when we no longer see the other side of the issue or when we start giving unsolicited advice?

What do you think?

Discussion (11)

pic
Editor guide
Collapse
mortoray profile image
edA‑qa mort‑ora‑y

Obviously, you expect gratitude, but instead of that your effort gets ignored, and people start complaining about your control issues and negative attitude.

If this happens, then your colleagues are being ungrateful. If you're actually being a control freak, sure, criticism is warranted. But if you're only overly dedicated to your work, you deserve to get acknowledgement for it.

Somebody working too much is no reason to begrudge them. They have their life, and are making their choices. There's no reason not to praise and reward somebody who works overtime, postpones vacations, and puts work before them self.

At the same time, you should speak to them about work-life balance, and try to help them. It's bad to make assumptions about why they work too much -- or that it is even too much for them. Many people are trapped in the position they are in, and don't know how to get out on their own. Looking down on them will only make the situation worse.

Collapse
timothymcgrath profile image
Timothy McGrath

I think the problem with a coworker who constantly works extra long hours is that it makes everyone feel like that is the expectation.

When you are getting emails and pull requests from a coworker on a Saturday, it makes you think that maybe you should be working too. And then you develop a culture that is trying to outwork each other.

If you are someone who wants to do some work on Saturday becuase you enjoy the work, there's no reason to alert everyone to it. If you send a Saturday afternoon pull request it's likely you're just trying to show everyone how hard you are working.

Collapse
katerinaso profile image
Katerina Solstad (katya sorok) • Edited

It is very rude to do this. In fact, if any other job was doing it to a worker, it would be illegal. Days off are days off. If someone chooses to do work during those hours, he really cannot bother anyone with pull requests unless he was asked to do so. I imagine myself working on weekends because I consider myself a slow worker but to bother anyone on the weekend with any requests... well... this is just not right.

Collapse
eliasmqz profile image
Anthony Marquez

You skipped the points where the aforementioned "superhero" is looking down on others and questioning their abilities to work on the same project.

If people want to essentially live at work, cool, they just shouldn't expect others to do so as well which is inevitably the problem. Critiquing someone's control issues and negative attitude (following the framing of the original post) does not make a person(s) ungrateful.

Collapse
lexlohr profile image
Alex Lohr

I think here's an underlying issue of the "Superhero", in this case his unprofessional refusal to accept constructive criticism of not involving the team.

With experience, you will become faster and it's easier to leave your team behind when you're going full speed ahead.

Full disclosure: I've been found guilty of playing the superhero at the expense of my team in my earlier career. So when I got duly criticized for it, I accepted the criticism and was able became a better member of the team and thus a better developer.

I still might pull some extra hours after the kids are asleep, but I'll get my team up to speed next thing in the morning in the daily.

Collapse
dwebster300 profile image
dwebster300

I laughed as I read this because I imagined many of my coworkers reading right along with me saying, "yup, that's you. And there too... Wow did someone who worked here write this?"
Spawned quite the self reflection. Until you covered the motivation. I'm not trying to prove anything, and would actually love the coding company. But not too many care as much. For me, coding is a love as well as a career choice, so work life balance may be stilted sure, but it's not work for me. It's a problem to solve, and I enjoy it. I do get frustrated by lack of recognition, but I think for some, the bar raises where recognition of accomplishments become relative to who created them. Save the day, um thanks. Someone else creates a report, wow! Great report!!! Lol.
It is frustrating, but I've consoled myself that I'm here for the experience, not the accolades. I do get a lot done in an environment where not too many others want to do this. But I do have to be less Superman and more Clark Kent so superego does turn me into Lex Luthor.

Collapse
jfreal profile image
John Farrell

I think there are a lot of great thoughts here.

Personally, it's the unsolicited advice from the hero's that annoys me the most.

If you are working on fixing a problem it feels bad when the hero comes in with their solution before you've even spent a couple of minutes debugging the problem.

Collapse
mbjelac profile image
Marko Bjelac

Why are you writing superhero in quotes - as if they aren't a real superhero - and they are! ;)

But seriously - the only superhero is the one who makes others superheroes too. Work on your own redundancy!

Nice article, but I don't agree with your remark:

There is nothing we can do about Superheros. For them, it is already too late...

You sound like a "Superhero". :)

I think everyone can change, they just need to want to.

Collapse
dariusx profile image
Darius

I think there's two different strands to pull apart here:

  • Person works day and night, with little other life
  • Person is significantly more competent than their average colleague

And, within those, there are good and bad aspects, and good and bad ways of dealing with the situation.

Collapse
timothymcgrath profile image
Timothy McGrath

Now I'm worried that I'm the superhero... 😀

Collapse
johndtill profile image
John Till

What about casual crime-fighting outside of work? What if you do have special powers? Should you just quit your dev job and go work for a newspaper? Asking for a friend...