Shared publicly  - 
 
 
Heroism in software is evil.

While grabbing coffee this morning I ran into an coworker. He looked exhausted and as a concerned friend asked him how he was. He explained that the week was hell. He worked 80 hours last week and pulled an all nighter to get today’s release out the door. Despite the bags under his eyes he had one of those smiles that told me he was so very proud.

Stories like this drive me insane!

“Oh man, I had to work all weekend!” “Oh, I was hear until 3am cutting the release!” “Everyone on the team is going to have to work 7 days a week to make the release.”

There is an attitude, a culture that has infected our industry, that heroism is a positive trait. The late nights, the long weekends, the packed schedules - it's a badge of honor to pull off a release or ship a product that tested your stamina and will. We brag about it and even congratulate coworkers when they do it. Even worse, it's become the norm instead of the exception.

I think you should be embarrassed by heroism. You shouldn’t admit to me that you got yourself into a situation where it was needed. I certainly don’t want to reward you or pat you on your back. I want a team that can ship software with no drama. I want a team that can ship software on time with no heroics. These teams do exist and they operate silently. They don’t get credit like the teams who just do their jobs without heroism. No, it’s the teams that worked over Christmas break to make some review session with the boss on the first day after the holiday that get the pat on the back.

The encouragement, the congratulations, and the bragging only encourages the bad behavior to continue. No one bothers to stop and ask why heroics were needed, instead folks accept it as normal. But guess what, plenty of your coworkers don’t gloat about late nights and somehow shipped software too. They got home last night in time to have dinner with their wife. They don’t get as much credit, but I can guarantee you their impact is just as high.

Why do I care?
- Heroics means something went wrong. The schedule was unrealistic. Things went wrong in the design. Folks procrastinated. Teams were understaffed. Bad decisions were made by setting bad deadlines or committing to too much. This isn’t to say that emergencies don’t happen; pager duty exists for good reasons. Sometimes there are true emergencies that require all hands on board, but we need to understand when things are really desperate or when something bigger is broken and fix it.
- Heroism isn’t sustainable. So many people in software are young and have fewer commitments out of work. Folks grow up, get families, join non profits, and get a life outside of work. We shouldn’t punish these people who have gained work life balance because they can’t be heroic. Work life balance matters and is critical to long and happy careers.

What should we do?
- Stop encouraging it. Don’t congratulate it. Don’t gloat about it.
- Management, decision makers, and schedule makers need to be particularly more aware. If something is truly an emergency; sometimes we do need to make sacrifices to succeed in a competitive environment. However, not everything should be an emergency. If the norm in your organization is a 60-80 work week, if you are less likely to reward your employees when they aren't always the hero, then you are part of the problem.
- Reward the teams who ship on time with no heroics.
- Do post-mortems when folks had to work extra hard to get something out. Make adjustments and fix what’s broken.

This is my anti-hero campaign. Don't be surprised if the next time you tell me all about your 80 work week I mention it.

I posted this privately initially and got some good feedback which led me to a few other thoughts
Addendum:
* There is a fine line here, but I don't think if someone chooses to work more hours they are being heroic (at least not necessarily). Sometimes I get into rhythms where I'm enjoying myself and I choose to work long hours on a project. If I'm digging my work sometimes stopping is just as hard as putting down a really good novel.

But this isn't to say that it doesn't cause a perception problem, but it is an area I'm torn about. If folks are enjoying themselves we shouldn't stomp on that, but it's a grey area for sure and a little difficult to figure out how it fits into the bigger story of discouraging unnecessary heroics. This may be more of a problem for leaders who set examples in their organization. If you just love everything you do and it's not a hardship to work 80 hours you may need to aware of how this impacts your team. Do the folks around you feel like they are also expected to work that hard?

* This isn't to say I discourage ambitious schedules either. Some amount of heroics may be necessary to achieve success and innovate in special circumstances. What I dislike is that when heroism has become the norm in organizations. When no thought is given to engineering debt incurred and the cost of employee's well being I think there is a problem.
3
Add a comment...