Not so bad:
1) I've been putting in a new ecommerce architecture for one of my clients using Mule and ATG at the front end. We need to call an external Webservice so had the usual Java debate, CXF vs Axis 1 vs Axis 2. As I'm getting old, I'm more pragmatic than I used to be I advised their tech team to use the same method as their large Indian offshore company so that they would only have one technology to teach their developers (support and maintenance being a major concern). The internal architect came back to tell me they had hard coded each call using DOM to build and read the services - with it taking 50 man days per call (over 2 man years). By that afternoon, we'd chosen a framework and built all the calls, as well as refactoring their code to use our Mule services, and have built test scripts to test it all! This was frustrating for their finance dept.
Worse
2) At a previous client we were asked (as a niche supplier) to code review the work coming back from offshore. Again it was Java and the code showed a total lack of knowledge of the language or object orientation. Example issues were - all instance attributes declared as public which led to a total lack of encapsulation - classes directly referenced other variable classes with impunity, no use of interfaces at all, copy and paste code where inheritance may have worked, I say may as the code was written as if Java was a procedural language - one massive class, one main method...
Appalling
3) A 2nd hand story. I worked with an architect who was sent to India by a retail bank in the UK as code wouldn't compile when returned to the client (Java again). He arrived and asked what IDE they used to which they replied Notepad - "ok" he said, not sure why, but I assume you use Ant or Maven to build your projects. "No, we just write it in Notepad and send it to you"... That explained a lot.
Anyway, all the above led me to start my own company (
shameless plug) and we get quite a bit of work fixing offshore issues, or actually helping large consultancies improve their project quality before the client sees examples like the above. I would like to point out though, the issue IMHO is not with India or the countries in question, it's with the mentality of large companies who stuff in as many graduates into the mincer as possible, whether they have IT / programming qualifications or not, with little or no programming training with the hope that "it'll be ok". Grads are of course, some of the most profitable resources for a big company as they're paid peanuts. Having been in this situation at Cambridge Technology Partners in the UK, I saw tonnes of similar mistakes being made by arts graduates with no programming experience (including somebody using 2 digit years in code in 1998!).
Finally, coming back to the original topic, unless something major has changed in the States in the last ten years the CEO is talking utter rubbish - the USA is where tech innovation happens, with the valley still a major centre of this. Also, every US CTP technical person I met was utterly excellent at their job (Boston and San Matteo offices for me). Vineet Nayer is just peddling lies