I’ve been thinking a bit lately about outsourcing. Specifically outsourcing the programming on a game. You see, I have a boss who thinks it’s funny to talk about how we programmers ought to be careful not to demand too much in the way of salaries or benefits or all our jobs are going to go to India.

I’ve decided he has basically no idea what he’s talking about. There is no risk of any significant amount of game code work moving offshore. Unless he’s going to move the entire studio to India my department is pretty secure. (Or at least as secure as anyone can be in an industry where there’s news of a studio going under about once a month.)

Rands in Repose posted on the subject of outsourcing a while back. He wrote that “Cogs get outsourced” and included a list of questions that help you evaluate your offshore risk factor:

  • How much process is there in your job? Do you follow a proscribed rigid work regimen? Do you know what you are going to be doing every single hour of every single day?
  • Can you see a flow chart from where you’re sitting right now?
  • Can you see a work-provided clock (not yours) from where you’re sitting right now?
  • Do you work in customer service or technical support?
  • Are there big black binders which describe the work that you do?
  • Is there a glossary for new hires?
  • If you work in software development, are you handed specifications from nameless, faceless designers? Do you NOT have a relationship with the people who are responsible for testing your work?

Let’s see how we game programmers do:

  • Our jobs contain a moderate amount of process; we are somewhere between artists (lots of process) and designers (almost no process) on that scale. Our process tends to be in the form of best practices: code reviews, unit tests, checkin procedures, naming conventions. We never perform the same task twice.
  • No.
  • Yes, but no one pays it any attention.
  • No.
  • Nope.
  • Yes, sort of. There is a lot of vocabulary for a new hire to learn when they join the team, as well as the best practices described above.
  • Hah! The designers have a good idea what they want to see in the game, but will freely admit that they will need to adjust things once they see their designs in action. The artists have basically no idea what they want and require constant high-contact attention. Of all our customers, only Operations is able to write a detailed spec of what they want. We interact with every customer on a daily basis.

The fact is, game programmers are not cogs. We work on something different every day. We constantly adapt to changing requirements from all of our varied customers. We don’t work from a script, and are probably the least compartmentalized group on the team.

A recent news item on Gamasutra seems to contradict this idea. It cites a study by Amritt Ventures that says 22% of developers outsource some of their programming work overseas. Unfortunately the study itself doesn’t seem to be generally available, so I couldn’t look up who participated in the study, how “programming” is defined. And like all studies of outsourcing I’ve read it’s full of apparently contradictions. When 27% of developers have fired three or more outsourcing vendors and 27% also complain about poor quality from outsourcing vendors, why is outsourcing still on the rise?

The answer might be found here. Amritt Ventures will help you to outsource entire games overseas. Moving the design alongside the programming certainly eliminates the communication problems that 12 time zones would cause. And at a very high level it’s relatively easy to spec out an entire game. For instance: “I need a tie-in game for this movie and I need it in 12 months.” or “I need a flash game to advertise this cereal.” If you really about the low-level details of the game you get, you’re probably at least partly a designer, and this kind of outsourcing isn’t for you.

There are obviously also home-grown game designers in India and China that want to build their own visions, that just doesn’t really count as outsourcing. :)

When it comes to US game developers outsourcing the code overseas and keeping the design in-house, I just don’t see it happening. And I don’t see Flying Lab’s leadership transferring itself to India any time soon, so design isn’t moving overseas either. Despite the FUD surrounding outsourcing in the larger high tech industry, it seems like one thing we game programmers don’t have to worry about.


5 Responses to “Outsourcing”

  1. Lars thought on :

    My experience with outsourcing is that you get what you pay for. India’s education system hasn’t kept pace with the demand for its labor, so while there are plenty of really bright people there, you get a lot more people going into programming simply because that’s where the money is, not because that’s where their heart or true talent lies.

  2. BugHunter wrote on :

    The two biggest project disasters I’ve ever experienced were the result of outsourcing to India. In both cases I ended up having to commandeer the projects and redo them in rediculously short amounts of time (“We’re going live tomorrow, can you rewrite this program from the India team so that it works?”).

    Does the pirate king know you have a blog?

  3. Joe wrote on :

    Overseas outsourcing boosters somehow manage to gloss over the disasters. I’m not quite sure how they get away with that, except maybe that nobody wants to admit their own mistakes.

    All of the pirate kings (of which there are a few) know I have a blog. I’m pretty sure this particular boss is mostly joking anyway.

  4. David Hunt thought on :

    Us designers have very rigid processes! They just don’t extend much more than 30 minutes past the present. :P

  5. Wolfe replied on :

    I sometimes feel uncomfortable extending a design beyond 30 minutes.

Leave a Reply