It is a fallacy to think if you throw in 100 cheap(er) workers who have no subject-matter expertise against a new or legacy redeployed business application, they will be remotely successful in its creation.
My company has selected one of the presumed top companies from India to re-engineer our mainframe-based system into a Java-based, WebSphere, Web-deployed system. So far, their code has a 60 percent failure rate — we actually believe it is even worse than that because every component has not been tested. These are supposed to be knowledgeable workers who are marketed as being "experts" in their technology.
Their strategy on our particular project has been to bring in their gurus during the elaboration process, who have said they can do all the good and wonderful things we've asked for in our design, only to be disputed and denied by the current crop of "apparently" less-skilled workers because they don't know anything about the promises made by their predecessors and they can't get the requested changes done. We are not asking for the system to greet each user personally by name, pour them a cup of coffee and ask if they want the system to do their job for them. What we have asked for are common Web-based system features, all of which can be and have been done in legacy systems.
These guys were blocking e-mail addresses if they included any special characters, including the dash and at sign. My company's domain [name] is hyphenated. We already know that we will need to fix the code before it can be deployed — in many cases,
A critical lesson learned on this ongoing engagement has been that you cannot "assume" that they know anything about business systems development — not even knowing that "inquiry only" means that no fields can be edited or deleted and what the concept of "table-driven" means — which is not "hard-coding" variable data into the application.
I cannot provide the exact numbers on the cost of this engagement, but I know that they have greatly exceeded the budgeted cost, significantly more than it would have cost to recruit local talent. Even though they've had their analysts onshore who were supposed to communicate all of the requirements to the off-shore developers, we have still had to send functional people to India to work with their staff. The additional expense of having to re-engineer their re-engineered code will be astounding.
Where I will grant them their due is on Y2K-type projects [in which] they don't need to understand the system or business process and can do assembly line code changes. You can't expect them to be "experts" in a market that has no representation in their home country. Just because you know what a car is doesn't mean you know how to construct one — and doing a bobble-head impression doesn't make it so. If you have the staff that can provide detailed design specifications on what a car is, what each component of the car is supposed to do, how the pieces are supposed to interact, where the dependencies and critical junctures are, and what should happen when the car is turned on, in park or approaching a stop sign, you need to think outside the box of "outsourcing is a good thing."
Just because outsourcing is charged against a different cost center doesn't mean you are saving money in the long run. It takes them longer to get things done, so their reduced rates often cost more in the long run. From what we are now being told, cheap labor in India is now a thing of the past. But, if you think about assembly-line skills, why not offer laid-off, forced-out or early retirement workers in the manufacturing industries those jobs? They already have the repetitive skills knowledge, understand how automated systems are supposed to work and, in most cases, you don't have to strain to understand what they're saying.
Last thought, they treat their workers like sweatshop employees, threatening them that if they don't work 100 hours per week for 40 hours' pay, there are 10 guys lined up to take their place. (Don't really think that is still true.) Isn't that a civil rights violation in this or any other country?