In this book, software technology and the myriad issues that surround its dissemination and use are examined from a number of relevant perspectives. This is especially timely as the importance of software in the overall industrial economy grows, and as the software industry undergoes important transformations. The tremendous success of the Internet is noteworthy in forever changing the structure of the industry, the applications of software, and software business models.
Most books on software focus on software technology or development methodologies. To be successful, software professionals need to appreciate the context of software in the real world. Other professionals like managers, lawyers, and economists with an interest in software and its uses and effects need to appreciate more deeply the technical aspects of software, at least those relevant to their own contexts. They need a vocabulary and a common frame of reference. This book addresses this need by explaining the characteristics of software in its context, emphasizing both technical and nontechnical issues, and relating the two.
The software industry cannot be fully appreciated outside the context of what precedes and what follows development. Conceptualizing what it does, the needs it serves, and its effects is an important prerequisite for understanding its development. Many issues follow software deployment, including provisioning, operations, use, maintenance and upgrade, customer service, and coordinated organizational changes and management challenges. Thus, an overall goal of this book is to integrate an explanation of pre- and post-development activities with a description of software development and technology.
The software industry is itself very complex, with many complementary products necessary to form a systems solution and complex alliances and standardization processes needed to meet the needs of numerous stakeholders. Together, the software suppliers, standardization bodies, content suppliers, service providers, and end-user organizations form a complex web of relationships. The "ecosystem" metaphor is truly descriptive.
The growing importance and special characteristics of software increasingly make it an area of activity for government and an interesting topic of study for the social sciences, law, and business. We capture the most important issues raised by the growing importance of software in the management, policy, and legal arenas, and relate them to the characteristics of software technology and business models.
The overarching theme of the book is that software is different. It is different from information goods in terms of its economic properties: although it shares some characteristics with information goods, with material goods, and even with services, it mixes these characteristics in unique ways. It requires a different legal perspective, as evidenced by the increasing attention given to software-specific issues in legislation and the courts, including patents, copyrights, civil liberties, and antitrust. It is distinctive among technologies and in its industrial and business challenges in numerous ways. The single most prominent objective of this book is to explain how software is different.
In summary, software touches many professional lives. This leads to many interrelated and overlapping perspectives on software, technical and nontechnical. Following introductory chapters, the book is organized around the perspectives of the user, software engineer, manager, industrialist, lawyer or policy expert, and economist as well as the overlaps and relationships among these perspectives. The objective of the book is to capture the key software issues and concerns of each profession, to describe the characteristics of software ecosystem as well as the relevant business relationships and processes that surround it, and then to explain these characteristics of software in a way that readers can understand even if they are not technologists.
Each chapter is not written primarily to address the needs of the associated professions; indeed, that chapter is likely to be rather superficial to an expert. Rather, the chapters are intended to convey a comprehensive view of the software ecosystem for the benefit of practitioners of each and every perspective. The book is primarily about software, so we make no attempt to be comprehensive in our treatment of the surrounding issues; rather, we explain them in sufficient detail to be able to relate them substantively to software. We do attempt to be reasonably comprehensive in explaining software itself, and in an accessible way, while avoiding numerous detailed technical issues of keen interest to technologists but less relevant from other perspectives.
The software industry has always undergone rapid change, but arguably this change has been never more swift than today, principally because of the Internet. We firmly believe that software would benefit from more in-depth research in economics, management, policy, and legal disciplines. For example, the opportunities surrounding the growing role of the service provider as an intermediary between software and the user are poorly understood but are nevertheless being very actively pursued. If you are a scholar interested in studying software-related issues, we aim to empower you by explaining arcane but relevant characteristics of technology and processes. As additional aids, a list of specific research and discussion issues is included at the end of each chapter and a glossary of the most important terms at the end of the book.
We are sensitive to the issue that since one co-author is an employee of Microsoft Corporation, the book may promulgate a Microsoft-centric view of the software world. As this is not our intention, we have given equal weight to numerous examples from across the software industry and have attempted to represent alternative viewpoints on many controversial issues rather than advocating a single viewpoint.
If you are a technical professional, you should also have a deeper appreciation and understanding of the many nontechnical processes, relationships, and issues that surround software. If you have an interest in molding the technology in ways that make it more useful and successful, enhance its positive outcomes, and mitigate its possible problems, you should find this book a helpful starting point.
This book is in part an outgrowth of a course taught at the University of California at Berkeley, "Strategic Computing and Communications Technology," to engineering, information management, and business administration students. It should prove useful in similar classes that examine the industrial and economic considerations of software: business, economics, and law courses, and courses for software professionals.
The book has an associated Web site, <http://mitpress.mit.edu/softeco>, where supplementary materials like hyperlinks to resources referenced in the book, more detailed or analytical write-ups, and presentation slides are posted. This should be particularly valuable to instructors using this book.
This work was first published as a technical report (Messerschmitt and Szyperski 2001). Messerschmitt is indebted to Hal Varian, who co-taught the "Strategic Computing" course in 1997 and helped to refine and expand it in subsequent years, and to Carl Shapiro, who co-taught the course in 2001 and provided numerous helpful comments on the manuscript of this book. Others provided many useful comments on preliminary versions of the book, including Glenn Woroch of the University of California at Berkeley, Leonard Cheng of the Hong Kong Institute of Science and Technology, Cuno Pfister of Oberon Microsystems, Zurich, and several anonymous reviewers. Messerschmitt has benefited from discussions with others with a deep and abiding interest in the software and communications industries, including Michael Katz and Joseph Farrell of Berkeley and Jean-Pierre Hubaux of the Swiss Federal Institute of Technology in Lausanne. Szyperski has benefited from discussions with Brad Cox, Ron Kay, and Norbert Szyperski.