Most IT directors don’t outsource development because they disdain software development. They’d still prefer to develop in house. They outsource to save money and get applications launched more quickly. With no budget to hire headcount or on-site consultants, they look to off-shore or to specialized firms for better cost economics.
But alas, the sacrifices are frequently worse than the problem.
While it may be cheaper, someone located 12 time zones away who doesn’t understand the internal customers you support or even speak your language is really hard to manage. And it is particularly hard to collect and share user community feedback when there are time zone, language and corporate culture differences between you and your outsourcer.
It’s no wonder that EDS now has a whole division of consultants dedicated to helping companies figure out how to manage the costs and quality of their outsourced projects. The horror stories are well documented. Some experts now claim that programs developed off-shore are 35%-40% buggier than those developed in-house. (Source: DiamondCluster Consultants, October 2003)
Most companies can’t accurately measure the productivity and costs to develop internally. The real costs are more than just wages. Factor in project management fees and resource usage, DBA time (usually at off hours, which has other costs like stress and employee productivity associated with it), bug fixing and the increase in Q&A/testing, both with your outsourcer and your own acceptance testing.
Even costs like telephone and overseas shipping can be a factor. And with off-shore outsourcing, the development cost differential eventually evaporates as we’ve seen in manufacturing industries as they move from one country to another. Balance those total costs with resource drains like language barriers and end-user feedback integration, as well as flexibility on the project schedule and the end result can make the case for outsourcing much less attractive.
So what is a budget-challenged IT director to do?
The alternative is to keep the work in-house, let software tools do a lot of the heavy lifting for the routine infrastructure programming, and focus developer resources on the unique and career-building code that gives the application personality and dimension. This solution is modern code generation.