Kirk Allen Evans picked up on my recent offshoring post and added some good commentary.
However, while reading the comments, I came across this one from someone called "AT":
Brr... I do not understand "cost vs. quality" trend.
Usually you can hire the same technical level of people and the same level of management in cheap country like an India, Russia or Ukraine.
But sometimes you can get weak technical level or weak management. The same can happen even in case if you will work in USA. In USA this is rare - as weak company always die, but in India one project can feed company for a years.
The whole new concept of outsourcing will be to find correct team and possibly reduce risk by using duplicate efforts. This is the future. My personal opinion. I'm not a God ;o)
The issue with the "cost vs. quality trend" is that, unless you happen to be a major player like Oracle, Intel, or whatever, you aren't going to move a piece of your operations abroad. That is, if we're talking about smaller companies, then offshoring is typically going to be used on a per-project basis (that's how I've seen it done, anyway).
When that happens, someone from Company X goes to a broker in order to get the offshore workers.
Now, you might have a great experience right off the bat. The team the broker got you in India did a superb job, the code works, it was cheaper, and everybody's happy.
However, the next time you need a project done and you go to the same broker, you might wind up with an entirely different team in an entirely different part of the world. It depends on where the market is when you make your request. If it just so happens that Eskimos are coding at a lower rate than SE Asians on Tuesday, then that's what you're going to get.
Now, I know nothing about Eskimos as coders, so I'm just using them as an example here. For all I know, every last one of them is a Charles Petzold or something. That said, you're probably not going to get the same quality of work from a different team. This is pretty typical for any software project, regardless of location. The difference is that, unless you have a good technical contact in the US to review progress (assuming that the US is where Company X is), you're not necessarily going to know until delivery that the code stinks, the project won't compile, and all the coders had been drinking moonshine while tripping over their semicolons. You just expected it to be good because it was good when it came out of India, and since you're using the same broker, you didn't expect anything to change.
It's kind of like these cheap online pharmacies. They ship generic "equivalents" of what you get in the states at a greatly discounted price. That's fine and all, but you know nothing about the laws regulating the production of pharmaceuticals in the country of origin, and the supplier, and therefore the country of origin, might change on a daily basis. You could get something that has all the "good" properties of Viagra, but that's been cut with Clorox as a filler. You really don't know what you're getting. You might get "Higher IQ in a Pill," or you might get "Say Goodbye to your Liver" medication. It's a gamble
But, you save a few bucks.
As usual, there's a risk involved. That, for me, is where the "cost vs. quality trend" comes in. I'm not saying that foreign coders aren't good. I actually spend a decent amount of time chatting with people from India that I've met online, and they clearly know their stuff. However, when you keep the development close, you can see in the early stages of development if it just isn't going to work, and it can be a bit tougher to make this same judgment when the code is on the other side of the planet. When you have a bad coder in the states, you can just whack him/her within a couple days of realizing that the code stinks. By the time you figure it out where your offshored project is concerned, who knows how much time has passed.
It's true that we have better communications infrastructure nowadays than ever before (blah blah blah), but the reality is that when you cut coders out of the picture and let a designer dictate the contents of the application before shipping the work abroad, it's pretty damn hard to do a good code review. This is especially true if we're talking about "architects" who really don't know the first thing about cutting quality, maintainable code.
So, it's tougher than it looks at the outset.
Also, I realize that I've only presented one offshoring scenario here. I'm well aware of the fact that there are others, but I haven't seen them put to use. For the companies I've contracted at, the option to use a broker makes the most sense, so that's really all I've seen. Your mileage may vary.