Talent, experience, and maturity of the teams. Software has sufficiently high margins that talent, quality, experience, and maturity can mean more than costs per hour.
Organizational capability, including managerial leadership and—importantly—technical leadership. The lack of leadership tends to be the most difficult impediment to growing teams in new locales.
Capability in a wide range of software activities, including interfacing with project management, customers, sales teams, and finance teams. These activities are not ancillary to software; they are a core part of the business.
Co-location with a market. This is related to the previous point but bears repetition.
And, very important, lower labor costs.
Let me describe one situation in which IBM moved some software development from England to India fairly recently. IBM had a few tens of people doing somewhat repetitive, but still high-skill, high-profile, Java-related work in England. It took about a year-and-a-half to make the transition to India, during which time the English and Indian teams had to work together closely. The move was successful, with much of the work now being done in India. To the best of my knowledge, the English team was not unhappy because members felt there would be new, more exciting work to replace what they had been doing. That is, the move freed up the talent in England to do things that would generate more revenue growth and employment.
Overall, in the position I held at IBM, my biggest worry was always about leadership. The same need for talented leadership was also important in offshore software research—and was a persistent problem throughout the decade or so when I visited IBM’s newer research sites.
I have discussed four observations relating to (1) the global leveling of opportunity in software, (2) the great variety of objectives, job types, and practices in software, (3) the high elasticity (price and innovation) of demand, and (4) the interaction and mutual impact of software and computer science on more and more fields of human endeavor (my shorthand for this last point is Xi (CS + Xi)).
The most important implication is that there are vast opportunities in software. The technology provides sufficient benefits to ensure employment for many populations, with no obvious limits. This has not been true in other areas or other U.S. industries, where there has been significant degradation. Perhaps, for example, only so much innovation occurred in the steel industry over the years, and there is only so much demand. I do not believe there are similar limits in software (Message 3).
Second, because of the variability in the field, some populations have comparative advantages. One can differentiate to gain comparative advantage in many ways—talent, experience, capitalization, location, trust, risk, and so on. Take just one example, the need for trustworthy systems as software moves into life-critical domains.
I believe the application of software to other fields and vice versa will be increasingly important to opportunities for differentiated innovation. A situation may require not just software talent, but also multidisciplinary critical mass (Messages 2 and 4).
Just because of its centrality in so many fields, computer science and software are important. The ability to lead in IT development and IT applications continues to be important for our security and our economy (Message 4).
Finally, global leveling means that Americans cannot take software leadership for granted (Message 1).
To crystallize my, and perhaps your, thinking on the impact of offshoring, I’ve developed three admittedly overly simplistic scenarios.
Certain activities, such as testing, integration testing, internationalization (to make software ready for use in many countries), and coding are much less expensive because of offshoring. Nevertheless, elasticity of demand is still high, so lots of opportunities remain for talent in the United States. Dollars saved by the reduced costs of offshoring of certain activities are available for higher value activities that encourage growth in overall output and employment. U.S. innovation, employment, and economic contributions increase.
I think this scenario is not only possible, but is also the most likely to be realized. When I was at IBM, if development had been more cost effective, more development would have been done, much of it naturally in the United States.
To make this scenario even more comforting for the long term, certain coding, testing, and design activities would remain in the United States to ensure that American universities, labs, and corporations retained sufficient skill and training capabilities and to prevent insidious “technical hollowing out.” The United States is likely to retain some jobs across the spectrum for two reasons: (1) if all members of a team are co-located, the work goes faster; and (2) overseas cost benefits tend to decrease as workforces there gain skills and experience (note the significant wage inflation for talented Indian software professionals).
In this scenario, more and more employment in the central sphere moves offshore. But, the software field continues to change fast enough to generate new subdisciplines or, if you