Yesterday I found myself reading a very interesting Twitter conversation between Steve Streza, Jordan Kay, and Jonathan Wright. I chimed in in response to this:
— Jonathan Wight (@schwa) November 26, 2013
It struck a chord with me because I’ve been in a situation where I felt guilty about the (insane) hours everyone else was working around me and, eventually, the roles became reversed and I started working hours that made the others feel guilty.
The back-and-fourth on Twitter was constrained due to the nature of 140-character conversations. I felt the discussion going in two different directions, which I’d like to take a moment to delineate. First, there’s the topic of overworking and being a “ hero”. Second, there’s the concept of flexible working hours. Let’s tackle the first first, and the second after that.
Hero programmers. Where to begin. A hero programmer, in my opinion, is someone who works long, long hours. That’s it. Heroes may be solitary, but that’s not the point I want to make; a hero is just someone who works waaaay longer hours than he or she should.
There’re lots of reasons why hero programming doesn’t work. We’ve got a century of research demonstrating that work efficiency deteriorates after forty hours of work a week. In other words, working more has a diminishing returns. If you produce so much utility in an hour at forty hours a week, then it is tempting to just work more hours to get more of that utility. However, the utility per hour is going to decrease over time. Eventually, you’re less productive at seventy hours a week than you were at forty. Yikes.
This is a great segue into our next topic: flexible work hours. My previous point was that you should only be working forty hours a week. But I didn’t say when those hours should be allotted. I don’t have any problem with flexible hours; they work for some companies, they don’t for others. The important thing is that the expectation of flexible hours is made explicitly and you don’t become a hero by accident. What I mean to say is, employers shouldn’t use flex hours as a wink-wink-nudge-nudge way of encouraging their employees to become heroes.
These are two separate, yet intertwined topics. Heroes alienate other devs and brew a hostile work environment, flexible hours are great permitted employer expectations don’t start to creep.
Don’t work yourself to death; communication is good. Get back to work.