The use of the expression “labor arbitrage” to describe outsourcing in general, and outsourcing of software development in particular, has always seemed extremely misleading to me.
The term “arbitrage” refers to the practice of taking advantage of a price difference between two or more markets: striking a combination of matching deals that capitalize upon the imbalance, the profit being the difference between the market prices. In other words, arbitrage means the possibility of riskless profit at zero cost.
Well, if you take a closer look at how outsourced software development works in the real world, none of the components of this last statement apply.
First, let’s take a look at the profit part. True, companies typically try to leverage the difference in the costs of IT labor between various geographies, and in some cases this results in reduced costs. However, it is no secret that many, if not most, companies fail to realize expected cost savings from outsourced software development, if there have been any savings at all. Besides, the drivers for engaging in outsourcing vary from company to company: sometimes clients simply can’t ramp up their teams quickly enough, or can’t find particular skill sets, without going to an outsourcing partner. In other words, the “profit” (cost savings) from using software outsourcing is far from guaranteed, and, unlike trading, it is not necessarily the main driver behind outsourcing in the first place.
Which brings us to the other part of the statement: risklessness. Unlike commodities, e.g. cane sugar or copper, all IT labor is not created equal. When you are outsourcing software development, you are not simply swapping your local IT talent for remote developers, just as you would swap out a hard drive in your computer. Differences in knowledge, technical skills, productivity, communication, and culture can and do significantly impact outcomes of development projects. Furthermore, for example, if an ISV brings in a provider to help with their product development, and the provider’s remote team fails to deliver outright, or the project runs late and disrupts the client’s product release schedule, the market can punish the company with reduced customer loyalty and revenue shortfalls. In that case, even if the cost savings on development are in fact realized, they are hardly worth it to the client. In short, outsourcing your application development is anything but riskless.
On to the final part of the formula: zero cost. It is obvious that outsourcing generates additional costs on top of the labor wage rates. Companies that set up captive operations in cheaper geographies have to take care of the administrative and management overhead associated with running a separate facility in that particular country, and that’s just the beginning. Even clients who hire outsourcing providers still need to set up a governance infrastructure and assign resources to manage the relationship and guide the vendor’s work in order to ensure desirable outcomes. Experienced buyers understand that providers’ rate cards are not necessarily indicative of the relative cost of doing business with this or that outsourcing firm.
So I suggest that we drop the term “labor arbitrage” from discussions of software development outsourcing, altogether. Strictly speaking, it is not applicable. Software development in general, and outsourced development in particular, is a highly complex endeavor with many factors and variables in play, and reducing the discourse to the terms more suitable to commodity trading doesn’t do us any good.