Economic Classification Policy Committee
From: Stanford Computer Industry Project
Software Study, Littlefield Center, Room 14
Palo Alto, California 94305-5013
Avron Barr and Shirley Tessler, Co-Directors
Brian Lent, Research Assistant
Date: April 26, 1995
Re: Standard Industrial Classification Replacement NOTICE
This memo reflects our extensive deliberations over the ensuing months about the qualities of various alternative classification schemes from the point of view of academics studying intensely the growing software industry. In this memo, we remark on changing the boundaries of the existing software service industry classifications, as well as argue for a market-oriented grouping of this economic data. We recognize the ECPC's efforts to improve classifications of industries engaged in the production of advanced technology, such as software. And we are very aware of the difficulty of the task of collecting data on an industry which is growing and changing so rapidly, and we encourage expanding the scope of data collection on the software industry, regardless of the classification scheme used.
Our comments contain some new ideas, which we hope will stimulate thinking and further debate about an appropriate classification scheme. We know that there are problems with the scheme we propose, as with all schemes, and we hope that some progress comes out of your efforts to integrate suggestions from all sources. We are interested in the outcome of your work and available to answer any questions you might have.
When we started our software industry study in 1993, we focused initially on a comparison of the Japanese and US software industries. We have continued to study many aspects of the worldwide software industry including intellectual property law, the software services segment, software startups and their financing, corporate software expenditures, off-shore software development in India and elsewhere, software patents, the software products distribution channel, and games and consumer software. We have used the economic census data extensively in our research. In addition, we have examined most other publicly available data on the industry, studied extensively the published literature and interviewed 60 industry executives and insiders in this country and in Japan. We know much of what is known, and what is not known, about this industry.
Both the software products and software services industries continue their robust growth, with certain segments growing in excess of 20% per year. The entire software industry continues its 20+ year growth rate of 12% annually. The commerce department has reported that software is the fastest growing service industry. Software is a significant net exporter, an employer of large numbers of skilled workers and, in some ways, offers a model to young people of both industrial creativity and entrepreneurial possibility.
But there is a much larger, and much harder to see, impact of software on industry and the economy. In all firms, in almost all industries, software is used so extensively in every area of operations, from accounting to manufacturing to inventory and distribution to customer service, that modern companies cannot run without it. Since companies still write and maintain much of this "operations" software themselves, most of their software-related costs do not appear in transactions that would appear in the economic census. (Estimates are that over its lifetime, a computer system's cost to a company is 80% software.)
In addition, software is an "invisible component" of an ever-broadening array of products like automobiles, airplanes, machine tools, cellular telephones, and consumer appliances and electronics. Again, most of this software is not purchased, it is developed "in-house." It is not part of the manufacturing process of the device (although it may be as much as 70% of the product development costs), nor is it sold as a separate item. It is economically invisible, but it is already competitively central in many industries. Both types of "in-house" software, operational and embedded, are $100 billion dollar efforts in the US, and may be twice that large.
We believe that in the future, the trends are for ever increasing numbers in all of these areas of software production: products, services, operational and embedded. While tracking the cost of "in-house" operational and embedded software may be beyond the scope of an industry classification scheme (new labor categories would also help), a new industry classification system should at least capture the dynamics of the software products and services segments, both in terms of inputs and outputs. The production inputs of software firms are largely comprised of technically skilled labor, and their outputs are a broad, dissimilar range of products and services.
SIC 737: Computer Programming, Data Processing and Other Services
7371 Custom computer programming and software design
7372 Prepackaged computer software design, development & production
7373 Computer integrated systems
7374 Computer processing and data preparation and processing services
7375 Information retrieval services
7376 Computer facilities management services
7377 Computer rental and leasing
7378 Computer maintenance and repair
7379 Computer-related services, not elsewhere classified
This scheme, not surprisingly, reflects a computer industry that services corporate and government data processing departments with applications for accounting, record keeping and manufacturing automation. Software is relegated as a service, one of many, provided to purchasers of computer hardware.
The computer industry has changed dramatically in the last ten years, and the rate of change is, we believe, increasing. The model of the industry represented in the current SIC codes, although accurate at one time, does not reflect the impact of open systems, client/server architecture, networks, personal computers or ubiquitous, communicating, embedded microprocessors. Software drives the computer industry. As the base of installed computers grows, software applications sell independently of computer hardware and, as often as not, these applications initiate the purchase of new computer hardware. The variety of current-day markets for software products and services are not represented in the current scheme and the growing importance of software for firms in all industries and for the economy as a whole is not reflected.
We have decided to not address the question of whether software should be classified as a product or a service industry. It is clearly both, and many major software firms operate both kinds of businesses. The true importance of software to industry will be best served if the various activity categories we discuss below are aggregated into one industry classification.
Section 2 of this paper will comment on the revision of the current 737 software service industries under the production-oriented conceptual framework proposed in the ECPC's July 1994 memo, using a scheme based on differentiating the types of skilled labor involved in different software-related businesses. We feel that the diversity of the software industry outputs would best be recognized by employing a classification scheme that is at least partially market-oriented. Section 3 will describe a preferred alternative classification of the software industry based upon a market-oriented approach. Section 4 discusses in more detail the potential analytical uses of market-oriented data about the software industry. Finally, Section 5 concludes with general remarks about software as a service industry.
Our proposed changes restructure the software-related 737 industries (namely 7371, 7372, and 7373) based upon differentiating production inputs as set forth in the proposed production-oriented conceptual framework of the new NAICS. In this manner, the various production inputs of software development and related businesses include the following software-related technical skills:
* Requirements specification and system design
* User interface specification and design
* Programming: writing code that meets a specification
* Writing documentation (of functionality, structure and use)
* Testing/QA (understanding requirements, diagnostic skills, etc.)
* Maintenance (understanding existing code and users' problems, etc.)
Other software production inputs might include:
* Software tools, languages and environments
* Hardware tools and platforms used in the development process
* Development methodologies used to aid design & implementation and, as in any business, some business-related inputs distinguish the capabilities of different types of firms:
* Software project management
* Identification of market opportunities
* Promotion and sales of products into those markets
* Methods of product distribution
Based upon our knowledge of these attributes and how they differ among different types of software businesses, we propose four basic categories of software establishments:
1. Software products publishers and related firms
2. Systems specification and design services
3. Programming and support services
4. In-house software services (software which is not sold)
We use as our main differentiators, then 1) software products vs. services, 2) systems specification/design vs. programming per se, and 3) software developed for sale vs. that developed "in house" to improve a company's operations or to embedded in its products.
Each of these categories requires a unique set of labor skills, development tools and methodologies, and operating platforms. It would be difficult to separate the products and activities of a given entity in one of the above categories into the other categories, and hence is applicable toward a production-oriented classification system. Furthermore, it is very rare for entities to exist in one of these categories and then switch to another category because it would require a completely different development methodology and structure.
A few establishments will, of course, find themselves operating in several of these categories, but in most cases will identify themselves (and get the bulk of their revenue from) only one category.
A more detailed categorization of each of the four types of software production units follows:
Examples of companies who derive significant income in this category include: IBM, Fujitsu, Microsoft, Nintendo, Sega, Computer Associates, Novell, Digital Equipment, Oracle, and Lotus. Related firms include service firms to this segment and firms who constitute the various sales channels. Our proposed categorization for the software products and related industries:
1.1 Software publishers
1.2 Software duplication and product packaging services
1.3 Software products distribution
1.4 Software retail
1.5 Metered software (sold on a per-use basis)
1.6 Software product technical support
1.7 Software product training
1.8 Software product documentation writing
2.1. Business Systems Specification and Design, where the system's requirements are based on the activities of personnel in a business or government enterprise.
2.2. Engineering Systems Specification and Design, where the system's design is primarily determined by the structure and required behavior of a device or another system.
The primary distinction here is between systems that are required to meet the needs of people doing a job and those that are designed to interface with a device or another system. We feel that the requirements specification process as well as the tools and techniques are so different that almost all firms will easily identify the category they fit into, and that the distinction will help us to track separately two major areas of software use.
Note: The old category of systems integration is subsumed here. Once the specification of the system is completed with the client, any hardware or off-the-shelf software products necessary to implement the system may be included in the systems vendor's price, purchased by the client, or purchased by the vendor on behalf of the client.
3.1 Contract programming
3.2 Software testing
3.3 Software maintenance
4.1 Finance and administration automation
4.2 Engineering and manufacturing automation
4.3 Marketing, distribution, sales and service automation
4.4 Other business process automation
4.5 Software to be embedded in or bundled with products or services
4.6 Software research and development
Category 4.5 includes software that is not sold separately but is integral to or included in the price of other products or services. We believe this may be the biggest class of software development activity. It includes the code that is embedded in consumer electronics and household appliances, the control systems in airplanes and automobiles, the "drivers" that are bundled with many computer components, and the free "browsers" that are supplied by on-line information services.
In considering a market-oriented grouping of software products, it is important to understand that software in the real world is classified based upon its application, as a means towards a specific end. There are many possible market-oriented classification schemes based on, for example:
* the hardware platform the software runs on,
* whether it is an operating system, programming tool, or application,
* the industry it is used in,
* the nature of the users, e.g., business vs. consumer, or
* the purpose they might use it for (business, tool, game, utility, etc.)
Given the ECPC's focus on a production-oriented approach, we have just sketched our ideas about a market-oriented categorization of the software industry here. We think the following scheme, which cuts across these lines, would be natural categories in which firms could classify themselves, and would produce useful data about the industry. The five top-level categories are:
1. Software products publishers,
2. Customized software development services,
3. Systems specification services,
4. In-house operations software, and
5. Embedded software
A more detailed discussion follows:
1.1 System and Network Software and Utilities. These software products establish or support a hardware platform. Users purchase these products to manage the basic operation of their computers, not to do a specific task. End-user applications are written to the requirements of this class of software. Distribution may be different from other types of software, in that it may be sold bundled with hardware. This category includes operating systems, network software, device drivers, virus detectors, and utilities like data compression, backup programs, and screen savers.
1.2 Programming tools for software developers. These products include programming languages, debuggers, general purpose database tools, system management tools and middleware.
1.3 Enterprise-wide or departmental, multi-user business applications. These run on mainframe or mini-computers or network servers.
1.3.1 Finance & administration
1.3.2 Engineering and manufacturing
1.3.3 Distribution & retail
1.3.4 Office automation
1.3.5 Systems and network administration
1.3.6 Other enterprise automation, decision support, etc.
1.4 Personal computer business software. This includes programs such as spreadsheets, word processing, graphics, groupware, and project management software that are designed to improve workplace productivity and run on individuals' personal computers.
1.5. Consumer and educational software
This category consists of software designed for recreational, school and home use, including personal finance and tax preparation software, interactive encyclopedias and dictionaries, self-help courses in such subjects as reading, mathematics, and typing, and entertainment software.
1.5.1 Personal finance and management
1.5.2 Educational and reference
1.6 Affiliated industries
1.6.1 Product documentation services
1.6.2 Product duplication and packaging services
1.6.3 Software product distribution firms
1.6.4 Product technical support services
1.6.5 Product training services
1.6.6 Software retail
The software in this category is developed to the specifications of the customer, i.e., custom programming. The category also includes specific services regarding software design, testing, maintenance & documentation.
These vendors, as discussed in Section 2, work with their clients to develop specifications for the systems, and may or may not continue with some aspects of systems design, development, testing, fielding, documentation, training and maintenance.
3.1. Business consulting, systems specification services
3.2. Engineering systems specification services
3.3. Technical support and user training
3.4. Software use & "etherware" (metered software, on-line services)
Note: This category, again, includes consulting and systems integration.
Software developed by a company to improve its operations or productivity. The subcategories might be the same as 1.3, above.
4.1 Finance & administration
4.2 Engineering and manufacturing
4.3 Distribution & retail
4.4 Office automation
4.5 Customer-oriented services (frequent flyer plans, billing plans, etc.)
Software in this category is not for sale as a stand-alone product; rather, the software is developed for use with a specific device or system, and is sold as part of, or "bundled" with, that device or system. This includes software developed to be embedded in:
5.1 Transportation industry (autos, trains, ...)
5.2 Computer industry, including semiconductors
5.3 Consumer electronics & appliances
5.4 Telecommunications products
5.5 Other industries
As the industry has matured and grown, we can now identify easily the larger market groupings, and see that these groupings have stabilized. We can recognize for example, that corporate applications are distinctly different, along several dimensions, from operating systems, languages and database tools, which in turn are easy to differentiate from the various PC product categories. All of this software will continue to have separate, identifiable markets well into the future. From a production-side viewpoint, on the other hand, considerable disagreement still exists on how to classify these types of software, since, as we mentioned in Section 2, all software is actually still created by individual programmers -- software production is still in the "craft" stage.
The software industry is particularly amenable to a market-oriented classification system: software establishments produce a limited and related mix of products and services that would allow a stable classification of each unit and would tend to promote agreement among government agencies and analysts in their classifications. Moreover, software products can be classified into groupings with compelling dissimilarities in use. A child's game software has little in common with the software packages used by a corporation to monitor and control its finances or its factories. A demand-side classification system would allow, for example, a very useful and important distinction to be made between households buying software for direct consumption, and firms buying software to be used as "inputs" into their own production processes.
For some types of software, such as embedded software and certain bundled business applications, the current size of the commercial products market is quite small, as most of this specialized software is still produced by companies "in-house," or is commissioned as customized software development from outside service firms. We are beginning to see, however, the emergence of new firms that are producing products for sale as alternatives to some of this internally-developed or custom-built software. This new class of software products will need to be taken into account. Including embedded and bundled software in the market-oriented classification scheme that we put forth presupposes a growth in their future importance as separate markets.
The ECPC has decided that the "overriding objective for a classification is to develop a system that meets user needs," even while it expresses reservations about the idea of using both production-side and demand-side classifications within one system. While we cannot comment directly on the desirability of mixing economic concepts within an industrial classification system, we do believe that a demand-side concept would better meet the needs of those who require data about the software industry. While the Committee points to market-share studies as one obvious use of market-oriented information, we want to emphasize that the need for reliable demand-side data goes well beyond that use. These data are needed to inform decision-making on a wide range of important public policy decisions in such areas as international trade, intellectual property, education and research funding. We offer details of some of the issues that we believe could be better addressed under our proposed demand-side classification scheme.
Market studies: The relative newness of the software industry makes adequate market data difficult to obtain, either through the government or from private sources. In order to assess the true impact of the software industry on current economic activity and its future importance for this country, adequate market data is urgently needed. We need to have an accurate measurement of the size of the software industry, especially of the important subsegments of the software products category. We also need to track the software demands of business users versus consumers, as well as the changing patterns of software usage within each user category.
One example is the need to track data on the installed base of a "platform" and the impact of shifts in platform adoption on the software industry. For example, understanding the magnitude of the trend away from corporate mainframe computing applications towards distributed client/server systems will offer significant insight into the competitive position of US software companies supplying those markets. While platforms in the past have been defined by hardware, in the future they will be defined by software (e.g., Windows vs. OS/2 and in a few years Microsoft Office vs. every other platform.)
National security and defense: As we recognize from the recent debates regarding data encryption technology and electronic money, certain segments of the software products category may merit special concerns. The better our data on software producers and their users, in the US and abroad, the better also will be our grasp of the economic threat or the national security implications posed by viruses, computer break-ins, information warfare and other activities which are directly related to certain types of software, such as network software and operating systems.
Intellectual property and the patent system: Because software is a hybrid of intellectual property and invention, its protection is covered by a confusing amalgam of copyrights, trade secrets and patents. Applications for patent protection are more prevalent in some key software segments, such as database design, while other types of software producers rarely consider patent protection. The US Patent Office is not yet up to the task of understanding software patents adequately or in discerning prior art. As software patents proliferate and conflicts arise, we need to have more information on whether current intellectual property protections encourage innovation or stifle it. We also need to be able to assess the impact of overly broad or inappropriate patents on the development of certain software segments, and on the software industry as a whole. (See also the discussion of piracy, below.)
International trade and immigration: US companies currently account for approximately three-quarters of the worldwide sales of software products. In order to maintain its competitive advantage, the industry needs to understand which of its segments are more vulnerable to competition from abroad. In our research in the Stanford Computer Industry Project, for example, we have been tracking the growth of "offshore software services" -- high-quality programming services offered by a number of third-world countries at rates well below those charged in the US. This phenomenon, today just a half-billion dollar industry, is growing at three times the 12% rate of the US software industry as a whole.
In time, this offshore activity may pose a real threat to US success in several market segments, including corporate client/server software, database products, and systems integration services. Reliable market data would allow researchers to better track the impact of foreign competition. For the moment, however, the limited domestic market in India and other high-quality third-world suppliers will limit the growth of their software products capability. Note also that the growth of the Indian software services industry in particular, was and still remains dependent on US immigration policy (specifically, for students and for programmers with "special skills").
Piracy and anti-dumping policy: As with the music industry, the software industry is particularly vulnerable to both piracy and dumping from abroad. Not all software producers are equally affected however. For example, software that requires significant or sustained technical support is less likely to be copied and resold widely. Better demand-side data would help us analyze the magnitude of the problem and focus remedial efforts on the segments most seriously affected.
Labor and education policy: Labor inputs are changing in the software industry, along with the types of establishments that are producing software. In modern software organizations, requirements acquisition, system design, user interface design, programming to specification, testing, documentation, maintenance and software project management are now separate job classifications. Other jobs involve extensive software development activity but are not classified as software: for example, an electrical engineer whose job is to develop the software embedded in a measurement instrument is not recognized as a programmer; neither is the chip designer who designs a specialized chip entirely by programming in a "hardware design language." The establishments employing these technical specialists almost certainly have not been identified in any data gathering scheme as software producers. Yet, as the types of firms and job categories that actually produce software broadens and grows, the implications for both tracking and training of labor grows too. Approaches for the collection of labor data on software engineers and programmers may need to be reconsidered to better reflect actual software development activities.
Although the programming of embedded functionality in the past was relatively trivial, modern embedded systems are becoming as complex as any other software. The complexity of this embedded or bundled software increases with more and more product features, inter-processor communication in products that contain multiple chips, and improvements and maintenance over the years. It follows that the software skills required to design, develop and maintain embedded software will approach those in other parts of the software industry. With more information on this trend, universities and technical schools might recognize the need to offer training in programming techniques to students in more courses of study, thus ensuring the continuation of a competitive and appropriately-trained workforce in the software industry.
Antitrust: Since software is fast becoming an input to literally every manufacturing and service industry, the potential impact of a monopoly in a software segment could be significant. Demand-side data would aid in the understanding of how lack of competition in a particular segment could affect the development of both the software segment itself, and of the industries which use the software.
Government research and development funding: Substantial, long-term Department of Defense funding of computer science research was instrumental to the development of the US software industry and to its position of worldwide dominance. In recent years, however, funding patterns have changed. Applied research and development is now favored over basic research. Different federal agencies with different goals are now moving software and hardware research in new directions. Moreover, commercial firms have begun to receive significant federal financial support for "strategic technology initiatives," while some universities and national laboratories, the more traditional recipients of funds, are experiencing difficulty in obtaining sufficient funding. Since the success of the software industry has long been tied to the steady migration of government-funded researchers and their graduate students to commercial ventures, a change in government approaches to funding also may have a significant impact on the continued growth of the software industry. Once again, in this context, we expect the impact of on the industry to be uneven, and market-side data will be required to make any meaningful assessment of that impact.
We hope that our ideas on restructuring the categorization of the software industry is useful in your thinking about the new industrial codes. We have debated the classification schemes we've proposed at great length, and we realize that similar difficult issues arise in all other industries. We understand the difficulty of the ECPC's task and we look forward to further interaction as you make progress toward a new system.