One recurring theme is the indirect network effect of applications and infrastructure: applications seek widely deployed infrastructure, and infrastructure seeks a diversity of applications. What are some specific ways in which the market can overcome this chicken-and-egg conundrum? Can you give examples of these? What are their relative merits? Which are most likely to be commercially viable?
Consider in specific terms what properties an infrastructure must have to enable new applications to arise without the knowledge or participation of the infrastructure supplier or service provider.
Give some additional examples of how the tendency of the market to add to infrastructure rather than change it leads to later difficulties. Can you identify some examples and specific methodologies in which infrastructure can be changed rather than merely expanded?
What are the best areas of the software industry for venture-funded companies? for large established companies? Why?
Because of the substantial economies of scale, it is wise to avoid direct undifferentiated competition in the software industry. What are some specific strategies that suppliers use to differentiate themselves in applications? in infrastructure?
A dogmatic view of layering requires that layers be homogeneous and interact only with the layers directly above and below. What are some advantages and disadvantages of relaxing this dogma, as in the example of figure 7.3?
What are some differences in the strategic challenges of firms competing in a stovepipe and in a layered structure in the industry?
Consider how the properties of good software modularity (see section 4.3.3) apply more or less strongly to industrial organization.
Discuss in some depth whether an infrastructure service provider should also bundle applications, and whether it should develop or acquire those applications.
Discuss in some depth the relation between standardization and industrial organization, specifically different types of standardization (e.g., de facto vs. an industry standards body).
What strategies do software suppliers use to maintain control over an architecture and in taking advantage of that architectural control?
What are the considerations in choosing to offer an API or not?
What are all the elements that make up an open standard, and when these elements are modified or eliminated, when does the standard cease to be open? This question is best considered in the context of what kind of benefits an open standard confers, and when those benefits are compromised.
Consider the process by which a de facto standard develops in the marketplace. Is a de facto standard always an open standard? When is encouragement of a de facto standard in the best interest of a supplier? Do different types of de facto standards (e.g., interfaces, APIs, data representations) arise in similar ways?
Discuss the relation between an agile software development process (see section 4.2.5) and an agile standardization process (one that is flexible and adaptive). Under what conditions is a standardization process essentially (or at least part of) a collective development process?
Composability of modules requires interoperability and complementarity (see section 4.3.6). What is the proper role of standardization in these two aspects? What else is required besides standardization?
Consider mechanisms and incentives that could be used to encourage software reuse in a development organization. Do you think this can be effective? What disadvantages might there be?
For each property of a component listed in table 7.5, discuss the business considerations and possibilities that arise from that property. What are the implications to component supplier, component customer (e.g., system integrator or system developer), and end-user?
Discuss how component software differs from infrastructure software, since both concepts emphasize multiple uses. How do the challenges and strategies of component suppliers differ from those of application and infrastructure suppliers?
Reflect further on the challenges of satisfaction-based requirements for a component supplier-customer relationship. Also consider the issues of risk and trust, and how these relate to satisfaction.
Imagine that you are in the business of producing and selling plans for a flexible factory. What kind of business challenges would you face?
Discuss the possible parallels and differences between component assembly as a model of emergence in software and business relationships as a model of emergence in the industrial economy. What can be learned from these parallels?
Repeat the last question, substituting innovative composition of entities as a model for emergence in biological evolution.
How does the philosophy of Web services (assembling applications from component services) differ from that of the application service provider (accessing fully integrated applications over a wide-area network)? What are the differences in terms of business models, opportunities, and challenges?
Discuss the business issues that surround the assembly of applications from two or more Web services. These include the necessary coordination and issues of trust and responsibility that arise from outsourcing component services.