I had a guy from India call me today. He runs a programming company there that offers game related outsourcing for $25 an hour and offered to take on any tasks I might have.
I probably shouldn’t have said this, but the first words out of my mouth were “That sounds good, but I have very high standards about who I will work with, and I don’t work with junior guys.” I then went off on a short rant about how I hired guys from India before and everything got screwed up due to mindless literalism. I gave the example of how I asked for shader light support in my game, so my Indian ex-programmer implemented a shader that only supports one non-directional light ever. And although I said it in a nicer way, I ended with “I don’t know if all Indians are like this or not but if they are I don’t think your guys can do the job.”
Now that I reread what I wrote, it comes off as a lot meaner than how I said it, but the essence is correct. I’m just sensitive right now because I was really screwed by that whole ordeal. I lost 6 months of graphic development and over $10,000 paying the guy, not a line of code he wrote is still used, and now at the very last minute before shipping I have to hire someone really expensive to salvage the situation.
Anyway, we agreed they can start with a smaller task and see how it goes.
I sent them the spec to implement the Autopatcher GUI interface for Windows, for RakNet. This one got screwed up by mindless literalism about 6 months ago. This was back when my ex-programmer from the Ukraine was working for me. While he literally did design a GUI interface, it was the simplest thing you could do and still call it a GUI. It totally ignored the intent of the task, which was to make a nice looking interface with a graphical background, buttons, etc. that the artists could fill out. I was actually better off with the original console window than what he did, and it wouldn’t have costed me 3 days of pay and development time for nothing. On top of that he used some proprietary libraries with incompatible licenses with RakNet without asking first. Even if he had done something acceptable, I wouldn’t have been able to use his work.
I actually said in an interview a couple of days ago “I don’t like coming to people with problems, I like them coming to me with solutions.” That’s why my programmer from Portugal is so good. He thinks about the intent of the task (to make a good game) and tries to do a good job, rather than the bare minimum. So I can be confident that the final solution is smart and usable. It really helps having someone I know can do the job, and moving the schedule forward.
Somewhat related, so far I like outsourcing so far more than hiring people, except for programming:
1. I don’t have to spend time recruiting and interviewing
2. If they screw up, it’s their time and money loss, not mine
3. The pressure is on them to meet the agreed deadline, rather than on me.
4. It’s actually cheaper when you consider that I don’t have to train people, I can hire around the world, and I don’t end up with the situation of paying someone for days/weeks/months with nothing to show for it.
It’s a good way to go for art and sound.