Thoughts on outsourcing work to India
Ever had trouble finding a developer to meet your deadline and decided to outsource the work? Or just curious out that outsourcing can go? Well read on, as I provide some insight on the matter. Or if you are just thinking of good Indian food, mmm Naan...
First of all, I have to say, I have two Indian student assistants who are absolutely great workers. That is to say, I have nothing against Indian workers, just rather some comments on what outsourcing work to India can be like.
Familiar with ACID? ACID is a computer science term for atomicity, consistency, isolation, and durability. We also have CAP: Consistency, Availability, and Paritition Tolerance. These are often used to describe properties of database systems. (Side note: Check out this great little writeup on CAP) So what do these have to do with hiring Indian developers? Tradeoffs.
If you believe economic theory, life is a serious of making decisions on tradeoffs. Well, it's certainly true for outsourced work to India. What you are trading is that you are most likely going to get faster results for cheaper, but, siginifcantly lacking in quality. As happygolucky says on Reddit: "Due to cut-throat competition, marketing guys inflate skillsets and quote low rates. Result - Inexperienced developers working 18-20 hrs churning out crappy bloated sphagetti code. One small requirement change and whole thing goes for a toss."
And this is exactly what I have seen in the 4 projects where I have seen outsourced work. For instance, one groups sold itself to a client as "Drupal experts." To start, the client didn't know what SSH or SCP stood for, only knowing how to FTP. Ok, no big deal though if they know what they are doing, right? Well, except they didn't. They knew just enough to make one page appear as it should. Thinking about updates? Too bad, the devs overwrote core Drupal code, so any updates will break your site. Thinking about changing themes? Too bad, the devs put the theme in the wrong folder and thus you get a white screen of death. So in exchange for atomicity and faster development benchmarks we lose consistency and durability.
Now, what have I seen Indian developers understand and do right? They understood how to take the requirements, and produce a one-off build that looks exactly like the requirements wanted. It may not have performed to the requirements, and it certainly couldn't withstand any changes without breaking, but it did meet the visual requirements of the speck and come in only barely behind schedule. This may not work out well for long and complicated projects, but it could work great for short, one-off sites or web pages that you need to get up as soon as possible. This contrasts with some of my work. I am quite a busy person, and I cannot drop everything to rush one project. I also focus on long-term sustainability of the site and functionality over detailed accuracy to the exact look. Granted, the outsourced work turns out not to look perfect either, when you begin to notice all the misspellings of English language words and the behind the scenes code.
So, what to look for if you do choose to outsource? Again I turn to redditor happygolucky with the following advice:
"Outsource, less intensive stuff like, test apps, utilities, stuff not that critical to your business. Take interview[s] (telephonic/videocon) for each and every developer working on your project. Dont go for the lowest quote, do your research on the company before outsourcing."
For the Indian developers out there, I'd like to advise that you focus on building your own reputation through small projects and establish good business through word of mouth. You will see the marketing gurus pimping out their coding teams across the internet, but it's rare to find quality talent. Elance and rentacoder can't or won't do a good job of weeding out multiple accounts and scammers (speaking from experience) and thus word of mouth is going to be the best driver of business. Build skills and perform good work on your own instead of rushing out projects for fly by night web shops and it will make the industry better for all of us.
The key takeaway is that much like how in database work you have ACID compliancy, with tradeoffs between consistency, speed, and reliability you will have tradeoffs with Indian workers between speed, cost, and time. They will usually deliver fast and at a cheaper rate, but quality and durability are sometimes going to suffer.