I’m testing the beta version of the New York Times Reader (which I have a few beefs with, but I’m sure lots of people are already finding the same problems, so there’s little point in elaborating on those here). Beta testing it forced me to open a free account at the nytimes.com site. During the last few days the Reader happened to bring me this article about the challenges India faces in the software technology sector.
It got me thinking about my own experience with offshore software development outsourcing. Grossly simplified, what I see as the biggest problem is that the engineers you outsource the work to are good a cranking out code once they have a stable and very detailed requirements specification. But when it comes to testing and independent, creative work they fall quite short on what may be desired. If you don’t have detailed requirements, but loose goals, you’re in for a very bumpy ride in my experience.
Add to that the challenges of communicating clearly across time zones and cultures and you usually end up with delays and projects going over budget. Not to mention quality issues. It seems as if some coders don’t take responsibility for the initial quality they produce, but rely on testing at receiving end.
I’ve seen this personally in the last few months, and I’ve had reports from people I work with who have experienced pretty much the same thing. I know of several projects where the outcome was much much worse than expected.
I’m not saying that offshore outsourcing in general doesn’t work, but my experince tells me you need to be very very careful about who you pick as your contractor and you need to be even more careful about tracking the work on a week-by-week basis, possibly even a day-to-day basis.