Macro Economics
Off-shore IT Myths Debunked

Related Links
Discussion Boards

By WatchingTheHerd
June 25, 2009

Posts selected for this feature rarely stand alone. They are usually a part of an ongoing thread, and are out of context when presented here. The material should be read in that light. How are these posts selected? Click here to find out and nominate a post yourself!

Vineet Nayar, the highly respected CEO of HCL Technologies, one of India's hottest IT services vendors ... related a recent experience with an education official in a large U.S. state. The official wanted to know why HCL, a $2.5 billion (revenue) company with more than 3,000 people across 21 offices in 15 states, wasn't hiring more people in his state. Vineet's short answer: because most American college grads are "unemployable."
They're far less inclined than students from developing countries like India, China, Brazil, South Africa, and Ireland to spend their time learning the "boring" details of tech process, methodology, and tools--ITIL, Six Sigma, and the like. ... [So] most Americans are just too expensive to train.


This ground has been tread before here but I feel compelled to weigh in again and call BS.

Americans "just too expensive to train?"

This might be an effective claim for an off-shoring firm exec to sell to clueless American upper management but in the real world, this is garbage. Any reporter writing stories about outsourcing and propagating these types of sound bytes should be forced -- at gunpoint -- to read the classic Fred Brooks text The Mythical Man-Month.

If they did, the following points would become crystal clear:

1) development of large-scale software systems is still mostly art, not reductive science that can be distilled and dumbed down to simple, interchangeable parts and assembled like a Pontiac. You can certainly TRY to develop software like this but you get... a Pontiac

2) a crucial part of any large team project is the pyramid structure of the team's management and communication flows. If the pyramid is too flat, the cats go off in to many directions without a coherent, unified design and corrective cycles to keep them marching in a single productive direction and the whole system won't come together. If the pyramid has too many layers of management, communication costs and mis-information will impair both the design and productivity which will produce inferior products and blow budgets

3) there's a huge difference between "software" and a "system product". "Software" is any program that compiles correctly and produces correct results for expected inputs and provides some value. A "system product" is a collection of software and supporting documentation that

* compiles successfully and produces correct results for expected inputs
* has guardrails to identify unexpected inputs and produce valid errors rather than false results or no results
* includes "housekeeping" functions to operate the tool as part of a larger framework
* includes design documentation that ensures inevitable modifications required later in time can be made consistently and reliably without starting from scratch or major re-factoring
* includes documentation on "routine maintenance" to ensure the system stays running, can be backed up safely, etc.

What does any of the above have to do with outsourcing (and off-shoring in particular)?

The idea you can pay an army of outside contractors to write your mission critical applications and create all the "leave-behind" documentation of a true "system product" and have a skeleton team of permanent employees absorb it to operate the system and make subsequent modifications is pure fantasy. Even if the outside contractors produce good documentation, the nature of software still makes that documentation VERY difficult to absorb if you the reader were not intimately involved in the actual source code development.

The idea you can pay an army of outside contractors for major system work when the contractors are working half a world away and on the opposite side of the clock and "herd the cats" and keep them marching in the same direction without undue amounts of extra management time and keep a project on schedule is pure fantasy. Sure the off-shore team might be 50% of the hourly rate of local contractors or full-time staff. Chances are your 50% hourly savings will be eaten up in the form of extra "ramp-up" time as you haggle over terms and conditions and sit in meetings (much like depositions) in which you explain what the system is supposed to do and EXACTLY how they are to code it, test it and deliver it back to you. These issues are tough enough to tackle in the same room, much less when the worker bees on your side and worker bees at the outsourcer are half a world apart working on opposite sides of the clock.

All the money that American executives think they're saving by not training local workers is being spent incrementally, in hidden form, on EVERY PROJECT as a new crop of outsourced or off-shore resources are "brought up to speed" on the latest enhancement or bug fix release on your mega-system whose development was outsourced last year. Few college graduates anywhere on the planet enter the work force creating high-availability, fault-tolerant, on-line transaction processing oriented systems with AJAX GUI front ends, web-service oriented middleware tiers, and Oracle DB back-ends housing terabytes of data (add your own favorite IT buzzwords as desired...). Learning those skills takes practice in the real world -- the only choice is who gets the practice?

American firms giving this practice to off-shore contractors in an attempt to "save" 50% on projects that wind up taking 2x as long as they should are doing so at their own eventual peril.