Tales of the Rampant Coyote
Adventures in Indie Gaming!


(  RSS Feed! | Games! | Forums! )

Tuesday, June 19, 2007
 
Vampire Programmers
"Real" programmers - those who chose the profession out of love - tend to be night-owls.

I discovered this phenomena in college. The professor asked for a show of hands, saw that something like 90% of the class categorized themselves as night-owls rather than "morning people," and mentioned that this was typical. The professor himself was an exception, but he was a weird bird anyway.

I don't know why this is. Maybe its how our brains are wired. Whatever part of the brain is attracted to generating instructions to make a computer work is maybe also that part which rides the inertia of activity later in our cycle or something. Or maybe whatever attracted us to programming was also attracted to the romantic vision of the hacker toiling away into the wee hours, driven by adrenaline and caffeine (in which case, I expect this trend to be diminishing over time as the image of programmers becomes more that of a white-collar professional, like accountants).

This can cause a couple of problems.

First of all, there's the problem of programmers working with non-programmers. In many businesses, management is not pulled from the ranks of programmers, and it seems many managers are those "cheerful morning people" who can't seem to understand why EVERYONE isn't at their best productivity at 8:00 in the morning. This can cause a great deal of friction. Said management can get extremely frustrated with lazy programmers who often don't show until the exact moment they are required to by their employment contract. This sort of management is also often the type that goes home right at 5:00, oblivious to the fact that several of their programming team won't be leaving until hours later.

Then there's the opposite problem, found more commonly in the videogame industry, or any other software company managed more by programmers and who do not interact directly with non-night-owl customers on a day-to-day basis. We geeks have our own little hierarchy, and it tends to be based upon our own estimation of merit. One of those little geek indicators that tends to be used is, "Does this person work harder than me?"

Since it's hard to tell how much harder someone works, the rule-of-thumb that gets applied is, "Does this person work LATER than me?"

You end up with this whole peer-pressure thing going on where nobody wants to be seen as being one of the first people to go home for the night - at least not on a regular basis. People stay later and later. Since the folks in the trenches rarely have time to pay attention to what time their coworkers come into work in the morning, what often happens is that people end up slipping their work-shift (when allowed to do so) into later on in the day to improve that perception of their effort without having to unduly burden themselves with actually having to work all that much harder.

This is one reason why the game industry tends to be dominated by younger, less experienced developers. Those old farts over 30 (that would be me) often have wives and children --- assuming they managed to sneak in a social life earlier in their career --- which puts a damper on those kinds of cycles. When the kids have to get up for school, so do their geek parents. Its rough enduring the gentle-but-present pressure of being "that guy who goes home early" each day.

One of my favorite managers (yes, I've actually had many bosses that I've really liked - I've been fortunate in my career) was one of those weird early-morning people who tried to combat this simply by setting an example. He was in at around 6:00 in the morning every day. He was GONE almost every day before 4:00. He never expected anyone to keep his schedule. He quietly set a counter-example, and made it clear that he wasn't going to know who was leaving at 5:00 and who was staying until after 9:00.

Many companies have "core hours" - usually a 4- to 6- hour block of time - where employees are expected to be at work. This is pretty key, as programming is much more of a group effort these days that requires communication between team members. This helps the window from sliding too far in either direction.


(Vaguely) related pseudo-fluff:
* Seven New Classic Software Development Mistakes
* What Kind of Entrepreneur Are You?
* A Pirate Story
.

Labels: ,



Did you enjoy this post? Feel free to share it: del.icio.us | Digg it | Furl | reddit | Yahoo MyWeb

Comments:
I actually do well as a morning person or a night person. My problem is when I try to be both, and I end up trying to write code with my forehead.

In our office, we have people in our office that work from 6-something to 3 each day. For a while, we had a programmer who came in between 10 and noon. On both ends of the spectrum they got their hours in and got their work done. They just didn't associate with each other very much.
 
When I was doing contracts I almost always had to work for a programmer, because late nights were the only free hours I had. One of these days, I am going to quit my day job. :-)
 
I think you're missing the simplest reason. Which is that computer geeks get in the habit of staying up late because they're computer geeks long before they're programmers. Assuming they started being geeks while in school, all uninterrupted free time, especially if they've got that stereotypical "No anything until after your homework regardless of whether you regularly get it done anyways or not" parents, is at the end of their day. And while wakeup time is almost entirely fixed, bedtime is whenever they want. It wouldn't make much sense to wake up an hour earlier to play something when you could've stayed up an hour later and not had the potential for your hour running out five minutes away from the final boss or a room before the save point. So when that "just finish this one whatever" symptom kicks in, you can bet it'll result in calling it a night later, and they get used to that. And if videogame nerds have a nasty case of "finish this", programmers have a. . . much nastier case. And unlike the gamer, who does it when he has time, the last thing they do before calling quits is ALWAYS programming, and if they always have to stay to finish that last thing. . . the body adjusts to leaving later, and later, and later. And I read somewhere (forget where) that since the body clock isn't exactly 24 hours if you let it it will try to make you go to sleep later every day. So in conclusion:
Blame schools with their oppressive 8:00 start times!
 
Great topic R.C. and worth some discussion.

I think you brought up an excellent point that when you're suddenly in the dev team, there IS a strong pressure to fight each other in these stupid passive aggressive manners.

I know one manager I worked with in the past, tried to keep this behaviour in check by running regular code reviews (to demonstrate you do actually know what you're doing), as well as some office incentive programs to entice the developers to stick a little closer to core hours.

My other thought with all this vampiric activity (I thrive by it lately) is any data gathered on life-expectency of a programmer.

It's still way too early (I hope) for any current numbers to be accurate, but I'd be interested to see any trends in the developer's life and overall health compared to "regular" workers.

Do programmers suffer from heart / stress complications at a much higher rate? What's the average weight of a developer over time?
 
Blame schools with their oppressive 8:00 start times!
I dunno --- it's been too many years since I was oppressed by school. I think I'd rather blame one manager I had at a recent job who decided to do "seat checks" at 8:00 AM, 8:15 AM, and 8:30 AM with a "blacklist" in hand for people to fire... nevermind that almost half the programming team had been working until past 7:00 the night night before (long after SHE had gone home).
 
Hmmm.... we probably won't know the life expectancy of programmers until more of us kick the bucket. That'll take a while - it's still a very young profession. And those programmers who are hitting retirement age now worked in a VERY different environment than programmers do now.

Unfortunately, programmer productivity is a notoriously difficult thing to measure. Code reviews are more of a way to improve code quality overall than to really measure productivity. But they can help with the latter.
 
Most managerial training though (at least around here) is still centered in the "brick and mortar" days that have long since passed.

In various jobs, we deal with people from all over the globe via remote conferencing and other means, and even here at home we have the infrastructure and capacity now to provide *effective* work from a remote location.

The only "blockage" in today's business is usually the manager and their refusal to admit that it's no longer 1980.
 
I think if we were to try to judge whether programmers have health problems due to our vampiric lifestyles you'd also have to put in a huge factor of what we eat and how often we get OUT of the chair. The average programmer diet is more likely to kill us off than the late hours, particularly if you're able to adjust your morning start time so that late night doesn't necessarily mean sleep deprived. :)
 
Programmers who work alone (paired programmers are probably not included in this generalization) like working at night because that's when most people can't bother them.

If I want to work on something, do I try to do it when people are banging things around the kitchen to get ready for work? No! I work on it when everyone else is asleep or otherwise not in a capacity to interrupt my thought process.

It's why some programmers are REALLY early risers. No one is up at 4 or 5AM either.
 
You know, the thought of changing my schedule to EARLY EARLY morning has crossed my mind several times. If it weren't for the desire to maintain SOME kind of social life with my fellow night-person friends, I might go for it.

But yeah - that was always a major factor for me, even as a teenager. Having uninterruptable time.
 
Working late is not cool, in my opinion. It's really bad when it's the manager setting the patterns in an ignorant fashion.
I'm not even a big fan of the "crunches" that seem popular with the software industry. It's one thing to push a little in the last few weeks before release, but many far over-do it. It's really a sign of poor management if you have your people working 60+ hours.
The other issue I see is that for the most part, all programming projects nowadays are a collaborative effort. You don't program in a vacuum. So staying up ultra-late after everyone else is gone just means you're potentially writing code that's going to conflict or have issues with other people's code. You also have no one to talk to or ask questions of. This probably explains why there's so many bugs in game software.
 
Post a Comment

Links to this post:

Create a Link



<< Home

Powered by Blogger