Thursday, May 26, 2011

The Cost Of Working In Games

I've worked as a programmer in the games industry for some years now. The details of where and when aren't important right now so I won't go into them. What I'd like to talk about is the general perception of what it's like to work in the industry vs. the reality.

I run into a couple of common views from people. The most common is "That must be awesome!"

Mostly this comes from people who hear "Video Games" and think we must sit around the office and play games all the time.

Which, well, we do. But not *all* the time, and we do try to keep it off the clock.

And there are certainly some other pretty cool aspects to the job.

But there are downsides as well, and all the pluses don't make the minuses any less bad.

The other view I get a lot is "Wow, I hear it takes over your life."

That one is pretty wide spread among people in the industry and the people close to them. The EA Spouse article is the most prominent example of this.

What I find most interesting about this view is that I've never seen any hard numbers to back those claims up. Anecdotes, regardless of how many you have, don't add up to evidence.

Don't get me wrong - I think there is definitely something going on. I know I've felt like the job was taking over my life. People in the industry do work a lot of hours and sacrifice a lot of holidays and weekends.

But we also get comp time. And there's a lot more flexibility for start times, especially if you just worked until 2am.

I've seen examples of most every rumour you hear out there, and heard 1st hand from people who've lived the rest.

But how much of that is confirmation bias and/or selection bias?

How does it all play out, when you add up the comp days, the late nights, and sometimes equally late mornings? Certainly, every person's experience is different, but you just don't see real numbers.

I've always been salaried, which, as far as I know, makes it illegal for them to track my hours in detail. But that doesn't mean I can't track them.

So I did, for 2.5 years.

The Good Bits

I started a spreadsheet late in pre-production on a particular project. I tracked my time all the way through to finalling, took some time off, and when I got back, continued tracking into pre-production on the next project. I was laid off after ~30 months, late in pre-pro on the next title, so this covers basically a full project cycle.

I decided the best way to post the data is in chart form. The raw data has a lot of both personal info (it turned into a very handy calendar) as well as company-private info (deadlines, etc). The later I clearly can't release (it's just wrong, never mind the lawsuit I'd probably face). The former could be interesting if I was better about being complete with it - joining my personal schedule to the time worked would be fascinating, but probably socially awkward if released.



(Click the images for a larger version.)

This chart is my daily minutes of over time across the entire project. I counted any time worked past the 7.5 hours mandated by law here in Canada as the maximum working day's length. I also counted any time spent on a weekend, or when working a holiday. I opted for minutes to avoid decimal hours, days, etc.

The negative spikes are times I left early, came in late, took a long lunch, or was given a comp day in lieu of a holiday. The -450 minute days are the comp days. The cluster toward the end, followed by the long stretch of 0's is my post-project comp time followed by vacation.

This chart alone is interesting, but it's a little noisy - there's a lot of jitter, and it's hard to see the overall trend - sure, towards the middle there seems to be a bit more of working late and less of leaving early, but it's hard to see the accumulation.


That's the cumulative story. There are a few flat bits after spikes - those tend to be when we got comp time. The down-slope of the tallest peak is my post-project comp time. The plateau is my vacation - I took a few months off after this project, so I wasn't logging any hours either way. The cliff is me returning from vacation and deciding it was best to just reset the counter. It was a new project, a less-stressful environment during pre-pro. I felt a mountain of "uncompensated OT" looming over me would just lead me to slack off to try and balance it out. Which wouldn't have served the project or myself well at all. So I reset it to 0 and started counting again.


Some stats, all in minutes:

Total OT worked: 31644
Total Comp Time: 9675
Total Slacking: 10521
Balance: +11448 OT

Peak running OT balance: 17750
Balance when reset: 10585

Single longest day: 813 (OT: 363)
Longest whole-day OT: 600


Total Days tracked: 921

Total Comp days: 21.5
Sick Days taken: 5 *
Vacation Days taken: 70 **

OT Days ***: 41
5 were holidays, moved and compensated for.
36 were weekends, mostly **** uncompensated.

Streaks (10+ days in a row):

19 days (10 office, 2 home, 7 office)
12 days (5 office, 2 home, 5 office)
12 days (5 office, 2 home, 5 office)
18 days (16 office, 1 home, 1 office)
11 days (5, office, 2 home, 1 sick, 5 office)
13 days (8 office, 1 sick, 4 office)
19 days (6 office, 1 home, 12 office)
14 days (all office - followed by 1 day off, then another 5 days in the office)

(home == working from home)


* - I'm not 100% sure on this figure, but I'm generally healthy and 5 days over 2.5 years is normal for me.

** - 70 days of vacation?! Yeah. One of the (apparently fading?) perks of working in games is a "sabbatical" after some years of service. Basically it's a bunch of extra time off. Mine came up and I took it.

*** - Weekend/Holiday working days - to be fair, it was rare for me to work a full day on these days, though my longest OT day of 600 minutes certainly goes against that.

**** - mostly uncompensated weekend days - we were given a few extra days here and there, but it's hard to attribute them to specific weekend days worked.


So, there you go. Some numbers for one person on one project. I don't want anyone to think this is typical in any way - it's a data set of 1, so take it as just an example.

Conclusions

1) It's pretty clear that, for this one project, I worked a fair amount of OT.

However, I'm by no means bitter about this. Anyone that knows me should know that already! And this is by no means an accusation against any former employer.

Making a game is a creative process, and like all creative processes, it requires some experimentation. "Finding the fun" is a very touchy-feely process, and no amount of planning will ever be able to predict how long it will take.

That means adding features late, cutting a feature after it's built (wasting time), and a fair amount of backtracking - many a time have I torn out code when the design changed, only to have the design change back a week later and put the code right back in.

Overtime is just a reality for any creative process that has marketing involved - IE: any creative product you want to sell. That's just the way it is.

I happen to like the environment. But I also think it's interesting to get some detailed numbers and see how big of an effect it's actually having on me.

2) Interestingly, I found that the act of tracking my hours also helped me hit my estimates for task length. Estimating how long something will take to write is one of the unteachable skills of being a professional software engineer. The only way to learn it is by writing a lot of code and making a lot of bad estimates. Over time, you get a little better at it.

However, I found that shortly after I started tracking my time, my estimates got a lot more accurate. I don't feel like I changed my estimating habits any - rather, it was the heightened scrutiny of time worked that I think made the difference.

Trying to keep track of hours worked in my head is messy, and at 4pm on a Friday, it's hard to start a big task. Even if I felt I should make up for that long lunch the other day.

Having a big -120 in front of me on the spreadsheet made it clear, though. I should stick around for a couple extra hours. So instead of leaving at 6pm, I'll stay 'till 8 and balance things out. That works out to a 4 hour block of time to code, mostly uninterrupted, if I start something at 4pm on a Friday. Not something I'd have thought of before.

3) So on the whole, I'm quite pleased with this experiment. I've learned a lot about the actual impact of working in games on my life. Sure, this data doesn't show the whole picture, but it's a start. I'd love to see numbers from other people in the industry.

2 comments:

Sword said...

After a lot of time in the biz (during which it evolved and changed enormously, including periods where the company did track and pay overtime), I watched many friends and myself in a variety of roles. Two comments:

* your times look fairly typical -- some people manage their work/life balance differently in either direction, but there is constant pressure in both directions. The company will almost invariably push to get more done, which requires more time... it's up to the employee to manage their time. The peers generate their own pressure. Younger folk don't know how to balance it, or what is important about that...

* ... which leads to the second point: not all minutes are equivalent. More minutes per week brings decreasing productivity and increasing health and life costs. Having done crazy stretches a couple of times at varying intensity, I've experienced just how damaging this can be, and have seen it take a tremendous toll. It literally makes healthy people sick, and has destroyed many relationships. How do you measure the cost of that?

Greg said...

"... not all minutes are equivalent." - aye, indeed. I'm thinking about how to roll the numbers into a better stat to show that kind of effect. Perhaps a weekly OT sum, and then a chart to put the weeks beside each other, to see how it stacks up over time.

The physical toll is another thing that my numbers don't really capture. Though it is telling that 2 of my 5 sick days over 30 months fall in the middle of 2 of the 10+day runs. What doesn't show up in the stats is that those 2 sick days weren't far apart from each other, either.

I've long struggled with my weight, gone up and down a bit. It'd be fascinating to weigh in every morning and track that beside this chart as well.

Neither is a complete picture of my physical health over time, but tracking those two data points more closely could start to reveal some interesting trends.

The emotional toll is much harder to track. Though, as I mentioned, I was starting to track social events on the calendar. It'd be fascinating to watch a time-lapse, revisioned version of that. How frequently do I add things to that calendar, how often do I have to move them around work? That wouldn't capture stuff I declined because I knew I'd be working, but again, it'd be more data than I have now, and would start to reveal more of the picture.