The software value chain captures the major functions that must be brought together to put a working software application in the hands of users. In this section some natural alternatives for the industrial organization of this chain are discussed.
The value chain of figure 5.1 displays a natural partitioning of business functions from software creation to use. Companies tend to form around individual units of value that enhance internal synergies and exploit common competencies and expertise, so the organization (Langlois 1992; Robertson and Langlois 1995) of the industry itself is a partitioning of this value chain. In these terms, natural business functions represent distinct sources of value (see figure 6.1). This partitioning displays the desired characteristics of modularity: strong cohesion of function within Natural business partitioning of the value chain. modules and weak coupling of function among different modules. Of course, there is coupling, which forms natural boundaries for business relationships within the industry.
Figure 6.1: Natural business partitioning of the value chain.
Recall that weak coupling is a much more important property of modularity than strong cohesion because a hierarchical decomposition of a module lacking strong cohesion into submodules possessing stronger cohesion is possible. This phenomenon is also observed in industrial organization. For example, while software creation is a natural unit of decomposition, it is also an impractically large activity for any one company to encompass in its entirety, and thus further decomposition of the industry into more specialized areas, such as application, infrastructure, embedded, and component software, is observed. Some companies pursue and exploit synergies among two or more of these areas. Chapter 7 considers the internal organization of the software creation industry in more detail.
Consider some natural business functions (see figure 6.1) and the argument for why it displays weak coupling to the other functions. The industry consultant analyzes and conveys the needs of a vertical industry segment (e.g., medical care) or horizontal business function common to all businesses (e.g., accounting), and how they can be expressed in application software features and capabilities (see chapter 3). The application software supplier develops the application, maximizing market share by attempting to meet the needs of multiple end-user organizations, and emphasizing core competencies like technical and project management skills in software development (see chapter 4). The industry consultant need only study representative end-users to achieve an effective requirements definition; this sharing of effort and costs over multiple end-user organizations contributes to economical application creation.
The end-users for infrastructure software are both application developers and operators. The infrastructure software supplier must be cognizant of the requirements imposed by a wide range of applications and the needs of application developers. Like the industry consultant, this supplier benefits from economies of scale in studying only a representative set of applications. Infrastructure software that attracts many applications offers more value to its end-users, a form of indirect network effects (see section 3.2.3). For both these reasons, a many-to-one coupling of application suppliers to a single infrastructure supplier is beneficial. (For further economic justification for infrastructure, see chapter 9.)
The system integrator specializes in provisioning. This role takes responsibility for acquiring software from application and infrastructure suppliers (in the latter case, usually more than one), makes all this software work together and with the supporting infrastructure equipment, and installs and tests the software. The value added by the system integrator is the emergent capabilities arising from this integration. In the course of interoperability testing, required modifications to modules are sometimes identified, and normally it is the original supplier (in a maintenance role) who implements any such modifications. In addition, there is often a need to create custom modules to integrate with acquired modules, or even to aid in the composition of those modules, so some implementation may be required.
The important role of the system integrator in making the application and infrastructure work together is the primary argument for grouping the provisioning of application and infrastructure. The many-to-many relationship between application and infrastructure suppliers (including, in the latter case, both software and equipment) is an argument for having an independent system integrator.
To meet the needs of multiple end-user organizations, application software suppliers provide configuration options and often leave flexibility to mix and match modules to end-users. In a given end-user environment, different compositions of applications may meet specific needs. Making use of these options is an important component of provisioning, one that is closely tied to the needs, processes, and structure of the end-user organization. An important aspect of provisioning is thus making adaptations for the end-user organization and training its workers. Understanding a specific end-user context is the role of a business consultant, who can draw on past experience in applying the same or similar applications in other companies. Thus, system integration emphasizes the technical aspects, and business consulting emphasizes the organizational and needs issues. The industry consultant focuses on the needs of all firms, and the business consultant focuses on adapting applications for use in particular firms.
Example The largest accounting firms, such as KPMG, Price Waterhouse Coopers, Deloitte and Touche, and Ernst and Young, have consultant organizations that assist end-user organizations in acquiring and adapting software applications to their needs. Often these consultants perform all the provisioning functions: needs assessment, organizational changes, configuration, and training. Large computer suppliers, such as Compaq, IBM, and Hewlett-Packard, also offer similar services. An increasing trend in the accounting industry is to spin off consulting arms as separate companies, for example, Accenture, which was spun off from Andersen Consulting, which was spun off from Andersen. These firms also provide system integration services, so they have two types of skilled employees who work closely together: systems analysts and business analysts.
Operations are the specialty of a service provider. An application service provider licenses and operates the application, and an infrastructure service provider purchases or licenses and operates the hardware and software infrastructure (computers, storage, network, operating system). The primary argument for separating application and infrastructure operations is economies of scale in sharing a common infrastructure over multiple applications (see chapter 9). There are three distinct specialties in infrastructure service provision, corresponding to the three areas of information technology (see section 2.2.2): processing, storage, and communication. Communication and networking service provision is almost always separate from the others, especially in the wide area, since it requires the acquisition and management of radio spectrum or cable rights of way, a specialty in its own right. Processing and storage have similar needs for interior floor space for hosts and storage subsystems, but stored data often constitute an important corporate asset that requires special nurturing and protection (e.g., mirroring and backup), whereas processing has no similar durability requirement. For this and other reasons, the threetier client-server architecture decomposes server functions into application logic and storage (see section 4.5.3).
Operation requires special skills to keep things running (availability) with high performance, to protect assets from threats (security), and to meet the operational needs of end-users (e.g., setting up and configuring accounts), functions that can often be shared over multiple applications. Application software suppliers and consultants focus on the functional needs of the user population as a class, and service providers focus on meeting individual day-to-day needs. Customer care by an application supplier helps users benefit from application features and capabilities, whereas customer care in operation includes functions like configuring authorization and authentication for access to the application.
Not shown in figure 6.1 is the information content supplier. One focus of many applications is the manipulation and presentation of information, which may come from an independent source (e.g., a stock analyst discloses company prospects to the users of a stock brokerage application). Such an information intermediary can aggregate, consolidate, and filter information in beneficial ways and supply similar information to multiple customers.
The argument that strong coherence is not an essential characteristic of good modularity cuts two ways, both down and up the hierarchy. It can suggest a hierarchical decomposition of the major business functions into ever more specialized firms, and also allow for composition of business functions into horizontally or vertically integrated firms. Any hierarchical decomposition extends the supply chain, where one firm incorporates products and services from its own suppliers into a finished product or service. We now discuss some common compositions of the natural business functions.
Functionally, as emphasized in section 4.2, end-user needs are not static, and thus requirements must be manipulated and refined throughout a software life cycle, including initial development, maintenance, and upgrade. There is a natural give-and-take between being excessively focused on changing requirements, on the one hand, and compromising schedules and even deployment by imposing too many changes, on the other hand. The industry consultant role is commonly subsumed within a product marketing function of the application software supplier, but we argue later that this and related expertise (like interaction and graphics design; see section 4.2.6) are distinct skills that will increasingly be sought from the outside.
Where an end-user organization has distinct requirements or wishes to emphasize competitive advantage through unique capabilities, it will typically pursue internal software development or directly contract for development.
The phases of computing (see table 2.3) and the resulting shifts in industrial organization illustrate the interdependence of business models and technology (although cause-and-effect is not always so clear). In the mainframe era, applications ran on a centralized mainframe computer commonly owned and operated (and often even developed) by the end-user organization's internal information systems department. Only the infrastructure equipment and software were acquired from the outside. This model composes every business function except infrastructure equipment and software (see figure 6.2).
Figure 6.2: Composition of all business functions except infrastructure was common in the mainframe era, as represented by the shaded block.
Later in the mainframe era, and especially today, applications were increasingly acquired from software companies rather than developed internally, creating a new business sometimes called the independent software vendor. An early example was the financial or accounting application. This trend was encouraged by time-sharing, which for the first time brought individual workers directly into contact with their organization's computers. Their direct needs, such as presenting structured information and authoring documents, tend to be generic—less specific to the organizational mission—than many mission-oriented mainframe applications.
Example An early popular application was the database management system (DBMS), which supports the acquisition, management, and retrieval of business data, such as character strings and numerical values (see section 3.1.1). The DBMS was often used in raw form, allowing workers to directly enter and access data, although today it is usually built into a larger application. Early word processors (crude by today's standards) appeared on time-sharing computers.
The decentralized desktop computer era greatly expanded individual productivity application offerings. Much of the personal computer's early popularity and rapid penetration followed the individual user's ability to directly acquire and install applications without depending on a centralized information systems organization that often imposed delays or achieved a poor match to changing needs. On the other hand, the early desktop computers shifted the burden of provisioning and operation to the individual user, affecting the total cost of ownership (see section 5.2), including the opportunity cost of distracting workers from other duties. This also resulted in chaotic management of information resources, creating inconsistent copies and making backups unreliable.
The networked computer era brought remarkable opportunities and changes. The desktop computer and the time-sharing computer were networked, and applications were partitioned across them in a client-server architecture (see section 4.5). The desktop computer both supported individual productivity applications and at the same time participated in server applications. The most immediate effect was to recentralize operational responsibility, as the information systems organization provisioned and operated server-based applications and administered the individual computers over the network using administrative tools from infrastructure software suppliers.
The networking era also brought the network service provider into the picture. Rarely would it make sense for an organization to provision and operate a widearea network, and many organizations have outsourced their local-area networks as well.
Client-server applications serve specialized departmental functions in organizations, but a recent trend has been toward enterprise applications supporting a complete business process (from acquiring parts and material to shipping finished goods) spanning multiple departments. These applications often incorporate and federate existing departmental applications by setting up peer-to-peer communication and storage links among their servers, allowing them to share information. In this model, the enterprise application is developed essentially from scratch by an internal information systems organization.
An increasingly popular alternative is to acquire an enterprise application from an independent software supplier, including categories called (for example) enterprise resource planning (ERP), enterprise asset management (EAM), and customer relationship management (CRM). These off-the-shelf solutions generally require the end-user organization to start from scratch, designing and deploying new processes and organizations along with the software during provisioning.
Example The largest ERP suppliers are SAP, Oracle, PeopleSoft, and Baan. Lately they have extended their applications to connect suppliers and customers, turning them into business-to-business e-commerce solutions. These supply chain applications illustrate the challenges of distributed management (see section 5.4). The largest supplier of CRM applications is Siebel, followed by the ERP suppliers growing into this market segment and many smaller companies.
end-user organizations installing ERP applications frequently contract to consultants who have experience in provisioning the same ERP solution in other organizations to aid in configuration, redefinition of processes, reorganization, and training.
Example To accommodate a variation in needs, ERP applications offer many configuration parameters and options. The configuration of the ERP application suite R/3 from SAP (the largest ERP supplier) is daunting without the aid of experienced consultants. The independent consultant Ploenzke grew in parallel with SAP; now a subsidiary of CSC, CSC Ploenzke has multibillion dollar revenues from the installation of R/3 for large enterprises.
The industrial organization represented by ERP and other enterprise applications (see figure 6.3) moves another step toward the natural business decomposition shown in figure 6.1 by separating all functions except operation and use.
Figure 6.3: The enterprise application model leaves application software development and provisioning to specialized firms while retaining most operations in the end-user organization.
The ubiquity and performance of the Internet makes possible an alternative model (see figure 6.4) in which end-users access and invoke application features over a wide-area network. The firm providing the application is called an application service provider (ASP), although in practice such a firm typically composes both provisioning and infrastructure service provider functions. The ASP Industry Consortium defines an ASP as a firm that "manages and delivers application capabilities to multiple entities from a data center across a wide-area network (WAN)." It is implicitly assumed that the ASP operates a portion of the infrastructure (the data center) and hence is also an infrastructure service provider by our terminology.
Figure 6.4: The application service provider (ASP) provisions and operates an application, offering it for use over a wide-area network.
Example A historical example of an ASP is the telephone service provider. Telephony is an application supporting voice conversations, with auxiliary software-based features such as switching, conferencing, call waiting, calling number identification, and so on. The telephony application is based on an equipment infrastructure originally custom-designed for telephony, but more recently similar capabilities have been based on the Internet and dedicated call-processing hosts. The application software suppliers include Cisco, Ericsson, Lucent, Motorola, and Nortel Networks, doubling as infrastructure software and equipment suppliers. Examples of telephony service providers that are ASPs include AT&T, British Telecom, Deutsche Telekom (which owns VoiceStream), SBC (which owns a majority interest in Cingular), Sprint, and WorldCom/MCI.
The ASP can be viewed in two complementary ways. It decomposes provisioning and operation from use, or in more conventional terminology, it allows the end-user organization to outsource provisioning and operation. It is also sometimes viewed as a different way to sell software: instead of licensing software to the end-user organization to provision and operate, the software is licensed to an intermediary who manages the provisioning and operation. The software supplier may become an ASP itself, in which case it becomes a service provider with its own internal application software development.
Example Borland was historically a software supplier but moved into the ASP market by acquiring Bedouin. With its "TeamSource Development Services Platform," Borland offers its rapid application development environment as a service, supplementing its traditional software licensing model. Nightfire is a startup business-to-business e-commerce company that serves as an intermediary between customers who want to subscribe to high-speed Internet access using digital subscriber loop (DSL) technology, firms providing that access as a service, and local telephone companies that lease their lines for that purpose. The subscription pricing is based on transactions: the service providers pay a fixed fee for each processed customer order.
The ASP model is often described as selling software by rental rather than licensing, but its essential business feature is outsourcing provisioning and operation. While the ASP model often leverages the wide-area network to offer similar application services to multiple end-user organizations from a common server infrastructure, despite the definition favored by the ASP Industry Consortium an ASP can also provision and operate applications on site, for instance, to address performance or security concerns. In this light, EDS and Perot Systems are precursors to the ASP idea, and big players in the over-the-network ASP field as well.
The ASP has significant advantages to both the user and the application software developer. To the end-user organization, this sheds one business function not directly related to its core business and expertise. Because of the economies of scale and specialization the ASP enjoys, the ASP model has proven cost-effective. Another major advantage is scalability to growing throughput requirements. Especially for applications that deal directly or indirectly with individual consumers, throughput requirements can grow dramatically in a short time, and the ASP's scale allows it to adapt more easily. Contractual relationships can hold an outside firm accountable for quality and performance in a way that internal organizations cannot, in effect shifting risk from end-user to service provider. On the other hand, users can be reluctant to share their proprietary data with an outside organization.
To the application software supplier, the ASP infrastructure environment is more homogeneous than the end-user environment, significantly easing the technical challenges. For example, the user doesn't care what kind of equipment and operating system platform is used to host an application accessed over the network, whereas different end-user organizations specify platforms based on supplier relationships and employee expertise. A software supplier may target a single platform for ASP hosting (especially where it acts as an ASP itself) but may need to support multiple platforms for applications licensed directly to end-user organizations. The ASP model also makes some pricing and revenue models easier to implement, such as third-party advertising revenue or use-based pricing (see chapter 9).
A significant ASP enabler is a Web browser incorporating scripting languages and mobile code. Although satisfactory only for fairly simple user interfaces (specially designed client software can provide much richer capabilities), it circumvents the obstacle of installing a proprietary client application. The ASP can use the Web browser for presentation and also dynamically download application-specific code to be executed in the client browser. Where this is inadequate, installing application-specific client software moves toward a hybrid model, where part of the application is provisioned and operated in the end-user environment. An additional advantage of custom client software is that it can, unlike a browser, make use of multiple mutually unaware providers while not divulging private information. This is a major element of Web services (see chapter 7).
The evolution of industry structure reflects a natural maturation of the software industry. In the early stages of any new software application area, end-user organizations view their software as a way to differentiate themselves and gain competitive advantage. This, plus the lack of competitive options, leads them to develop applications internally. As the industry matures, the spread of best practices reduces competitive advantage obtained in this way, and a given application domain settles on fairly consistent capabilities and features. At this point, effectiveness and efficiency are enhanced by outsourcing functions no longer a direct source of competitive advantage, including, in the extreme, application development, provisioning, and operation. There always remains a "bleeding edge" where innovation and competitive advantage are gained by custom software development.
Sometimes external factors intervene to prevent a natural decomposition of business functions such as that shown in figure 6.1. An example is the distributed management of an application spanning organizational boundaries (see section 5.4). Regardless of the strong coherence inherent in operating a single application, responsibility must sometimes be unnaturally partitioned. Some would argue that this creates an opportunity for the independent ASP, who can centralize operations while accommodating users from various organizations, but in fact distributed management issues always remain.
Example Several industries have established independent online public exchanges for the procurement of goods and services, and there are even more private exchanges that allow suppliers to conduct e-commerce with a large firm. In such exchanges, customers post requests for bids, and potential suppliers respond with bids. The participants in such an exchange include employees of autonomous organizations, whether the exchange application is a centralized ASP or is distributed across the organizations. Thus, the issues of trust and access discussed in section 5.4 cannot be entirely circumvented regardless of application architecture.
The acronym for infrastructure service provider, ISP, is the same as for an Internet service provider but not to be confused with it. The Internet service provider is both an infrastructure service provider (providing backbone network access) and an application service provider (providing application services like e-mail and Web hosting).
The telephone industry has traditionally called telephony a service, and additional features such as call waiting value-added service features. In fact, telephony is both an application (it provides specific capabilities to end-users) and a service (there has typically been a service provider, who does provisioning and operation). As telephony is licensed as a software application based on a generic Internet infrastructure, it becomes clearer that telephony is an application that may or may not be provided as a service.