Outsourcing

Outsourcing

Offshoring software development can seem like a slam-dunk when daily rates abroad can look like hourly rates in the USA. But success is not guaranteed. We look at the reasons why.

We should probably state our biases - Software Plumbers development center is currently located in the U.S.A. We have an interest in demonstrating that offshoring software development tasks is not always the best way to cut the cost of a project.

I personally have spent a good deal of time in the tech parks of Pune and Bangalore, and it is hard not to feel intimidated. The sheer size of the Indian outsourcing industry, combined with the youth, education, and work ethic of the staff that throng the corridors and canteens of those facilities, will always make it a powerful player in the industry - even as the cost differential begins to erode.

That said, I have spent even more time fixing horrendous and avoidable problems with software that has been developed in those low-cost centers. I have seen products that were successfully developed in the US and Europe fall into obsolescence soon after their development center was moved offshore.

I have struggled, over and again, to reconcile these two perspectives. The conclusion I have reached is that there are two primary causes of failure:

  1. Poor Productivity Metrics. It is incredibly hard to measure the productivity of a software developer. Two pieces of code may be functionally identical, but the more succinct and easily comprehensible of the two is more likely to remain bug-free in the long term, and the cost of resolving any bugs will be lower. Thus, we want developers who write less code, and who are prepared to invest time commenting, formatting, and structuring that code. Such effort tends to make a developer individually less productive. When business is won by quoting the lowest possible cost for the first version of a product, there is no real incentive to make that effort.

  2. Youth. In a rapidly evolving technical environment, experience working with older technologies is not necessarily an advantage. However, full lifecycle experience - that is, supporting software products that are obsolescent or in which bad technical decisions have been made - is invaluable when it comes to teaching the kind of best practice which delays obsolescence and avoids bad decisions. However, since young developers are also normally less expensive developers, a focus on cost per man hour may mean that a team lacks the full-lifecycle experience which will ensure best practice is implemented.

When offshoring software development, lowering cost usually the primary motivating factor. However unless careful attention is paid to team structure and making sure the offshore team demonstrably follows best practice, a reduction in development cost may also mean either premature obsolescence of the resulting product or a considerable increase in the cost of ownership in the long term.