By Walker Royce, Vice President, IBM Rational Software Services, IBM
Most business leaders understand the place of software in day-to-day business operations. Basic operational systems -- such as payroll and accounting systems, database systems, and interoffice email -- all depend on some level of hardware and networking investment, as well as software and regular software updates. Much of this software can be purchased commercially, in “off-the-shelf” packages, and that’s fine for small businesses and start-ups.
But consider the needs of enterprises that have enjoyed some level of success and now need to grow. To continue growing, successful businesses need differentiation in all areas of operations, from the sales model to the partner relations program. This means that a competitive business’s most vital software systems have to be custom-built, and that their information technology (IT) needs to be regarded as an area of competitive strength.
Whether developed in-house or by contract with a software development organization, IT can help determine a growing business’s profile in the marketplace. Some of the most obvious examples include the biotech industry, where IT can help to produce new cures; the securities industry, where software-based analysis can help brokerage houses understand market trends; and of course, the defense industry, where top-secret software development plays a critical role in systems built for a nation’s security.
Yet, as vital as software development capability can be for healthy business or government organization, many companies treat software production as if each portion of the system can be planned like a bridge or a skyscraper. And why not? When building anything as complicated as a system that’s going to form the corporate backbone, conventional wisdom encourages us to hire engineers trained in mathematical precision, with careful attention to detail and planning, The problem is, traditional engineering management style just doesn’t produce good results when it comes to software development. In my experience, project managers who use a “steering” leadership style, rather than a detailed plan-and-track leadership style, are more likely to produce better software products.
The best analogy I know for this lies in the practices of movie production. Consider the following:
Most software systems, unlike bridges, are not bound by the laws of physics, or properties of materials, but on only by human imagination, economic constraints, and hardware performance capabilities.
In a software project, you can change almost anything at any time: plans, people, funding, milestones, requirements, designs, tests. Requirements -- probably the most misused word in our industry -- rarely describe anything that is truly required. Nearly everything is negotiable.
Metrics and measures for software products have no atomic units. Economic performance more typical in service industries (value as observed by the users vs. cost of production) has proved to be the best measure of success. Most aspects of quality are very subjective, such as maintainability, reliability, and usability.
Notice how easily all these observations apply to movie production. Movie-making professionals regularly create a unique and complex web of intellectual property bounded only by a vision and human creativity. And I bet the economic performance of movie production looks pretty similar to the economic performance of software projects. Since 2000, about one in three delivers on time and within budget. Isn’t software development simply an immature engineering discipline – on that, like bridge-building, will evolve into a more exacting science?
In the first place, the technologies underlying software development turn over completely every five years. Any discipline based on languages, architectural patterns, applications, user interfaces, computing platforms, networking, you name is, becomes old-hat when a new paradigm comes along. (Aside: How many movie producers continued investing in silent pictures after sound got added to the images?).
Secondly, like the movie industry, we have to keep moving forward with new tools and networking environments, getting our increments of software into executable form so, like film, it can be real enough to assess at the end of a day’s work. Software developers working in an iterative, incremental fashion leave lots of their work on the cutting room floor as they discover what works and what does not. But by steering the project, increment by increment, toward a goal that pleases our audience, we gradually synthesize the contributions of many people into one cohesive piece of integrated intellectual property.
Don’t get me wrong. Like the movie industry, we need qualified architects (directors), analysts (scriptwriters, designers), software engineers (production crews, editors, special effects producers, actors, stunt doubles), and project managers (producers). But rather than tracking their activities against a precise, long-term plan, the iterative method steers software projects through the minefield of uncertainties inherent in developing software applications. Delivering software products on schedule and on budget requires an evolving mixture of discovery, production, assessment, and a steering leadership style.
Good directing is dominated by value judgments, cost tradeoffs, human factors, technology trends, the market, and timing. Software projects are rarely concerned with precise mathematics, material properties, or the laws of physics. It’s what’s on the screen that counts -- whether that’s the big silver one, or the smaller one on your desktop.
About the Author
Walker Royce is vice president of IBM’s Worldwide Rational Brand Services. Walker joined Rational in 1994 and served as vice president of professional services from 1997 through IBM’s acquisition of Rational in 2003. During the last 10 years he has managed large software engineering projects, consulted with a broad spectrum of Rational's worldwide customer base, and developed a software management approach that exploits an iterative life cycle, industry best practices, and architecture-first priorities. He is the author of Software Project Management, A Unified Framework (Addison Wesley Longman, 1998) and a principal contributor to the management philosophy inherent in Rational Unified Process. Before joining Rational, Walker spent 16 years in software project development, software technology development, and software management roles at TRW Electronics and Defense. He was a recipient of the TRW Chairman’s Award for Innovation for his contributions in distributed architecture middleware and iterative software processes in 1990 and was named a TRW technical fellow in 1992. He received his BA in physics from the University of California, and his MS in computer information and control engineering from the University of Michigan.
IBM is the world's largest information technology company, with 80 years of leadership in helping businesses innovate. Drawing on resources from across IBM and key IBM Business Partners, IBM offers a wide range of services, solutions and technologies that enable customers, large and small, to take full advantage of the new era of on demand business. For more information about IBM, visit http://www.ibm.com.