Software Development
My first 20 years in engineering were marked by a chronic shortage of software developers, which pushed up salaries and perks at many times the rate of inflation. As recently as 1995, the U.S. Department of Commerce forecasted a deficit of programmers through 2030. What a difference 10 years makesin 2006, we have a surplus of software engineers, stagnant salaries and software jobs moving offshore to India, China, Russia and Eastern Europe. It's clear that the industry is rapidly transforming, but what's behind all this change?
First, there's been a consolidation across deployment platforms: The majority of applications now run on a J2EE, Microsoft or the open source LAMP (Linux + Apache + MySQL +PHP/Perl/Python) platform, and Intel has become the dominant hardware platform.
Second, development platforms have consolidated. Java and .NET may compete as do Coke and Pepsi, but the dozens of languages and development environments that competed in the '80s and '90s have fewer adherents.
Finally, the Internet has made it easier to access talent distributed across enormous geographic boundaries, allowing companies to compete for the lowest prices. Companies with 100 developers used to work on one floor of a building in San Jose or New York. Now there may be four groups working in San Jose, New York, Bangalore and Los Angeles.
These trends give programmers in Boston, Moscow, Shanghai or Chennai access to the same computers, running the same operating systems, compilers and development tools, and the same networked resources.
However, outsourcing isn't new. In the first half of the 19th century, New England was the shoe capital of the world. Access to cheap (Irish or French Canadian immigrant) labor, cheap (water) power and (relatively) cheap capital allowed the industrialists to build enormous brick factories. These factories were filled with sewing machines fueled by these rivers, and staffed by trained and skilled laborers who worked as efficiently as anyone else. But after the Civil War, cheaper labor in the southern states resulted in the closing of the northern mills. Eventually, the shoe industry moved offshore, and shoes were made in the Philippines, China, Korea and the like, where access to labor, capital and power were even cheaper.
But is this trend inevitable? There are certainly counter examples in other industries. Today some of the most profitable companies in the U.S., such as Nike and Reebok, no longer concentrate on the manufacture of shoes, but instead focus on innovation: the design, marketing and manufacturing control processes of shoes. Software development organizations must also focus on "smart labor"the processes to manage the design and development of software. Concepts like Extreme Programming and Scrum are efforts to increase innovation and cut delivery time. These "iterative" development processes are inherently marketing requirements-focused and parallel-development activities.
Each company's ability to adopt advanced development models and utilize distributed resources is restricted by the increase in the complexity of managing the engineering process. This restriction can be removed through a combination of management training and better process-management tools. The former has sent engineering management back to the classroom, and the latter has lead to rapid adoption of new tools needed to manage the process: better issue tracking, configuration management and project management.
Software engineering managers and designers, like those at Nike, can provide the high value-added piece to the software industry. They need to do three things, and do them well:
- Define the development process that optimizes their efforts, allowing them to access and efficiently utilize development resources to deliver innovative products.
- Implement the development process to guarantee compliance at each stage through tools and training.
- Harmonize the engineering, product management and services organizations to eliminate waste and reduce friction.
The promise of offshore development is the same as its challengeaccess to lower cost resources will produce competitive advantage to those that can best utilize them. Unlike the mill employees of a century ago, today's engineers and managers have the tools and information they need to take control of these changes and use them to create a better career path for their future.
Lorne Cooper is president of AccuRev (www.accurev.com), a provider of software configuration management tools for distributed and parallel development.