There's outsourcing to almost every country of the world, now. I get bombarded by offers from China, India, Russia, Israel, Costa Rica, South Africa, and dozens of others. How do you pick the country to go to, and how do you know you are getting good value when you get started? The honest answer is that unless someone you trust gives you a recommendation, many outsourcing projects are a crap-shoot. I always lead with a small pilot project with a small team (not more than five people and six months work) to evaluate a company, and I build a list of "normalized" values for each company and country.
What do I mean by normalized values? It's quite simple, really. I take the amount of work I can expect from a developer, QA engineer, or project manager in my company and take what they are paid, and call that a value of "1" (that's the normal value). If an outsourcing company in another country can deliver the same work for half the money, that's a value of 2.0 (or twice the value-for-money I get here). Some countries deliver a fraction of the value of normal. One Baltic country I tried cost me half the North American rate but I got only a quarter of the work done, for a value of 0.5. If a country delivers half the work for half the money, that's a value of 1 still (I'd have to pay two people to get the same amount of work done at the same total cost). Not this is where the math gets interesting. Suppose a country delivers 80% of the work effort (and quality) of my North American person, but costs only half as much, then I have a normalized value of 1.6 (so paying the same as North American rates, or two people, gives me 60% more work than in North America). That's a good value. I look for countries that give me numbers greater than 1, of course!
There are a lo0t of countries that are close to North American pay scales. Israel, Russia, and some Baltics spring to mind. There are some superb engineers in Israel and Russia, for example, but you really are not going to save a huge amount of money outsourcing to either countries as the pay scales are relatively high. Still, there is value there if you look. India used to be the go-to place back in the nineties, but they have dropped so much in quality (in my opinion) and raised their prices so much that they are now one place I avoid. I've had really bad experiences outsourcing to India (apologies to the good folks there, and yes, I know some companies are very successful with outsourcing to India) and after the last experience (I tried a half dozen companies in India over twenty years) I swore never to return. The Baltics are a mixed bag, I find, in that there are some really good people balanced by some really lazy and inept people. I've had a few successes there, but by and large the failures have been enough to keep me away. China used to be a favored location for software work, but the costs and government regulation has made me reluctant to go there. Vietnam came into its own about 15 years ago, when the country started to really focus its sights on outside the country, and that's where I've had the most success.
For me, the go-to country for my outsourcing for the last ten years has been Vietnam. I've worked there, living there part-time for almost half a decade while running groups based on Vietnam and North America, and I've worked with five different companies in Vietnam all with success. In fact, the company I currently use is run by a group of engineers I trained a decade ago when I first started doing business in Vietnam. Over the past few years, these guys have never let me down on a project, always given me superb value-for-money, been responsive and (most importantly) honest, and are representative of the quality of people to be found in Vietnam if you give them a chance and carefully manage both the projects and the specifications. (I won't name the company I use here but you can contact me through my email for more information. See the About link for my info.) I suppose that living in Vietnam and working so closely with the teams there over the last ten years has led to a bias now, but I still do outsource to other countries at times just to ensure I am delivering what I need for the companies I work for.
No matter where you go, management is the key to success in outsourcing. Manage the teams, manage the expectations, manage the deliverables, manage the costs, and most of all, manage the day-to-day operations until you are confident in the company you chose and the work they deliver. There's a lot involved in outsourcing. You can't just say "go off and do this and let me know when you're done". That leads to failure and embarrassment. But that's another post.