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.)
- 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.
- Yes, but no one pays it any attention.
- 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.