This has become a very hot topic in the last decade. I’m referring to the practice of companies in the US, and other developed countries, outsourcing software development projects to companies in lower cost, developing countries. This is a strategy that has “taken off” and has become mainstream in the software industry. Much has been written on the social and macroeconomic consequences of this phenomenon. My take on it will be strictly from a business perspective.
In my research in this area for a number of clients, several important questions popped to the forefront. I’ll address them one at a time.
What are the circumstances whereby outsourcing to a lower cost country makes sense?
This is a complex question with no simple answer. There are actually many reasons to consider outsourcing.
The first and most obvious is to lower your development expenses, of course. How much can you save? The answer depends upon what your costs are in your home location, as well as where you outsource too. Let’s look at example of a California Software company outsourcing to a company in India, a common example. My research indicates that the California software company can reduce its hourly costs by at least 60-70%. This doesn’t even include the “fully loaded costs” of permanent employees. On the other hand, it doesn’t take into account the inefficiencies inherent in having software development done by a third party, let alone one with a very different culture, potentially a different language, and ten time zones away. These inefficiencies are hard to quantify, and will vary from situation to situation—they are largely dependent upon how well you choose your partner, and how well you manage the relationship.
Another important consideration that would lead you to offshore outsourcing might be the availability of software developers locally. A few years ago after the dot com bubble burst, developers were suddenly available, practically everywhere. But they are normally very scarce in Southern California, where I’m based. And if you are looking for a narrowly-defined skill set, you can almost forget about hiring internally. Conversely, there is still a large pool of educated, skilled and experienced developers, which have not yet been fully absorbed, in a number of developing countries with a tradition in technical education. So while it may not be obvious on the surface, labor availability can sometime be an even more important driver than cost.
A third important consideration is expedient access to specific skills. An example of this is that I have several early stage software clients, who are embarking on their first large scale software project. For the first time, having a sophisticated QA function has moved from being a luxury to a necessity. For a small software company, it can take several years, with many bumps in the road and significant investment in both people and equipment, to build up an adequate in-house QA department. Another approach would be to use one of the many outsourcing firms specializing in QA. QA is all they do, every day. As an alternative to building up an in-house department, you can get immediate access to a seasoned, fully functional QA team. In other circumstances you may already have a good in-house QA team, but can use the outsourcer to provide “overflow” support, as an extension of your in-house team.
What benefits can I expect from outsourcing?
- Lower software development expenses
- Access to a much larger pool of talent
- Access to skill sets that are scare in your local area
- Less investment in infrastructure
- Immediate or “flex” capability for fast reaction to unforeseen needs
What are the pitfalls, and potential drawbacks of outsourcing?
Well, there are many—and this is what scares the “late adopters” away. The biggest fear, I believe, is entrusting your intellectual property to any third party, let alone to someone you don’t know, in a country with different customs (RE: more IP theft) and laws. This isn’t something that I would suggest being taken lightly. However, the outsourcers are aware of this fear. They won’t be in business long, if their clients IP is being stolen from them—this is the type of thing that tends to kill a service business. So they are very sensitive to this issue, and have erected many security features to allay the client’s fears. In extreme circumstances, the client code can be isolated to computers with no Internet Access or write devices.
The second most important fear is lack of control. Software companies are typically accustomed to internal development, and want to manage the process closely. You can still manage and monitor the product development process closely using an offshore outsourcer—and you should. It does, however, take a bit more work and usually an adjustment to the normal management processes. From what I have seen it is very possible to have the process go as well, or better, than it would in-house. It’s also very possible to screw it up completely!
The third greatest fear is dealing with a different culture and time zone. Except for the most bigoted or fearful among us, I believe that this is easily overcome simply by “doing”. Once you work closely with colleagues in other countries, you realize that we’re all “people”, with many of the same aspirations and fears, regardless of where we live. Most will get very comfortable quite quickly with their foreign counterparts, if they just jump in and give it a chance.
Lastly, there is the issue of inertia—“we’ve always done it this way”. Although it seems a bit silly, this is a very common problem. This problem has deeper roots, and is much more serious, than simply fear of outsourcing. If you don’t overcome it and roll with the changes, it could kill your company.
If I do decide to outsource, to which country should I send my projects?
There are a number of choices—below is my current preference list, in ranked order:
- Russia/Eastern Europe
I rank India first, although at this point they are the highest cost. The reason is that the Indian outsourcing companies are the most mature, with the longest track record. They also speak pretty good English, which is important to those of us here in the US. You can expect the hourly rates to be in the neighborhood of $20-22/hour and up—still an enormous savings over US development costs.
The second choice is Russia/Eastern Europe. The companies there are far less mature than in India, so you are taking a greater security and execution risk. If you really need lower costs, however, hourly rates can be as low as $5-6/hour.
Brazil is an emerging place for outsourcing. I don’t have a handle on the exact rates, but they are very low. For US clients, Brazil and other South American countries have the advantage of being in the nearest time zone, so you can talk during business hours, and is the easiest place to get to—especially from the Eastern US.
China, like in nearly every other market, is the potential thousand pound gorilla lurking in the wings. It is the most immature place for outsourcing software, an industry that is just emerging. The language differences can be a difficulty, and IP laws are still troubling. But there is a huge pool of competent technical resources, and you may find rates as low as $2-2.50/hour, although that has been on the rise.
What are the key things I should focus on to raise the odds of success of my outsourcing project?
My research turned up several key things:
Choose an offshore outsourcer that has a local office in your country. Over time, this may become less important, as you get to know your outsourcing partner. But at least initially, it can be the difference between a successful first project, and dismal failure.
Choose an outsourcer who has been in business for a while, is stable financially and has low labor churn—but is still hungry. If they’re “too successful”, the priority sometimes shifts from client satisfaction to maximizing profitability—not to your benefit.
Choose an outsourcing partner who is appropriate for your size. If you are a small, early stage company, you might be too small for one of the large, major brand names in the outsourcing business. The potential for getting ignored, and being low priority, looms large in this situation.
Choose a partner who is growing by referral, not by large marketing expenditures. Great Service companies thrive on long time clients and their referrals—repeat business means satisfied customers.
Have a key member of the offshore team come onsite to your company for several weeks or months, if you can afford it. This was suggested as a key reason for early success by many of the companies who had positive experiences from the start. It was a key link in creating understanding and good communications with the offshore team.
Start small, and with a project that is not mission-critical. This will allow you to “debug and test” the process, so that you can maximize efficiencies when you do outsource a larger, more critical project.
Demand written reports on a regular and timely basis. Certainly weekly on a first project—daily might even be appropriate in some circumstances.
Demand and hold regular status meetings. No less often the weekly on a first project.
If at all possible, “pick your own team.” If you can get to know the personnel at your outsourcer, try to specify who will work on your project and for how long. The worst thing that can happen is that you start off with “stars”, and mid-project labor churn and higher priority clients lead to turnover on your team, and a more junior staff.
So that’s my run-down on outsourcing. I’m sure there are many opinions on this one. Post a comment—let’s talk about it!
If you liked this post please share it with you colleagues using the “share” buttons below: