One of my goals in going to GDC was to get a feel for what the industry is like on the inside. I think I succeeded in that, to some extent; what I wasn’t expecting, however, what that I’d learn so much about what I like about my current job, and about things to keep in mind whether or not I eventually move professionally in a game-related direction.

The talk that did the most to crystallize these thoughts was the Harmonix one. The speaker started the talk off by addressing the issue that everybody at the company has an idea of how the games should work, should evolve; rather than treating this as an imposition (how dare those programmers tell the designers what the game should be like!), they apparently treat this as an opportunity, a resource. This doesn’t mean that they let everybody go off and stick their own ideas into the game—indeed, most of the talk was about addressing that tension, about how to get a coherent game in the face of so many cooks. But what it made me realize is: I’m totally one of those people who has opinions about everything, and who gets unhappy if his opinions get brushed off. (I’m quite happy to have my opinions argued against and discarded after due consideration, though!) So I’d better spend my time working at companies like Harmonix.

And that has nothing to do with the video game industry: on any but the smallest project, there will be multiple voices that want to be heard, that (in my opinion) deserve to be heard. One of the reasons why I’ve stayed with my current job for so long (coming up on six years!) is that I’ve never (or at least rarely) felt that my voice wasn’t heard: people have given my ideas due consideration, and a reasonable number of them have been adopted by the project. (And a reasonable number have been discarded, too. That’s okay. Incidentally, none of what I’m saying here should be taken as arguing against the agile idea that there’s a Customer who ultimately decides what goes into the project: I have nothing against somebody other than myself having final authority over certain decisions, I just want those decisions to be made after appropriate Consultation.)

This also shed some light on the sort of organizational role that I’d prefer. For the last four and a half years, if I’m counting correctly, I’ve been managing people, but I’ve maintained a job label that puts me in Sun’s engineering track rather than it’s manager track. And this isn’t just a conceit: I will immodestly suggest that I know the details of our product’s code as well as anybody, and I’ve touched the code quite regularly over the course of those years. (And continue to do so: some of the back story behind my last post is my thinking that I should increase my technical efforts in certain areas.)

This puts me in an uncomfortable position career-wise: I like what I’m doing now, with a foot in the programming world and a foot in the managerial world, and I’m all-too-well aware that the vast majority of jobs out there make you choose the one or the other. And I won’t rule out the possibility that I’ll eventually leave the programming world entirely—in particular, I’m getting more and more curious about how organizational change works, which fits better in the managerial world. (This is one of the ways in which my current job continues to hold my interest: over the last half-year or year, I’ve gotten to talk to more people in other parts of the organization, and started thinking about how we might do things differently.)

But, for the time being, I think the main aspect that I like about being a manager is that it makes it a bit easier for my voice to be heard, about the organization of the team as well as the organization of the code. And this brings me back to the thoughts at the start of this blog post: I’m pretty sure that I’d be happy in any sort of position where my thoughts were heard, irrespective of whatever formal power my position within the organization gave me. So I shouldn’t be thinking about being a manager versus being an individual contributor: from the former, I should take the idea that I want to be heard, and from the latter I should take the idea that I want to be in touch with the beauty of the details of what I’m working on. And wherever that leads me is okay.

Back to GDC and the video game industry: in the GDC Confab, Michael asked me if I was thinking of entering the gaming industry; my answer was that I wasn’t sure, and one big worry I had was the industry’s belief that it’s appropriate to force people to work extremely long hours. (I didn’t have anything to say at the time about the “But What I Really Want to Do Is Make Games” panel, but one of the comments that’s stuck with me was a panelist saying, basically, games journalists are already used to working ridiculous hours, so that’s a way in which they fit right into the game development world!) I don’t think that’s a good way to produce software in general—I’m pretty sure I can’t maintain disciplined, creative thoughts on one project for more than 40 hours a week—but even if it were, I’m not so obsessed with my career that I’m willing to let it dominate all other aspects of my life, my family in particular. I’ve recently heard the statistic claimed that the average amount of time people spend in the game development industry as a whole is five years, while I’ve already been at a single job for longer than that; the humane working conditions are a big part of that, and any industry would have a hard time learning and growing if it churns through its workers as quickly as the games industry apparently does.

It is certainly the case, however, that a lot of what I saw at GDC excited me. People were talking about all sorts of interesting things, things that I don’t necessarily get a chance to think about so much in my current job. And its artistic nature is a big draw for me: I’d like to work on something beautiful, something that nourishes my soul. Though, to be sure, code can be beautiful and nourish my soul, even if the beauty is hidden within the product: it may well be the case that I’d get more out of revealing the beauty hidden within some of our code at work than working on something more overtly artistic! Also, working on games would be a change of pace, which I like; I’m sure the fact that my role at work has changed significantly every year or two is one of the big reasons why I’m still there. (And has been changing again over the last year, the last few months, even seeing the seeds of new ideas over the last couple of weeks.)

If I had to say what sort of position appeals to me most right now, here’s a stab at what my list would look like:

  • I’d be getting my hands dirty with software
  • but would be able to think and talk about aspects of the product beyond just the code
  • (and have people listen to me!)
  • including the structure of the organization.
  • (Said organization would ideally be small,
  • and in particular I’d be on a small team.)
  • That structure would be an agile one
  • or, better/broader yet, a lean one,
  • including working at a Sustainable Pace.
  • (Working close to home would be good, too.)
  • The product would be a work of art
  • (a game would be nice),
  • working on it would nourish my soul.
  • And I’d be learning something new,
  • both technologically
  • and at a domain level.

Which is a lot to ask for. (But if there are any companies in Mountain View using agile methods to write soul-nourishing games in Erlang, please get in touch!) In the mean time, I’m doing pretty well on that checklist right now…

Post Revisions: