|Book Review: The Business of Software|
The Business of Software
Written by: Michael A. Cusumano. New York: Free Press, 2004. 334+xv pages.
The Business of Software is an overview of the enterprise software business, strategies for software companies, the history of the software business, best practices in software development, entrepreneurship, and case studies. Its target audience is mainly executives, entrepreneurs, investors, and analysts, though anyone involved in the software business will gain valuable insights as well.
The book is unique because it describes an industry that, due to its products representing codified knowledge versus physical products, is still not well understood. The author's previous books, long-time research, and board-level involvement in a number of companies grant him instant credibility. In particular, the case studies separate this book from most others, which are either written from the vantage point of knowing a few select companies as an employee or of knowing many companies through surveys and interviews. This author has been involved with his case studies—from some of the best-known start-ups to the obscure—as a board member, investor, or consultant.
In the chapter on best practices in software development, the author's background as a researcher of not only American but also Asian and European companies clearly shows in such statements as “[American companies] tend to emphasize shorter or more innovative programs and spend much more time thinking about what they are writing and optimizing code—which reduces lines-of-code productivity in a gross sense” (p. 184). It is this in-depth familiarity with software development practices, the commercial aspects of the business in the historical context, and international differences that truly establish this book as a milestone in understanding the software business.
In a descriptive book, one would not expect the author to make strong arguments, but he grapples with the question of which business model—products, services, or hybrid—is the best and under what circumstances. This debate becomes a central theme throughout the book and is supported by numerous examples and case studies. In the end, the author does not provide a definite answer but comes close by offering a set of questions to ask oneself and by stating that “hybrid solutions sold to enterprises—the business model that combines products and services—are a realistic goal for a software company that does not have a hit product or a dominant platform to sell” (p. 280).
For investors or simply anyone considering becoming involved in a software start-up, Cusumano offers an eight-point framework to evaluate the viability and growth potential of software startups (pp. 202–12):
Incidentally, these criteria could serve just as well in evaluating nonsoftware startups, such as electronic, telecommunications, or biotech companies.
Software-Produkt-Management is written in German by three experienced practitioners of IBM Germany and BEA (Bill Coleman, Ed Scott, and Alfred Chuang) Systems. Given the book's shortness, its objective to be “the first encompassing treatment of software product management in both English and German literature” (p. 160, reviewer's translation) is ambitious. The book's strength then lies in the ability of the authors to distill the essence of a very wide range of topics. Helpful in this regard is omitting any stories, examples, or case studies, as is typical for a German nonfiction book. The claim of being first is also surprising given the books by Dver (2003) and Condon (2002). In particular, Dver's book is similar in scope and organization.
The authors caution that the book is not meant as a textbook and that its main audience is professionals involved in software product management on both the vendor's as well as the customer's side. The book therefore does not dwell much on complex subjects, and the treatment of some topics seems a bit shallow.
The book's seven chapters are as follows:
Although the authors' background clearly is in large enterprise software development, the book's scope includes both business and consumer software. Chapter 4 on the business of software describes the classic characteristics of software, such as unit cost close to zero, low market-entry barriers, stickiness of software with the user, the law of increasing returns, market leadership being essential for success, and partnerships being important for success.
Market leadership is used in this book as both first-mover advantage and market-share leadership. The fact that the software business is less stable due to pricing pressures on products (due to near-zero unit cost) compels companies to always look for the next market, while leaving markets that cannot be served profitably anymore. Consequently, software—compared to other products in the information technology area—has by far the highest cost of sales compared to revenue. Large price flexibility also makes price leadership a product strategy, which is difficult to implement.
Regarding the product versus service debate, the authors quote an article by Cusumano (2003) and apparently agree with the statement that companies must choose between products and services for their primary business. However, they caution against migrating from a custom software business to a standard software business, as this often leads to failure.
The authors view requirements management (sec. 11, ch. 5) as the most important process within the responsibility of software product managers. Accordingly, the topic consumes 36 of the book's 171 pages. This is unlike other books on software product management (e.g., Condon, 2002; Dver, 2003) that balance the traditional four Ps—product, price, promotion, and place—a little more. The authors follow the requirements methodology described in Schienmann (2002) by separating customer, product, and project requirements, where product releases address a subset of customer requirements implemented through projects.
Interesting for non-German readers may be the separation of a document called Lastenheft, which represents the product manager's view of the requirements, and a document called Pflichtenheft, which is a sort of contract between the development organization and the product manager. Examples of the former can be found in Balzert (2000), and examples of the latter can be found in IEEE Recommended Practice for Software Requirements (IEEE, 1999).
The authors include a table for evaluating the usefulness of a variety of sources for requirements for new products, revisions, single customers, business-to-business products, and consumer products (p. 107). Categorization of requirements is a key step toward prioritization and selection. Three major sources for categories are the source of the requirements, the size of their implementation effort, and urgency and importance.
The authors have an interesting viewpoint that product management should be established with a view toward improving the long-term performance of the company and its assets in the form of software products rather than supporting short-term urgencies. This is in contrast to the common practice of using the product manager as the go-to person for all product-related issues, especially when no other function has apparent ownership.
The authors also apparently see the product manager more as general manager with organizational clout than described in other books. For example, the product manager is supposed to discuss the sales organization's structure for the product with representatives from the sales organization. The product manager also appears to be responsible for making sure the support organizations have the appropriate staff and resources to support the product. Finally, the product manager, as the customer of the development organization, is directly responsible for the financing, the development content, and acceptance of intermediate as well as final deliverables.
The two books both provide solid, insightful overviews: one over the general business of software and the other over the work of software product managers within it—although neither uncovers revolutionary concepts. Whereas the German book can only be useful for a subset of JPIM readers, alternatives to it do exist in English (e.g., Dver, 2003). Cusumano's book, on the other hand, should be considered for every software product manager's short list, if anything to remind us of the basic considerations for setting a software business's strategy.