Ever since I started in the games industry, I, and most games professionals I know, have a pet game design, and a dream to start our own companies. Most of us never have a chance to do that, but with a promise to my wife to ‘only’ spend 3 months and 20K (so about 50K counting my own lost salary), I started down the path of potential riches. That was 5 months ago.
The initial schedule called for 4 months of game programming work for myself. In order to cut that down to the required 2 months, I decided to hire 3 juniors, plus one senior graphics programmer so my game would have all the cool new graphics effects. Of course I can’t afford that for 20K, and I heard that India was the best outsourcing location and that the programmers there were cheap and hardworking. So I decided to give outsourcing a try.
To get my programmers, I posted on a general job site, naukri.com. I thought I would get 20-30 resumes, interview maybe half of them, and pick the best of the bunch. What actually happened was I got got flooded with about 800 resumes, about 200 of which came in the first 24 hours. Because of the way their site is designed, anyone can apply to any job, regardless of qualification, and without reading the job description, and with a single click. You can imagine the resulting average quality applicant I got. I also had no idea what Indian programmers were worth at the time. I got prices ranging from $250 a month to $5000 a month, all of whom claimed a college education, and most of whom could not even program “Hello World” in a real-life application.
I ultimately hired 4 guys at, on average, $1500 a month. One disappeared on the day he was supposed to start work. One was fired after wasting 3 days just trying to compile the game and had to get help even opening and copying files. Another supposedly worked for two days, then disappeared, and told me he took another job else a week later. The last was the best qualified of the bunch: my former graphics programmer – a diamond in the rough comparatively speaking. He claimed to be a former lead programmer at nVidia, claimed 6 years of experience, could speak well, and could answer most of my general interview questions.
Yet at the same time, his graphics knowledge wasn’t what I was expecting. I’m a networking guy, not a graphics guy, so was prepared to interview a graphics programmer who knew so much more than I did it was like Chuck Norris beating up a schoolyard bully. What actually happened was closer to an untrained sumo wrestling match in a mud ring. I couldn’t really get a grip on what he knew, I knew some things he didn’t, and overall we were pretty evenly matched as graphics programmers. But I attributed this lack due to in part the language barrier, in part because he was awesome compared to the 849 buffoons before him, and lastly because I was so desperate to save money. My own inexperience in hiring didn’t help either.
I thought hiring an ‘expert’ with 6 claimed years of experience would enable me to be very hands-off about the graphics, and focus just on the gameplay and networking. Don’t meddle in affairs you know nothing about, right? Unfortunately, this approach messed things up even more. He put a lot of hours in – easily 7 days a week, over 10 hours a day. He got work done, from the standpoint of writing code and checking it in. Yet the game never made much graphical progress. The problem he solved were the wrong problems, solved the wrong way, and even that inefficiently and poorly written. Many tasks ended up taking 4X longer than they should have – once to explain every minor nuance, once for him to program it, once for him to redo it after I point out obvious errors by glancing at the code for 30 seconds, and the final time for me to give up in exasperation and do it myself.
As time progressed, and this kept happening, I had to learn more and more about graphics programming in Ogre 3D just to keep the game from degrading. Eventually it reached the critical threshold where it was easier and faster to do everything myself. I forced him to resign, and only regret not doing so sooner.
What conclusions can one draw from this? I have a good sample set of applicants and interviewees – the average applicant on a general job site is worthless. To be fair, this is probably also true on general job sites in the US as well. There is a huge variation among asking salaries – a twenty-fold difference between the cheapest and most expensive. I’ve found that you get what you pay for – ignoring the outrageous endpoints, the more expensive guys are clearly better.
I hired 4 guys – not a statistically meaningful sample set, but for what it’s worth, all 4 of the guys that did work worked hard and put a lot of time in. The comments about Indian programmers being cheap and hardworking is actually true. It’s only their competence that is lacking.
If I have to pick one common problem among all the applicants and workers I’ve had from India it’s literalism. If you say “Write a ship explosion effect” they will – but it will look stupid, be inefficient, and ignore the game design you just told them about two days before. And they honestly won’t know what’s wrong. So if you be more specific, and say “Write a ship explosion effect and that looks like this image, and do so efficiently” they will bombard you with a dozen stupid questions. It’s like programming a computer – you have to give ALL the information. Whatever information you don’t give will produce arbitrary and meaningless results, such as only supporting 1 lights in shaders (I didn’t say we needed more than one, I just said we needed light support), or doing 3D effects in 2D (Our game is in 3D, but I didn’t say the effect had to be in 3D), or making a cloaking effect where the enemy player’s 3D name still shows up (I didn’t say the name had to be invisible, only the ship).
Not all outsourcing is bad – I have some artists and a programmer in Europe that are doing an excellent job. But outsourcing to India has been a definite bust for me.
Fortunately, the project is not at risk, since graphics is just marketing, 90% of graphic quality is your artists anyway, and I have fantastic artists. But you definitely get what you pay for. Next time I’ll just hire someone in the US, at full salary.