Monthly Archives: March 2012

The List: Best Countries for Offshore Software Development (Part V – Last in the Series)

Today I’m going to wrap up this series on the “best” countries for offshore software development by giving you my list of top countries.  Yep, I’ve given you a lot of detail on how to arrive at your own short list of countries, but today I’m finally going to just give you my list!

I started this series by looking at Gartner’s top 30 list of countries for offshore services.  We looked at the criteria Gartner used to come up with the list, critiqued those criteria, and modified the criteria to ensure they were useful for evaluating countries for software development, as opposed to more generalized offshore services, which might include help desk support, or Business Process Outsourcing (BPO) tasks.  OK, so if we apply my criteria, what is the list of countries we might come up with—the “best” ones for software development?  We could do this at a granular level, by assigning each country scores on a scale from 1 to 5, as Gartner does, and weighting these factors to come up with total scores for each country.  I think it’s worth doing as part of your analysis since it forces you to think through all of the criteria, and their importance to you.  For our purposes today, though, it’s simpler and quicker to start with Gartner’s list, and just knock off several countries that don’t fit my criteria: cost, labor pool, educational system, language and cultural compatibility, proximity to your business, political and economic environment and global and legal maturity (I combined a couple of Gartner’s criteria, here).

Most of the countries on Gartner’s list just don’t have a critical mass of strong development talent.  I’m sure you still could make a go of it in many of these places (e.g., I know someone who does a fair amount of work in Sri Lanka, so I know for a fact you can make it work there, but I’m don’t think it quite makes my list of “top” countries).  So I’m going to knock out Costa Rica, Panama, Peru, Bangladesh, Indonesia, Malaysia, Philippines, Sri Lanka, Thailand, Vietnam, Czech Republic, Egypt, Hungary, Mauritius, Morocco, Poland, Slovakia, South Africa, and Turkey (for more detail on the Eastern European countries—you might wonder why I knocked out Poland, for instance–look at this analysis to see why some countries don’t quite make my list).  Chile is a bit small compared to the others (the population is only about 16 million), and it seems that the talent pool there is a bit thin (if you talk to offshore development firms in Chile, they tend to be smaller than in other major offshoring destinations, and sometimes Chilean firms might outsource some of your work to, say, an Argentine firm because they tend to have more resources than a Chilean firm).  However, I think you could be successful in Chile if you’re not trying to build a very large team.  So I’ll leave Chile on the list, especially since it has some other good qualities such as stability, a good political and legal environment, and a good cultural fit with North American or Western European businesses.

Some of the countries are getting expensive—Russia is an example—so I’m going to knock them off the list too.  And the business environment in Russia is discouraging to most Western business-people, so I’ll also knock them off the list for that reason–most Western businesses just don’t want to invest there unless they are involved with oil and gas.  Brazil is also getting more expensive.  Sao Paulo recently made a top ten list of most expensive cities to do business.  They’ve found offshore oil, and as one of the BRIC countries, large companies feel they need to have a presence in Brazil, so those factors are heating up the market for the rest of us.  I’m tempted to leave Brazil off the list for this reason, but if cost is not your primary driver, or you have other good reasons to be in Brazil (e.g., you are targeting the Brazilian market with your products) maybe you should consider it.

I feel that Mexico should be an interesting alternative for US and Canadian firms, but it’s hard to make a case that it’s among the best places in the world to do business these days, due to the drumbeat of crime stories we hear from Mexico each week.  So I’m knocking Mexico off the list. Colombia is an interesting one.  I haven’t been there, myself, but I keep hearing good things about the talent pool there.  And there is a good-sized population there (46 million).  I just spoke to an old friend of mine who lives in Colombia, and while he likes some aspects of the place, he didn’t rave about the business culture and the ease of doing business there.  Apparently Colombia is much safer than it used to be, but like Mexico, it might be hard to make a case to your board of directors that you’ve found the perfect place for a foreign investment, and it’s called…. Colombia?!?!?  So I’m going to leave it off my list, but it might be worth considering if you are aggressive and want to get in early on a place that’s on the upswing, or if you have some special insight into the country (which I don’t have).

So if we knock those countries off of Gartner’s list, our list looks something like this.

  • Americas: Argentina, Brazil, Chile, Colombia, Costa Rica, Mexico, Panama and Peru.
  • Asia/Pacific: Bangladesh, China, India, Indonesia, Malaysia, the Philippines, Sri Lanka, Thailand and Vietnam.
  • Europe, the Middle East and Africa (EMEA): Bulgaria, the Czech Republic, Egypt, Hungary, Mauritius, Morocco, Poland, Romania, Russia, Slovakia, South Africa, Turkey and Ukraine.

In Asia, I’m left with the two giants, India and China.  The talent in these countries is undeniable, and they scale well—you can find people in quantity, and the costs are reasonable.  The language skills in China are better than they used to be, but based on my visit there a little over a year ago I’d still rate them as “poor”.  You might arguably rank India and China below the countries in Eastern Europe or South America in terms of cultural compatibility (it’s a subjective criteria, so you can judge for yourself) and proximity to your business, and these days there is a lot of interest in “nearshoring”—offshoring a bit closer to home or in time-zones that are closer to your own in order to improve collaboration.  But India is still the global leader in offshoring and will continue to be for some time in the future.

I’m going to add Belarus to the list.  Gartner doesn’t consider them one of their top 30 countries for offshore services, but if we’re talking about software development, in particular, I think it makes the list.  As I showed in my prior analysis of Eastern European countries, it’s a place with a good population of strong developers and a relatively small internal IT market, so they are very export oriented when it comes to software development.  On the other hand, the politics there are a real worry and it’s not a place to go if you don’t have some risk tolerance.

So the revised list might look something like this:

  • Americas: Argentina, Brazil, Chile
  • Asia/Pacific: China, India
  • Europe, the Middle East and Africa (EMEA): Belarus, Romania, Ukraine

These countries fit my criteria—they have populations that are large enough to have a “deep” talent pool (with the possible exception of Chile), with education systems that are good enough to produce software developers in sufficient quantities, the business risks are manageable (although they vary pretty widely), and the costs are reasonable vs. the US and Canada, and Western Europe.  If you’re looking for a “wild card”, you might also consider Colombia, or perhaps Bulgaria, where there is a small population, but a decent number of developers relative to that population.  I’m probably going to get some complaints from some of you that I left your favorite country off the list.  By no means am I saying that you can’t do development in countries such Vietnam or the Philippines, particularly if you only need a small team (e.g., 2-12 people).  But if you want to do software development at scale (i.e., 12-100 developers), I think you’d be better off in the countries that I’ve listed.


Best Countries for Offshore Software Development (Part IV)

In my recent posts, I took a look at some of Gartner’s criteria for determining the “best” countries for offshore IT services, and told you that Gartner’s framework is perhaps better used for Business Process Offshoring (BPO), and more generalized IT services (e.g., customer support and help desk), rather than software development.  So some of the countries on Gartner’s list of top 30 offshoring destinations would surprise you if you were looking for a list of great software development nations (Egypt?  Panama?  Slovakia?).  But if we’re looking to narrow down our list of top software development offshoring countries, we can still get something useful out of the Gartner criteria if we’re a bit critical in how we apply it, and we make a few adjustments.  So let’s talk about the criteria that I think are most important for evaluating offshore software development destinations, and then in my final post in this series, I’ll give you my own “top countries” list.  Here are my criteria for evaluating a location for software development:

Cost – For obvious reasons.

Labor Pool – I like to see a good critical mass of skilled developers in a country and, subsequently, in a city within that country.  If you can’t scale your team beyond a few people, why would go to that country?  So while Gartner has countries like Cost Rica (population 4.3 million), and Slovakia (population 5.4 million) on their list, I don’t have much confidence that you could find large numbers of good developers there.  These are pretty small countries with small populations, and there’s some risk you’ll hit bottom if you need to hire more than a few software developers.  I prefer countries that have a larger population.  Places like India and China have huge populations and so it’s just a law of numbers that there will be some well-qualified people in those countries.  But you don’t necessarily need to go somewhere quite that large.  Countries like Ukraine (population 46 million) and Argentina (40 million) are big enough that you should be able to find the skill-sets you need, for the most part.

Educational System – This is an important criteria, and is related to the labor pool—is the country producing well-trained developers each year, in good quantities?  In most of the countries on the Gartner list, the universities are just not top tier.  [Check out a list of the top universities in the world.  The top universities generally aren’t located in Gartner’s top 30 offshoring countries.  You’ve heard so much about the IIT schools?  They are among the better schools in the developing world, but they don’t rank all that well on a global basis.  Ukrainian or Russian schools?  Fuhgeddaboudit.]  But in the case of software development, the universities in many of the countries on Gartner’s list are good enough, and given the highly motivated students they have, the graduates they produce are very strong.  The good thing about software development vs., say, particle physics, is that you don’t need outstanding laboratories and research facilities.  I had a chance to visit the Polytechnic in Odessa a couple months ago.  It doesn’t look like an Ivy league institution, to say the least.  Luckily, running a computer science program at a high standard just isn’t that expensive these days, so you really don’t need fancy facilities for this, assuming your focus is on training smart, motivated practitioners, and not on conducting world-class research.  So while the universities in the top offshoring countries don’t rank very well on a global basis, they can still produce very good development talent.

Language and Cultural Compatibility – The importance of this factor depends on you.  As in my last post, I don’t think these factors are so important when you are talking about enterprise software business domains that have a long learning curve (but not everyone agrees with me on this one).  In that case, you need to invest in training your team on your business domain, and their “culture” won’t give them much of a head start.  But for consumer-oriented products, I’d consider these factors to be more important.  So, for example, while I’ve done a lot of enterprise development in Ukraine, I might look at Argentina seriously if I was looking to find additional resources for a consumer-oriented product whose market is in North America.  Romanians like to make the case that their culture and language skills are quite compatible with North America or Western Europe.  Because the Romanian language is Latin-based, and uses roman characters just like in English, this gives them an edge in learning other Latin-derived languages.  One more factor to consider is turnover in your workforce.  I don’t know whether to consider it “cultural” or not–perhaps it’s more related to how hot the labor market is in a country–but let’s consider it to be part of the “business culture” in a country.  Some countries have had a history of very high turnover rates.  In North America, we don’t leave our employer every few months (assuming the work is rewarding, we’re being treated fairly, and the pay is reasonable) .  We’d like to see a similar dynamic when we offshore software development to another country.  If that’s not the business culture in a country, Americans or Western Europeans are going to be disappointed with the results of offshoring.  Costs will be higher than expected and productivity will be lower, since if your developers keep turning over you’re going to have to continually invest in training new ones.

Proximity to your Business – This isn’t broken out in the Gartner criteria, although they mention it under “cultural compatibility”.  I’ll break it out and discuss it separately, since today a lot of people like to talk about “nearshoring”–being close to your developers in terms of distance or time zones.  So South America has some attraction if you are in the USA, since the time zones are almost the same as in the US, while Eastern Europe is attractive if you are in Western Europe.  At a minimum, you’d like to have some overlap each day so that you can talk to your developers, and so that they can participate in Scrum meetings, etc.  I’ve found you can still make Eastern Europe work from North America since you can still get about a half-day’s overlap in your business hours, but I had a chance to work on a some projects in China and Japan a couple years ago, and conference calls with North America were always an inconvenience to one party or the other, and this was a real inhibitor to resolving issues quickly.   India has a lot going for it, but the time difference with North America is a challenge when it comes to collaborating with North American developers and product managers.

Political and Economic Environment, Global and Legal Maturity – The relative importance of this one really depends on you.  As I’ve argued before, there’s a potential “opportunity” to working in a less stable country, since the costs may be lower.  Think Ukraine or Belarus vs. Poland, for instance.  But if you can’t tolerate tax systems that are a moving target, or some political and economic risk, then by all means, pay a bit more and go somewhere more stable.  For example, Chile is a place that impressed me when I visited there a few months ago.  If you are considering making a direct investment in IT in Chile, the government will help host your visit, set up meetings with similar companies who can share their experiences operating in Chile, and they’ll give you some interesting tax incentives if you want to open your own “captive” subsidiary.  They’ve really got their act together, and while it might cost you more in Chile vs. some other places, it might be worth it.  (The only potential issue I see in Chile seems to be the depth of the population and talent pool there–it’s a small country with only about 16 million people, but if you are setting up a small or medium-sized team it would probably work out fine.)  If you are considering going with a less “mature” country, it might make sense to go with a services provider in that country vs. opening your own captive development center, since the provider will likely know how to operate safely in that country, and they take on most of the risks.  Either that, or you’d better hire some people who really know what they are doing in that country.  On the other hand, you could go with a provider in a more stable country, but opening your own subsidiary might be quite feasible there, if you are sure you want to make an investment for the long haul and you aren’t just dealing with a finite-duration project.

In summary, focus on countries with a decent-sized (and skilled) labor pool, a good educational system (particularly when it comes to producing large quantities of technically skilled people), reasonable cost, and good proximity to your home country.  If cultural fit is important to you, that might affect your preferred countries as well.  You should also think about the relative political and legal stability of a country and consider how much risk you can take, since for some extra money you can probably reduce risk, but on the other hand, if you can tolerate a little risk you might save some money.  You can use Gartner’s ratings for the above criteria, but I think it’s better to adjust these ratings with your own research and score each country based on these criteria.  You can weight each factor as you see fit.  As an example, if you look here, you can see how I came up with the “top” locations in Eastern Europe, considering some (but not all) of these criteria–I was mainly just considering cost and having a “critical mass” of development talent, although I threw out Russia due to political risk.  Next, you can create a short list of countries that seem to have a good fit for you.  Once you’ve done that, you can consider specific cities within those countries, do more research about service providers in those locations, and consider the pros and cons of opening a captive center in one of those locations vs. using a service provider.

In my next post I’ll wrap up this series by posting my own top list of countries for offshoring software development.  Stay tuned to see if your favorite makes the list.