Best Countries for Offshore Software Development (Part II)

Today, I’m going to continue from my last post about Gartner’s criteria for determining the “best” offshoring destinations, and consider how relevant these criteria are for offshore software development, as opposed to Business Process Outsourcing (BPO) or IT services not related to software development (e.g., help desk and other IT support tasks, systems monitoring, etc.).  Here are the variables Gartner uses to rate the various countries:

  • Language
  • Government Support
  • Labor Pool
  • Infrastructure
  • Educational System
  • Cost
  • Political and Economic Environment
  • Cultural Compatibility
  • Global and Legal Maturity
  • Data and Intellectual Property Security and Privacy

Gartner gives each country a score on these dimensions, ranging from “poor” to “excellent”.  Gartner has detailed reports on all 30 countries on their list, and if you are a Gartner subscriber they’ll let you see those reports.  If you aren’t, you can probably search around the Internet and find some of the data, but I’ll leave that as an “exercise for the reader”.  Let’s talk about some of Gartner’s criteria in more detail.  Some of these are clearly going to factor into your decision (e.g., cost).  But what about some of the others?

Language–Language skills in a country are important, but I would argue that this is not as important as Gartner seems to think, at least when it comes to software development.  Most software development shops need good English skills from at least some of the developers (e.g., team leaders).  Some people insist that all their developers speak strong English.  I think that’s a bit extreme, and risks excluding some good developers from your applicant pool, although I think it’s great when I see mandatory English lessons when I visit an offshore software development service provider.  Gartner seems to rate the countries based on the general language skills endemic to the population.  So countries like India and the Philippines do well because English is used as a language of instruction in schools.  If you’re doing BPO work in a country, and need to hire 500 call center workers, then I agree–you need good language skills in the general population if you’re going to find that many call center workers.  But that’s less critical if you want to hire 30 or 40 software developers.  Then all that matters is your ability to attract 30-40 good people, at least some of whom speak good English.  The level of English in the general population doesn’t really matter much, in that case.  In addition, most developers can at least read English, even if their spoken English may be weak, since they’ve had to read technical information in English.  So, in summary, the language skills available in a country are important, but not as important for software development as for BPO.

Infrastructure – Today, most countries that are worthy of serious consideration have infrastructure that’s good enough to support software development activities.  So I think this criterion is of diminishing importance, and frankly some of Gartner’s ratings here are a bit confusing.  Ukraine, for example, gets a “Poor” infrastructure rating from Gartner.  I can tell you the roads in the major cities in Ukraine are perfectly fine.  In fact they are better than in parts of New York City.  I hear the roads are poor in the Ukraine countryside, but so what?  Your software developers are going to be located in a major city and you are going to fly in and out of that city to meet with them.  The electric power in Ukraine is a bit worse than in the US, but it’s not terrible, and the Internet is decent.  That’s about all you need for software development.   Meanwhile, Gartner gives India a “Good” rating for infrastructure.   It’s been a few years since I’ve been in India, so maybe things have improved, however I don’t meet a lot of people who’ve been to India who would rate the infrastructure there as “Good”.  Although it’s certainly “Good Enough”.  Apparently they did a nice job with the subway in Delhi.  And I hear Starbucks is finally opening up in India, which is an important part of the infrastructure, according to me.  (In 1999 I can remember visiting multiple Starbucks in China, while all these years there have been zero Starbucks in India, so this is actually an interesting barometer of something–India’s openness and attractiveness to foreign investment, vs. China’s, I suppose).  So anyway, the infrastructure in a country might have been more important ten years ago, but I don’t find it to be that important today when considering where to locate software development.  Again, if you’re putting up a 500 seat call center maybe it’s a different story.

Political and Economic Environment, Global and Legal Maturity and IP Security – In my last post I joked about Gartner considering Egypt to be a viable offshoring destination, just before they had a revolution, during which the autocratic government there shut down the Internet–possibly the first time any country has ever been taken off the net in this way.  You don’t want to be in a place that’s one strep from chaos.  If a country is very unstable your developers will have an incentive to find ways to leave the country.  And you may have some banking system disruptions that make it difficult to pay them, which happened to me in Ukraine in the financial crisis in 2008.  We sent wires with the developers’ pay for the month and but the damn Ukrainian bank wouldn’t release the funds except with an eyedropper–a few drops at a time.  Apparently there was some kind of run on the bank, although it eventually eased.  Believe me, if there’s a chance your developers are not going to get their paycheck there is a very good chance they will be distracted.  But short of a Somalia-style breakdown of law and order, your software developers are going to need to continue to eat and pay their rents, just like we all do, and so they are going to show up for work.  So if this kind of thing happens, you might lose a little productivity, but you aren’t going to go out of business.  Beyond lost productivity, what senior management tends to fear most is a Russian-style impounding of their business.   But if you’re doing software development, there’s not that much they can impound.  Your computers?  So what?  They’re replaceable.  Your source code?  Big deal, it’s stored in a revision control system sitting in your home country.  Your IP?  What are they going to do with it?  Software is not like some manufactured good, so it’s not likely you’ll discover (as some manufacturers operating in China have) that your local business partner is now selling your own product, in competition with you.  So as opposed to an oil field, or a manufacturing plant, or some other business that has a lot of fixed assets, there isn’t that much the local Oligarch or government crony can grab from you if you’re doing offshore development.  What’s important to you is the team you’ve built and the knowledge in their heads, not some fixed assets.

Legal System — It’s nice if the legal and tax systems in a country are well-understood, and are not a moving target.  Unfortunately there does seem to be an inverse correlation between good legal and tax systems, and the cost of software developers.  I had a chance to visit Chile a few months ago, and by all accounts it is a bit more expensive than other countries in South America, but it might be worth it if you can’t tolerate red tape and corruption, since their legal system is considered to be quite non-corrupt and efficient.  Americans might be surprised to learn that, according to Transparency International, Chile is slightly less corrupt than the USA.  Similarly, Poland and the Czech Republic, as EU countries, will cost you more for developers than non-EU Eastern European countries like Ukraine or Belarus.  So you need to decide if that’s worth it–where on this continuum of legal and tax system effectiveness and stability you want to be, because you’re probably going to need to pay more to be in a more transparent and stable country.   If that will let you sleep better at nights, it might be worth the extra money to you.  Now, when I talk about the legal system in a country, I’m not just talking about suing somebody, or whether the system is corrupt.  We should also consider the taxation system.  You don’t need to worry about this if you’re working with an outsourcing company—that’s their problem (although if their taxes go up suddenly it will become your problem soon enough when they try to pass those costs through to you).  But if you want to create a “captive” subsidiary in the country, it’s helpful if it’s very clear what taxes need to be paid and how to pay these.  Check out PwC’s ranking of various countries on the ease with which companies can pay their taxes.  It turns out to be extremely difficult in some of the better-known offshoring countries just to pay your bloody taxes!  India is 147th on ease of paying your corporate taxes, requiring 33 different tax payments per year!  That’s a lot of bureaucracy, and most of the countries in Eastern Europe do very badly too.  For much of my career I’ve worked with captive development sites, but this is a great argument for dealing with an offshore service provider—let them deal with the taxman 33 times per year!  You’ve got better things to do.


2 thoughts on “Best Countries for Offshore Software Development (Part II)

  1. Paul says:

    Nice comments Mike but I have some remarks:
    – language: if developers are not good in English then you have a communication problem as they need to understand the requirements and express their suggestions; if you are not looking for suggestions and interaction then it could be fine;
    – infrastructure: not all important cities have good flight connection and you will have to spend time on roads; internet connections and power supply it is critical also
    – political environment it affects your people as they are sick and tired with the systems and have good options to leave the country
    – legal: totally right to work with a partner as you have better things to do;)

  2. camiapp says:

    Thanks for the comments Paul.

    Yes, re language skills, I agree, you clearly need some developers who speak good English, but I’ve had good results even when not all of the team speaks strong English. This probably only works if you have a large team and some portion of them don’t speak English. If you just have a small team of 3-4 people, that might not work.

    Re infrastructure, it’s interesting…a trend I see is for companies to consider secondary cities more and more, these days. I recently helped a company do some work in Odessa, for instance. Flight connections to Odessa from the US are non-existent, although you can stop in Warsaw or Kiev and connect there. But it’s true that you waste a little more time getting there vs. locations with direct connections to the US. The attraction, though, of these secondary centers is that you might find a bit less competition for talent vs. the capital of a country.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: