There's a lotof angst in the world when it comes to the topic of outsourcing software developmentprojects to locations like India where the work is cheaper.
The project I'm working on currently has people staffed in Chicago, Dallas, and Mumbai,India. Building software with such geographically distributed teams is a challenge.We deal day-to-day with the logistical obstacles caused by having a significant componentof the team physically distant from the core project. However, utilizing lower-costresources in other parts of the world allows us to deliver the same softwareat a lower price point than our competition. In the end, the customer gets their softwareat a price/value point that they are happy with, and we keep the account. Itworks out well for both of us.
Since the tech bubble burst, companies are looking for any way that they can minimizetheir IT spending and still get the software that meets their business need. Thereare a vast number of competent people living in India who are willing to work formuch less money than an American developer who has a similar skill set. Economically,it just makes sense to find ways to get those people involved. And, in case you hadn'tnoticed, the are companies who are figuring out how to make remote developmentwork in an enterprise scenario. Those companies who know how to do this will win outin the long term, because it's impossible to beat India on price.
The argument can be made that locally-produced code can beat remotely-developed codeon quality, because physical proximity leads to greater interaction with the customer.I think it's safe to say that the accuracy of human interpersonal communication degradesin proportion to the physical distance between the involved persons. Thus, Ialso think that it's safe to say that leveraging India increases the liklelihood thata project will misidentify project requirements and deliver the wrong solution tothe customer. It's for this reason that I think consulting companies whose businessmodels are entirely based around India development will ultimately fail. Sure, theycan beat anyone on price -- but the solutions that they deliver may not be exactlywhat the customer wants. In order to get around this, they tend to use heavy-handed BigDesign Up Front methodologies that are significantly less agile than morelightweight approaches to software design. Thus, "all India, all the time" model tendsto limit the ability of the customer to adapt to change once the project has commenced.
A reasonable solution to this lies in the middle -- utilize low-cost remote resourcesto do the bulk of the "boilerplate" implementation, and keep higher-cost local resourcesphysically proximate to the customer where they can participate in low-latency discussionsto gather requirements, provide the overall system design, and tactically solve deeptechnical engineering problems that requires a tight feedback loop with the customer.The result is better interaction with the customer while retaining mostof the price point advantages that India provides. Most of the "'Big 5"consulting companies have adopted this model to some degree, and other IT shops arefollowing suit via subcontracting.
So, what does that mean for the American software developer, one who wants to writesome code and make an upper-middle-class salary while doing it? Well, for one thing,the work we do is becoming commoditized. Software development was the cottage industryof the 1990's, and this decade is seeing the equivalent of the Industrial Revolution.During that period, textile workers faced competion from machines who could do roughlyequivalent tasks faster and cheaper than the human workers. Those people who had aunique skill set that couldn't be replicated by the machines didn't fear for theirjobs, beacuse they weren't in danger of being replaced. Today, we as software developersface competition from people who do much the same things we do, only they live inanother country where they don't get paid as much money as we do. Just like duringthe Industrial Revolution, having a rare and unique skill set will be critical toremaining relevant in an evolving world.
Update 7.18.03: First we start losing jobs to India. What'snext?
