IT offshoring is a highly controversial topic nowadays; organizations from medium to large sizes choose to have their projects developed overseas, usually in countries where the cost of software development is lower than in Western Europe, Japan or North America.
Several commonly chosen destinations for IT offshoring include (Source: OffshoreExperts.com):
- Eastern Europe (Russia, Romania, Poland)
- Far east (China, the Philippines)
- Latin American countries (Mexico, Costa Rica, Brazil, Argentina)
However, other less-common offshoring destinations are Spain, Tunis, Kyrgyzstan, Zimbabwe or Marocco. In the Dilbert comic strip, Scott Adams has created the fictional country of “Elbonia” to satirize the situation created by offshoring in the IT landscape:
Advantages and Disadvantages
As I said at the beginning of the article, offshoring software development is a highly controversial topic, from several points of view, not only economically and socially speaking, but also from the point of view of the quality reached by companies using offshore (or near-shore) development teams. In short, what I’ve seen so far is that the quality reached by offshoring software development is just plain horrible; however, the problem is seldom the overseas team itself, but rather the company headquarters employing the remote team.
This situation has to do with an inherent characteristic of software: it is not a manufactured product, but rather a design product. In other words, software is much more than the source code, but it is also a set of design decisions and multiple outputs, not only the source code itself, but also the documentation or the test and maintenance policies:
This isn’t the first time companies have tried to commoditize software development. In the eighties, Japanese companies unsuccessfully attempted to set up software factories to manufacture programs. They discovered that just throwing a lot of programmers together doesn’t create innovative software.
Design is a small part of clothing production, but a big part of software production. Unlike software, it makes sense to outsource the manufacture of clothing and toys. Most of the cost of clothing and toy manufacturing is in the assembly, not the design. Those products can still be designed close to corporate headquarters but assembled elsewhere to keep costs low.
Programming is like design and nearly all of the costs of creating software come from writing the program, not the assembly. The assembly stage for software is really just copying the final program onto a disk and enclosing it with a manual in a box. (Bean)
Joel Spolsky stresses this fact even further:
The best advice I can offer:
If it’s a core business function – do it yourself, no matter what.
Pick your core business competencies and goals, and do those in house. If you’re a software company, writing excellent code is how you’re going to succeed. Go ahead and outsource the company cafeteria and the CD-ROM duplication. If you’re a pharmaceutical company, write software for drug research, but don’t write your own accounting package. If you’re a web accounting service, write your own accounting package, but don’t try to create your own magazine ads. If you have customers, never outsource customer service.
I have worked in some companies where the use of overseas offshoring is the rule; my impression is that the development cost reductions that these companies achieve are spent in communication, inspection and even turnover costs; until now, I have not yet seen a single company working flawlessly with their offshore teams, no matter what the CEOs of these companies say.
The chosen destinations were Spain, India and Romania, and through this experience I could identify some factors that acknowledge the points of view expressed by Bean and Spolsky above:
- Geographical location and time difference: the quality of the end product is inversely proportional to the time zone difference between the headquarters and the remote team; the higher the difference, the lower the quality. This is simply due to the difficulty of having direct overlapping business hours between both parties, which makes communication more difficult. This also makes development cycles longer; the development-deployment-testing-feedback cycles are severely affected by low frequencies in the communication.
- Cultural differences: different holiday dates, different languages (including a variable level of English), all of these factors have a direct impact in the communication, which is a critical factor when dealing with outsourced teams.
- Increased telecommunication costs: the use of videoconferencing, telephone and other means brings new costs, even if these tend to decrease quite fast nowadays. The final quality of the end product is directly proportional to the smoothness and frequency of the communications between the headquarters and the remote team. There is also a need for distributed project management tools, including dashboards and other reporting functions, some of which are available as open source & free software, but usually the commercial packages that provide this functionality in an integrated fashion tend to be very expensive (like Microsoft’s Visual Studio Team System or Borland’s StarTeam suites).
- Need for defined specifications: the use of outsourced teams places a strong emphasis in the quality of the design and architecture documentations, which, more often than not, are simply not as accurate or complete as they should be. The final quality of the delivered product is directly proportional to the level of detail of the specification: the sloppier the documentation provided, the lower the quality of the received product, because the remote team, given the communication problems, tends to guess the missing details of the documentation in order to meet the deadlines.
- Stronger verification and validation: there is an increase in the costs of validation and verification, to make sure that the output received from overseas is adequate or correct. Part of the economies made in development must be reinvested in these processes, as a cost that is not always foreseen.
- High turnover and bad working conditions: in Argentina, where the IT offshoring sector is booming, the developers are working in extremely bad conditions, some of which would make the authors of “Peopleware” frown in dismay (Gremio de Informaticos). In my country of origin, IT workers are usually working without contracts or social benefits, for salaries that are as low as those of other sectors (even for people with Master or PhD degrees), and they can be fired without explanation from their jobs. Even worse, the biggest companies that provide IT offshoring receive grants from the government, as an incentive for the creation of this kind of companies (jperezsistemas). This situation generates an extremely high level of turnover, which has a direct impact in the level of quality provided to the consumers of these outsourced services. I do not know if this situation happens in other countries, though.
In my opinion, the economies generated by offshoring, given a certain level of acceptable quality, are only visible under certain conditions:
- Large projects (usually measured in millions of dollars and hundreds of thousand lines of code);
- Small time zone and cultural differences between client and provider;
- Complete and rigorous design documents and specifications provided.
In all the other cases, I think that the situation is simply “Dilbertesque”.
Bean, M.; “The Pitfalls of Outsourcing Programmers - Why Some Software Companies Confuse the Box with the Chocolates”, [Internet] http://forio.com/resources/the-pitfalls-of-outsourcing-programmers (Accessed May 5th, 2007)
Dilbert cartoon (by Scott Adams) taken from http://www.the-bordello.com/elbonia2.gif (Accessed May 5th, 2007)
Gremio de Informaticos (Computer Workers' Union of Argentina) website, [Internet] http://www.gremiodeinformatica.org.ar/ (Accessed May 5th, 2007)
jperezsistemas, “Como a EDS, Pyme tecnológicas piden que les subsidien el empleo”, [Internet] http://jperezsistemas.wordpress.com/ (Accessed May 5th, 2007)
OffshoreExperts.com, “Offshore Outsourcing Countries”, [Internet] http://www.offshorexperts.com/index.cfm/fa/buyer.countries (Accessed May 5th, 2007)
Spolsky, J.; “In Defense of Not-Invented-Here Syndrome”, [Internet] http://www.joelonsoftware.com/articles/fog0000000007.html (Accessed May 5th, 2007)