Monthly Archives: February 2012

Best Countries for Offshore Software Development (Part III) – Cultural Compatibility

This is Part III of my post on a how you might think about determining where to locate your offshore software developers.

I started in Part I with the Gartner list of top 30 IT offshoring destinations, and have been critiquing the applicability of Gartner’s ranking criteria for software development, as opposed to more general IT services tasks.  Gartner has a criterion they call “cultural compatibility” that they use in rating the various countries.  It’s one of ten criteria they use, but I’m wondering about its applicability in a “flat world”.  Gartner doesn’t define cultural compatibility in much detail, but they say it involves “adaptability to multicultural approaches to support an international business environment”, and they also consider the time zone of a country, ease of travel to a country, and its proximity to the major home countries that purchase offshore development services.

Some of the potential attraction of South American countries (at least to a North American company contemplating doing some software development work offshore) is their cultural compatibility with the US (that, and the closeness in time zones to the US).  So what about it?  Should you consider cultural compatibility?  I think so, but it might depend on the software products you are developing.  I had a chance to visit South America recently, and one Argentine software development executive noted that “we watch the same TV shows”.  I don’t think watching CSI is going to make a developer more productive (but CSI Buenos Aires might be a show I’d watch!), but of course that wasn’t his point.  What he meant was that, with some common cultural understandings, Argentines could communicate well with Americans and more quickly gain a common understanding of what a project was about or, in Agile terms, what a user story meant.  That’s worth something.  What I’ve noticed is that when the project at hand is consumer-related, an Argentine firm might arguably have a better understanding of US consumer society than developers who live in farther-off time zones.   I met with the head of an Argentine software development company last week and it struck me that his client list is very strong in advertising agencies, social media, and other consumer-oriented work, although they do work on business applications as well.  In my case, I’ve spent most of my career developing business applications where developers learned the domain over a period of years, by working with their US counterparts.  They didn’t come with an innate understanding of the business processes related to that domain (logistics) any more than a US developer does.  So in cases such as this—business applications—I’m not sure culture is as important as training your developers on your domain, and finding a way to have a low turnover so you don’t fritter away the investment you make in training your people, whether they are your own staff or those of an offshore development company.

Let’s talk about work habits, which might be one aspect of “cultural compatibility”.  Something I’ve heard more than once from US senior managers is, “…those Eastern Europeans are still shaking off communism, so how do you get them to work hard and show up every day.”  Look, the Berlin wall fell in 1989.  That’s almost 23 years ago.  In Eastern Europe, your average developer is probably going to be about 28 years old.  So the residual effect of communism on the average developer’s work habits is going to be negligible.  Now, it’s true that bureaucracy continues to smother some of the less economically advanced economies in Eastern Europe (and for that matter, most major offshore destinations, such as India).   As an example, I pointed out in my last post how difficult it is to pay your taxes in some of these countries.  So bureaucracy is something you are going to need to deal with if you operate in those countries.  But in my experience it has no bearing on your developer’s commitment to their jobs and their companies.  If you can motivate them with interesting projects they’ll show up for work, try hard to understand your business and work hard to deliver (at least they will if you’ve recruited well).

In the long-term, I think it’s clear that the world is becoming flatter, and cultural factors may be less important when considering where to offshore, although it’s still a factor now.  If you travel in these countries, you’ll see that everyone is on smartphones, using LinkedIn or Facebook (or their own local variants of these networks), so people are slowly growing more similar, not more different (at least when considering the major offshore development destinations, as opposed to, say, Saudi Arabia).  Many years ago, I worked on a consulting project with IBM that involved some work with an R&D lab in France.  Over and over, cultural differences came up.  I think both the French and the US teams respected each other, but there were differences in how they approached development projects and in the processes they used to make decisions, and resolve issues.  Today, methodologies like Agile are providing people with a common language for developing software.  It’s a global language, and with more and more projects being developed across multiple sites and countries, people are developing a common understanding of that language.  An Agile “Product Owner” is a Product Owner, regardless of what country they are located.  Sure, people will bring their own cultural backgrounds to roles such as this, but I see the importance of these differences declining, as least as it pertains to software development.  Twenty years ago, the idea of developing products using mixed onshore-offshore teams was daunting.  Now, it’s commonplace.

Tagged ,

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.


Offshore Software Development – Gartner’s Top 30 Countries

If you’ve read some of my prior posts (such as this one), you know that I believe that the market for software development talent is now a global market.  That doesn’t mean that all development is moving offshore.  But it means that we have a shortage of good people in the US and if your company is above a certain size and scale, you should consider using offshore resources due to cost, and also due to the availability of good resources offshore.

Assuming you’re convinced of a need to do some software development work offshore, where do you go?  CIO’s are getting emails from random offshore service providers every week, if not every day, and it’s pretty difficult for them to distinguish among these providers.  They’re all offering what seem to be similar services at similar prices.  Normally when I approach a problem like this, I like to adopt some kind of framework to help me think about the problem.

Gartner has a framework for ranking the top destinations for offshore IT services.  There are some things I don’t like about the Gartner framework.  Analysts such as Gartner tend to be more focused on Business Process Outsourcing (BPO), rather than offshore software development.  So my approach will be to start with the Gartner framework, but I’ll modify it to focus on the factors that are most important for creating an offshore development team of from, say, 20-100 people.

Let’s take a look at Gartner’s list of top 30 destinations for offshore services:

  • 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.

If you are a Gartner subscriber, you can request individual reports on the various countries on Gartner’s list.

Let’s take a look at the countries on the list.  It’s evident that some of these countries aren’t on the list due to their software development prowess.  Bangladesh?  Costa Rica?  Panama?  Peru?  Seriously?  None of these nations are creating great software developers, en masse.  So maybe you could create a small team in one of those countries, but I don’t think it would scale beyond a few people.  What about the Philippines?  It’s a great option for BPO, due to the American-style English you can find there, and they have a large population, so one would certainly expect that at least some of them could be great software developers.  But most people I talk to just don’t think the Philippines education system is world class at producing large quantities of strong developers.  I had a chance to talk to a Philippines-based service provider recently, and while they felt they could provide good IT support resources (e.g., off-hours help desk), they shied away from the opportunity to bid on creating a large development team there.

Some of Gartner’s calls have been amazingly bad in the past.  Back in December 2010, they announced their updated top 30 IT offshoring destinations, which included Egypt.  EGYPT?  YOU GUYS CAN”T BE SERIOUS!  Not only is Egypt a political pressure cooker with an unclear future, but they shut down the bloody internet there for a few days back in 2011, just one month after making the Gartner list!  What if you had some production problems and the key engineer you needed couldn’t be reached because the Internet was shut down?  I think that’s enough to take Egypt off of your list, unless perhaps you are doing some work that’s specific to the Middle-East market.

Now, having had a little fun at Gartner’s expense, I should say that (by riding upon a client’s Gartner subscription) I had a chance to talk to a Gartner offshoring analyst about a client’s offshoring plans a few months ago.  Gartner wouldn’t advise you to just blindly go to the #1 destination (which by the numbers was India).  They view the list of top destinations as just a starting point to spur your thinking, just as we’re doing here on this blog.  In my next post I’ll look at the factors that Gartner uses to grade the various countries, and I’ll critique some of these factors.