At the company I work for we have gone through two phases of off-shore development. The first phase used the popular more for less coding scheme. Before I came onto the project it was determined that we can outsource the business logic of our internal web application to a group of Indian developers. They had promised to release the code within a few months and when it came time to deliver....well you can imagine the horror.
The room was filled with all the right people within the company seated around a projector as the developers showed their achievements. They stepped through the demo and except for a few glitches the application seemed to work as intended.
When the US developers begin to look at the code they checked in, it was discovered they had hardcoded close to 35% of the code to make it appear that it would work. From that moment on, it was a battle between the business owners on what they expect to have completed and what the Indian firm would deliver.
Unfortunately this was the tip of the problem, the developers had written code that followed every anti-pattern imaginable and then some. To be fair, this project had its problems way before the Indian developers got the opportunity to begin the process of creating a big ball of mud.
Then the company decided to ramp up developers both in the states and in Asia. Our company has manufacturing plants in the SE Asia area and they wanted to share the knowledge and experience with our Asian partners.
I will admit that the US developers at the time had as much experience and talent as our Asian team, which meant none of them had done much .Net programming and NO web development. They had been sent to a .NET class and some web programming classes six or eight months before they began to develop.
3 days ago