sp

Heroes

A post on heroes and their heroic deeds in software development

In this post, I would like to discuss a human trait and the impact it can have on software development. The trait I am talking about is the human tendency to place people upon a pedestal. Because whether it is ourselves or others, people love heroes. I will analyse a couple of the different software hero categories that I’ve encountered over the years. Note that I am defining heroics1 broader than the typical “alpha behaviour” that usually comes to mind. After all, there is a difference between aspiring to be a hero and being regarded as a hero by other people. I’ll discuss the impact of heroism in the software industry on the different parties involved. Namely the ‘heroes’, their peers, the customers and of course the software itself.

What makes a hero?

Over the years I have encountered developer hero types in almost every company I worked for. The heroic behaviour comes in a variety of different forms, with different results. In broad terms, a hero is a developer that is placed on a pedestal by their peers and/or by the customer. To their fellow software developers, they generally have the reputation of being very ‘smart’, for being true experts. In many cases, they are thus well respected by their direct peers. For the customers, they typically are the ones that the company knows it can rely on to save the day when the shit hits the fan. They can have the reputation for getting things to work, quickly, in the face of a looming deadline. These heroic developers throw themselves in the midst of “battle” time and time again. Saving the day, the deadline, the company. Oh, what would we do without them?

Gunslingers

Wild West

When talking about heroes I think of them as the cowboy gunslingers from the Wild West. The classic cowboys from the movies, that draw fast and shoot straight, who ride into town, save the day in an epic gunfight and then ride off into the sunset. As a kid, who did not aspire to be such a hero?

The residents of the town in the Wild West are happy when they are saved by this hero. The danger has been averted, evildoers slain. Oh, happy days! The gunslinger is loved and admired, maybe even worshipped. After a while a little group can form, centred around the hero gunslinger. The hero that everyone relies on and tries to imitate. Whom is loved by all…

In my little Wild West tale, the residents of the town are of course the customers, the town is the software, the enforcers of the law are the software engineers who are responsible that the town is a safe, functional place.

The reason I have chosen the Wild West as my metaphor is because I think that the software industry has some similarities to the wild nature of the west. The software industry is a young industry that is frequently revolutionized by the next “new” thing. We are still moving frontiers. The tech-savvy experts feel safe out there in the cloud consisting of all the different languages, frameworks, tools, technologies. However, for the non-tech obsessed people, the IT world can be a scary place. People need to rely on us, the IT heroes, and pray that we know what we are doing. While software developers seldom hold quick drawing contests to show who’s boss we have our own ways of trying to dominate each other, battling for the top dog position.

Types of heroes

Of course, there are all kinds of different types of cowboys and gunslingers roaming the Wild West. Just like there are different types of heroics in our software world as well. Some heroics impacting primarily the software, others are mainly impacting the development process. Using my Wild West metaphor I have made a humble attempt to note down the different types of heroes that I have encountered over the years. However, once I went down this trip through memory lane it got a bit out of hand. So I ended up splitting this post into different parts where this post is the general overview. For each “pattern” I made a separate post that explains it in more detail.

Over the years I’ve defined these little mental patterns for myself and they have helped me to identify possible problematic situations more quickly. Hopefully, these patterns can be useful to others as well. So when the déja-vu feeling hits, we can act before things go south.

In the more detailed blog posts of the ‘patterns’ I have tried to elaborate on how I see the different types of heroes appear in the software industry. I have dared to put a label on a certain type of behaviour, knowing full well how dangerous and incomplete labels are. The labels serve as a placeholder, to have a language to name a certain type of behaviour. Not to put people in boxes. The aim is to label behaviour, not people.

1. The Young Buck

This type of ‘hero’ resembles the young gunslingers that are still full of high ideals, with a simplistic sense of justice. Those who are doing all the fighting and are taking all the risks. Alas, they often get played for a fool and let someone else reap the benefits from their battles. In the end, they might even get scorned and chased away by the very people they were fighting for.

The young bucks are motivated by doing what they think or have been told is right. They get a sense of pride from their actions, silently patting themselves on the back for their heroism. If they are lucky they will also be appreciated by the people they are helping.

However, they don’t realise that their actions, which may initially come from very good intentions, could cause harm to the town. Most likely they are being used as cannon fodder and are doing the dirty work.

They will often get blamed when things go south, and others will take the credit if things work out.

Read more on Young buck

2. The Lone Ranger

The lone ranger is, of course, a loner type. Lone rangers get the job done by themselves and mainly work alone. They are always there to save the day, a day that needs constant saving.

Rangers are revered, at least initially, by the townspeople who are very glad that the ranger is always there to save them. Rangers themselves sometimes take pride in their actions, but more often then not they would very much like to put an end to the necessity of their heroics and live a quiet happy life. But circumstances won’t let them unless another ranger comes along to take over, they are stuck.

Read more on Lone Ranger

3. The Posse

The posse is a rowdy bunch that has taken justice into their own hands. They have thrown themselves in the midst of things, are loyal to each other and stick together. But they can lose track of the true purpose of their actions, of the reason why they were formed. The heat of battle and their loyalty to each other leads to them putting themselves above the law.

Just like lone rangers, some members of a posse can take pride in their heroic actions and draw strength from the team feeling. Others members are doing it because they don’t see an alternative anymore. Depending on how long a posse exists they can move from being viewed as heroes initially to be seeing as a necessary evil that people would be glad to get rid of.

Read more on Posse

4. The Local hero

In the Wild West, the fastest gunslingers are usually the hero of the pack. Their actions have given them a reputation as saviours, of being reliable, of knowing best. Their reputations have risen to legendary. Tales of their heroic exploits have bolstered their reputation outside the realm of their immediate environment. In their local town, they are the heroes.

These hero gunslingers are placed on a pedestal by their peers. Sometimes they are even idolized or worshipped by some of them. The heroes are the ones people turn to and put their trust in. All too often this has an impact on the hero’s ego. Because who doesn’t like to be loved, to be the ‘leader’, to be seen as infallible?

Read more on Local hero

5. The Bully

The bully goes hand in hand with the local hero. As strange as that may seem. Depending if you oppose/disagree with the heroes, heroes can easily become bullies. They start enforcing their will by brute force and by the political weight that has been given to them. After all who would dare to go against the will of the hero of the people.

A hero to some, a bully to others

While they might end up being feared instead of loved by their peers, the terrorizing gunslinger still appears as a hero to the people of the town. Because their ‘heroes’ still get the job done. And the townspeople primarily care about the results. They don’t need to collaborate with gunslingers themselves. So the bullies can remain ‘in power’ by the approval of the townspeople in the one hand, and by intimidating and belittling any potential contenders.

Read more on Bully

The problems with gunslingers

Now in the Wild West what were the problems that often came along with gunslingers? Because the townspeople sure are lucky to have heroes around willing to save them and maintain law and order. So what is there to complain about?

What the residents of the town really need is for the Wild West to be tamed.

In the Wild West, the people need to rely on the heroes, but they would prefer it if there were no heroes needed at all. They would much rather continue to steady work, expand, improve and grow their city. They would love to just go about their business and improve their lives. Without ever having to worry about gunfights and their aftermath.

The townspeople need to rely on the law enforcers to keep the town safe. Where some of the law enforcers are regarded as heroes, other can be viewed as a necessary evil. Where the townspeople want a safe environment, they need to rely on hero gunslingers to quell any outlaw uprising. They desire a future where violent episodes never occur again, where they can reliably predict the future without needing to live in constant fear. Townspeople really want boring predictable safety in which they can do their work and thrive. But they have come to accept that relying on gunslingers is the price they need to pay for living in the west. But there is another way…

What the townspeople really need is a professional, reliable law enforcement. A law enforcement that nips all trouble in the but, preventing it from occurring altogether. The people shouldn’t even need know that the law enforcers are there.

With professionals taking care of things the townspeople can just focus on what delivers value, reliably predict the future, not needing to fear the sword of Damocles.

Software heroes

Software is seldom written by a single person. It is almost always a collaborative effort of many different people. Because software development involves a lot of humans working together, it is normal that peoples behaviour has an impact on the quality of the created software. Which means a direct impact on its usefulness and its return on investment.

That’s why I think it is important that these heroic dynamics are taken into account. Because they play a part whether we like it or not. When you get a group of people together, politics and hierarchy automatically come into play. And with them group status and heroics. People want to think highly of themselves and want their peers to think highly of them as well. Just like the gunslingers from the west, software developers have their own ways of determining hierarchy and obtaining status. Engineers often want to show off their competence and shine, showing their worth. Even if it is just to themselves…

Tip for Software engineers

Recently Sarah Drasner made a relevant tweet about this heroic drive in software development. As a software engineer was bragging that he was a coding ninja she remarked

“I don’t want to work with a ‘Code Ninja’, they leave a bloody mess. I want to work with a ‘Code Janitor’.

“Comes in the middle of the night, cleans things up, you only know they were there because everything is organized and tidy.” – Sarah Drasner

There is a lot of truth in that. Don’t try to be known for your heroics. Be known for your reliableness. We aren’t being paid to satisfy our ego. The supply and demand in our industry are heavily in our favour. Which allows us to get away with certain behaviour that we shouldn’t. Behaviour that can be very expensive for the customer. It can make us part of the problem instead of the solution. So remember what you are being paid for.

Tip for Employers

A little advice for the ones that are employing the software engineers:

Know the difference between a heroic show-off and a competent professional.

I am putting this a bit extreme but all too often companies don’t know who their most valuable engineers are. They aren’t always the most extrovert, loudest of the bunch or the ones that always save the day. When you as the customer favour heroics over reliableness, the engineers that make reliable software will leave.

When you see the same developer(s) on a regular basis

  • working to make some deadline
  • fixing another urgent issue in production
  • always being referred to by their peers
  • being the ones that need to make the final call

It can be a good idea to start wondering why it is always the same developers that are in the midst of ‘battle’?

Are the people drawn to the problems or the problems attracted by the people?

Of course, each situation is different and there are many different factors. I am in no way trying to blame someone because they work hard and fix the customers problem. But over the years I have seen many different types of these heroes burn themselves out, bring teams and projects down. Usually with very good intentions. But the greatest harm can result from the best intentions. So I think it is worth paying attention to this heroic behaviour. Don’t let the towns be protected by Billy the kid. And don’t let our love for heroes impede us from being a competent, reliable professional.

Pattern migrations

The young buck, lone ranger and the posse are all in the ‘heroic’ realm by their life-saving actions. By making deadlines and fixing things done in production. The local hero and the bullies are heroes by reputation. The latter two have more of a social aspect to them and thus they have a larger impact on their environment.

One can be multiple of these patterns at the same time in varying degrees. One pattern can evolve into another over time depending on changes in the project, team composition or roles taken. As an example, someone can start as a young buck working hard on a big project. Once the project is delivered and the software is being maintained and extended the young buck can evolve into a lone ranger if they are the only ones that are able to maintain the software. After which they can evolve into a hero or a bully when new team members start working on the software. Or they could become a member of a posse when the team that delivered the software sticks together to maintain it.

None of these patterns is static or fixed within a clear boundary. People aren’t that black and white.

Conclusion

When it looks like things are going well, that everything is under control, that there are very competent people on the job, we need to make sure that this is indeed the case. Our sense must be matched by reality. Because heroics give us a false sense of security. Heroes do stupid things. Putting your fate in the hands of heroes can be a very expensive mistake. The reason that one is confident must be because of professionalism. Not because of heroics.

“You know what I like about you? You are not a hero. I don’t want you to be a hero. Heroes do stupid things and they die.” – Daenerys Targaryen

References

  1. Mine is clearly another definition of heroes then James Marcus bach had in his article Heroes needed. He defined heroes as taking initiative. That is not what I am talking about. I’m talking heroes as being revered.