CNET también está disponible en español.

Ir a español

Don't show this again

Tech Industry

Parlez-vous software development?

Going abroad to develop software sounds like a grand idea. And yes, you can save time and money--but it's harder than it sounds, according to a McKinsey study.

More and more companies are going offshore to develop and maintain their software.

General Electric, Bank of America, Target and American Express, for example, have formed partnerships with Indian firms such as Tata Consultancy Services, Wipro, and Infosys. A recent survey by the Indian National Association of Software and Service Companies found that almost two out of five Fortune 500 companies currently outsource some of their software requirements to India.

The reason is simple: this approach saves time and money. Moreover, it is growing steadily more attractive: last year, North American companies alone spent $114 billion on in-house software development, contracting, and purchases--and costs will only go higher as additional basic business processes are conducted over the Internet.

Nonetheless, the benefits of going offshore can be hard to capture. The development of custom software is different from most other business activities, since it requires a detailed understanding of business processes and the way IT supports them. Building an offshore partnership therefore requires much effort and delicate handling by senior managers. What is more, the field of software engineering is relatively new, and procedures for quality control and project management, though developing fast, have yet to evolve fully.

Without discipline in managing offshore relationships, a company can not only squander the cost and time savings it had hoped to gain through them but can also face other problems, such as late deliveries, escalating costs, mismatches between expectations and deliverables, and even outright failure.

Despite these problems, successful offshore partnerships can be forged. Through our work with clients and interviews, we have created a diagnostic approach that helps companies to segment their software development and maintenance projects and thus to pinpoint good candidates for offshore outsourcing.

Charting the waters
In the 1970s and 1980s, manufacturing companies around the globe began to move large parts of their operations to places such as Mexico, the Philippines, and Puerto Rico, where lower labor costs made them more cost competitive. For the same reason, some companies attempted to outsource their software development efforts offshore in the 1980s, but it took the enormous amount of reprogramming required by the Y2K transition to catalyze the process. In the course of carrying out those projects, the poor reputation that most offshore firms had in the early 1990s was transformed: many of them did high-quality work and used sophisticated application-management processes to do it.

As a result, over the past five years, companies have begun to outsource many of their internal IT services, such as help desks, software support, and software development. The most popular offshore location is India, which combines high quality with low costs. Other possibilities, involving a variety of trade-offs, include China, Ireland, and Israel. Companies in the most popular offshore locations have excellent capabilities and are now in an ideal position to provide more sophisticated value-added software development services.

And that is a very good thing. Labor accounts for more than 75 percent of the cost of developing software, and the market for highly skilled IT professionals is very tight in the United States. Recruiting, hiring, and training people to meet the constantly changing needs of the IT environment not only costs a great deal of money but can also delay the completion of projects. Gartner reports that because of high turnover--the average stay of a programmer in any one job is only 11 months--companies spend more than 10 percent of their IT budgets recruiting and training new staff.

Although local outsourcing to software firms in the United States (or other developed countries) may be possible, companies can gain a strategic advantage from the lower wages and benefits prevailing in countries such as India, where hourly, fully loaded programming rates can be 40 to 60 percent below those in the United States. Companies that use offshore partners to do their non-discretionary programming (maintenance and enhancements of legacy systems, for example) also find that lower offshore costs free up capital for new development efforts--say, on mobile-commerce applications.

What is required?
Only companies with fairly large IT staffs--more than 50 in-house employees focusing on software development or maintenance--should consider offshore software partnerships, since much time and substantial resources are required to negotiate them and to oversee the work and the integration of development teams. Furthermore, a company that outsources software development shouldn't have a taste for "bleeding-edge" technology, which ought to be created in-house since it requires a high number of design-code test-redesign feedback loops.

Once a company decides that it is suited to outsourcing, it should establish formal processes for its make-or-buy decisions. To reap the greatest global economies of scale, an outsourcing deal must serve the needs of the company as a whole; divisions shouldn't be allowed to act independently. A senior IT leader--preferably the chief information officer--ought to head up the process, and senior business leaders whose applications will be affected by offshore relationships ought to be involved as well. If the partnership addresses the software development and maintenance needs of most of the company, the chief executive officer too might participate in the decision making.

Software development typically progresses through six steps: project initiation, analysis, logic design, physical design, implementation, and maintenance. The early phases tend to be poor candidates for offshore work because they call for a lot of collaborative communication and involve more business logic than technology. Good candidates for outsourcing require limited interaction between business units and the IT department; they should also be large enough for the potential savings to justify the necessary management attention. Relatively big projects are particularly attractive to an offshore vendor, for they allow it to spread its resources more smoothly and give it a greater opportunity to gain useful knowledge for future projects.

Strong candidates for offshore outsourcing include rewrites of core systems, re-architecturing efforts, the maintenance of legacy systems, data cleansing, and release updates. Offshore outsourcing is a particularly important option for maintaining legacy systems--often a large and onerous part of an IT organization's workload and one that is getting harder to accomplish given the relative rarity of legacy skills and the unattractiveness of the work. As a leading developer of software for automated teller machines said of his legacy systems, "Developers in the United States do not find these projects exciting."

Offshore partners may have difficulty maintaining application designs for projects such as e-commerce applications, which have short time frames or call for feedback from users. But once these projects enter the later stages of development, even they can benefit from outsourcing. A developer of business-to-business software who regards speed to market as critical remarked, "With our new overseas operation, our team is working round the clock, and I now have access to a larger pool of IT resources than I did in the United States alone."

Companies have generally developed their software in-house, so they have not yet fully worked out their approach to development partnerships. But the advent of high-quality outsourcing makes it essential for client companies to apply to this area their expertise in writing contracts and in managing vendor relationships. In software development as in other fields, forging a successful offshore partnership requires a high degree of due diligence and commitment on both sides.

Information about the capabilities, tools, and expertise of some offshore vendors is sketchy, so on-site visits (as well as references and research) are essential in selecting partners. First and foremost, potential ones should be ranked on their ability to provide all of the needed expertise. Another important consideration is whether their resources will be devoted solely to one's company, since an outsourcer that works for several clients simultaneously may require sophisticated resource- and project-management procedures it doesn't really have.

To estimate the ability of a potential offshore outsourcer to ramp up and sustain its resources, companies should therefore try to gauge its financial soundness and its history of attracting, training, and reallocating talent. Talent in some key categories will undoubtedly run short as more companies begin to use offshore partners, so only those with strong training and recruiting programs are likely to keep up with the demands of the work. Finally, a potential partner needs a good local presence near the client IT organization to communicate with it freely and to manage the project smoothly.

Once a company chooses its offshore outsourcer, it should define the required level of service on three dimensions: resources, performance incentives, and quality. The offshore outsourcer should guarantee that it will assign people with specific skills to the client company's project within, say, four weeks of the initial request, and the client should have the right to conduct regular audits of the outsourcer's project management, quality assurance, and development processes. IT service level agreements too often ignore such procedures because many companies seem to view them as more trouble than they are worth, but in the absence of an audit, a company whose relations with its partner are deteriorating may be unable to diagnose the problem.

The next steps
Next, the client company should develop a performance-based incentive structure that might include metrics such as the number of bugs for each 100,000 lines of code, the percentage of code accepted after its first test by the user, and adherence to schedule and price agreements. Finally, there should be clear definitions of success and failure on both sides of the partnership, with defined processes for raising or lowering the level of collaboration between them. Carefully worded exit clauses that address the responsibility for documentation, for the transfer of knowledge, and for intellectual-property rights are important as well.

The choice of one vendor over another shouldn't depend on price, but both parties ought to accept certain clear pricing principles. Companies should lock in per-diem rates for each category of developer that a project will require for the duration of the contract. Those rates, as well as the cost of the entire project, ought to be monitored over time so that the benefits of improved efficiencies at the offshore outsourcer flow to the contracting company. (In the automobile industry, for instance, original-equipment manufacturers get better prices every year thanks to the improved processes of their component vendors.)

It makes sense to work out a project schedule that moves a company's less critical projects off-shore first. Support projects lend themselves well to building confidence; only after a few of them have been carried out successfully should companies entrust development work to an offshore outsourcer--and, even then, it is wise to start with work that isn't critically important. In many instances, companies ask outsourcers with whom they are building relationships to initiate development projects at their own sites; once confidence is established, the projects move offshore.

Keeping tabs on the project
Old hands at outsourcing have found that client companies can best manage their offshore projects by appointing a project manager who works with each offshore development team to provide technical oversight and links to the client's business units.

The manager also serves as a troubleshooter, ensures that the offshore developer makes steady progress and works efficiently, and facilitates the execution of the project--for instance, by setting up user groups to test the software, easing communication with the leaders of business units, and arranging for company-specific documentation. This decentralized approach to development promotes collaboration between the offshore outsourcer and the business units' in-house software architects, who have deep technical knowledge. Nonetheless, a central management office is typically needed to manage the offshore relationship as a whole; otherwise, an excess of contact points with the offshore developer will probably give rise to misunderstandings and, often, to higher costs or missed deadlines.

Coordination becomes an important issue for companies that are developing several projects simultaneously with one or more outsourcers. For instance, a Fortune 500 company that had four separate business units and four different outsourcing-management organizations quickly came to the realization that it was duplicating many activities and failing to reap sufficient economies of scale. According to the company's CIO, "Once we realized that the resources that these vendors were demanding from us were very similar, we decided to streamline the management of our offshore efforts through a central organization for the whole company, without sacrificing our speed of development."

Communication can pose a challenge even with a single project, however. One reason is a mismatch between the IT capabilities of client companies and those of their offshore outsourcers, which now actually tend to have higher qualifications. Another is that the client company's project managers have less physical interaction with an outsourcer's developers than with in-house employees. Most of the companies that have successfully outsourced their projects require offshore suppliers to install 24-hour progress-monitoring systems that give them constant access to the work, generally through Internet-based electronic databases that are updated as projects are completed. In addition, the client should have access to the files and the code under development, so that the offshore vendor has a real responsibility for ensuring that the tracking tools adequately represent the status of a project at any given time.

Sometimes more is needed, even with trusted offshore outsourcers. A retail point-of-sale software company, which found that its chosen outsourcing partner had developed poor prototypes, decided that it would improve communication by having a small team from its outsourcer rotate between its own U.S. facility and the outsourcer's home location. The client company found that although bringing offshore developers to the United States was expensive, the improved transfer of knowledge soon paid off, and the overall costs of the project were still a good deal lower than they would have been with any other option.

Finally, a client company should make every effort to ensure that its in-house staff stays up to speed technically with its offshore vendors so that it doesn't become entirely dependent on their assistance. Such dependence can be very costly indeed.

A financial-services company we encountered in our work found itself almost held hostage by its offshore vendor: no one in the client company had supported one of its legacy systems for three long years, which meant that it had no substantial knowledge of this system and thus simply couldn't switch vendors. As a result, the company was unable to negotiate a favorable deal with its current vendor, which was in a position to charge $1 million more than any competitor would have done for similar work--on a contract that totaled only $3 million to $4 million. The client company escaped from this trap only when it finally replaced the legacy system in question.

It can be very fruitful to maintain long-term partnerships--but not too many partnerships simultaneously: economies of scale in infrastructure costs and in the time needed to transfer knowledge can be achieved with just a few such partnerships. Whatever relationship model a company chooses, it should maintain its ties with other vendors so that they can serve as backups for local or highly specialized work or in the event of emergency development efforts.

The offshore outsourcing of software development is an increasingly important strategic option. Any company that considers the idea of establishing strategic offshore partnerships must have a thorough understanding of their benefits and risks, as well as a strong management plan. Companies that do outsource will find that offshore development firms are more and more capable of providing high-quality service, quick turnarounds, and big cost savings.

For more insight, go to the McKinsey Quarterly Web site.

Copyright © 1992-2001 McKinsey & Company, Inc.