, University of Missouri-Rolla
Pages: pp. 18-20
No matter what business you are in, you are also part of the software business. Software makes the world go round—at ever increasing speeds. Computer-based, software-driven systems pervade today's society. From avionics flight control to the ubiquitous computers in personal digital assistants and cellular phones, to automotive and consumer electronics, software provides features and functions in daily use.
Increasingly, system functionality is implemented in software. Where we used to split hardware from software, the business case entirely determines such boundaries now—what we best package at which level in which component, be it software or silicon. For example, a TV set in the 1970s had no software, whereas today its competitive advantages and the majority of engineering efforts are software-driven.
The software business, however, has manifold challenges, ranging from the creation process and its inherent risks to direct balance sheet impacts. For example, the Standish Group found in its survey (2000 edition of the Chaos Report) that only 26 percent of the projects finished on time and within budget and a staggering 28 percent were canceled before delivery. Moreover, the remaining projects, which all finished late, over budget or both, delivered only a fraction of the planned functionality ( www.standishgroup.com).
Introducing a product to market late loses market share; canceling a product before it ever reaches the market sinks scarce R&D funds. Not only is software increasing in size, complexity, and percentage of functionality, it is increasing in contribution to the balance sheet and profit-and-loss statements. To make matters worse, requirements are easily and frequently changed. A recent study by the U S National Institute of Standards and Technology reports that insufficient software testing costs the US as much as US$59 billion a year and that up to US$22 billion of that could be saved if licensed software had just 50 percent fewer defects (NIST, The Economic Impacts of Inadequate Infrastructure for Software Testing, Washington, D.C., 2002; see also the News report).
This special issue is devoted to the business of software engineering. We explore some of the critical factors associated with succeeding in today's high-tech software businesses and discuss skills, knowledge, and abilities that software practitioners need to improve their business decision-making capabilities. We illustrate business cases to supplement technical arguments for process and technology improvement. We also address how software engineering can help small and large businesses as well as start-ups.
Every business needs good communication to be successful and reduce friction, whether it is from engineer to manager, manager to engineer, or engineer to engineer. It is easy for a company to relegate software to a low priority when it is focusing on other technologies in its products. Software engineers must speak out clearly and be heard and understood by management. Both sides must learn how to address each other's real needs. Management doesn't care for technical jargon, and engineers are easily confused with capitalization and depreciation questions about their software. The brief article on translating "software developer speak" to "management speak" and vice versa can help here.
We must consistently set targets on each level in the company and track them continuously against actual performance. We must manage changes in the business climate, or they will ripple through uncontrolled. And the committed targets must be followed through! We therefore present the Balanced Scorecard approach. Each company and software team can introduce this approach to focus on the right things and balance short-term (survival) needs with medium- to long-term investments and improvements.
As the saying goes, time is money; therefore, wasted development time is lost revenue. Thus, processes and methods that improve our ability to deliver reliable, quality software are important.
Security is a quickly growing software business. Recent examples for business models include the sale of hacker insurance, which works to keep corporate Web sites from defacement or denial-of-service attacks by hackers and protects databases, such as those maintaining credit card information. The more we share and network, the more we are exposed to attacks of all kinds. The exploding need for secure software and protection schemes for our business processes, end-to-end, indicate this impact. Our Point/Counterpoint discussion takes up one example from the security domain and illustrates two ways to approach software security and how that decision ripples into business decisions.
We have not explicitly addressed the "technical career track" versus the "management ladder." We believe that such discussions are individual choices. However, we do hope that all software practitioners value their stake in their respective software business decisions and that these pages offer ideas for increasing your return on investment in that business. The " Suggested Reading" sidebar offers more food for thought.
Whether your customer is internal to your company or a traditional external client or user of your product, whether the product is shrink-wrapped and shipped or a service or embedded system, customer satisfaction is part of good business and of good software. Here's to you and your customer.