The past five decades of computing have been characterized by a continuing expansion in the scope of functionality of software applications. This is a direct result of the expanding range of technologies, the continuing performance advances observed by Moore's law, the ongoing progress in finding new and innovative ways to use the technology, and growing end-user comfort and experience with software products.
Historically, the three areas of IT—processing, storage, and communication—arose in that order. This statement is an oversimplification, in that useful computer systems have always needed all three elements, at least in small measure.
Example Even the earliest computer systems used paper tape or punched cards to store programs between executions, and communication channels to interact with peripherals like printers.
Nevertheless the introduction of mass storage systems based on magnetic media (tape and disk) and a global computer network (particularly the Internet) that allowed all computers to communicate with one another were critical demarcations in the development of software applications.
Each of these major areas of IT is associated with a period of innovative new applications relying heavily on the new technology. Associated with each technology is an identifiable application tradition, that is, a group of innovative new applications that draws heavily on the new technology or in many cases on both the new and the older technologies. In figure 3.1 major application groupings are classified in this manner, by order of appearance and by the technology or technologies they primarily leverage. On a cautionary note, no such classification could ever be perfectly accurate, complete, or defensible; rather, the goal is merely to capture and classify major trends.
Figure 3.1: Classification of software applications in order of appearance and the primary technologies they leverage.
The algorithmic tradition relies heavily on processing and is the basis for applications like signal processing (e.g., audio and video compression), financial engineering (e.g., pricing derivative instruments), modeling in scientific and engineering fields (e.g., weather forecasting), and design (e.g., computer-aided design of integrated circuits).
Following the invention of magnetic storage and the addition of vast information reservoirs, applications in the document tradition emphasized the storage and retrieval of documents. A document is information-as-thing, an artifact the primary purpose of which is to capture a body of information. A broad definition of the document (especially appropriate with the computer) includes pictures, video, and audio in addition to the printed document. The document tradition includes applications that support commerce (e.g., purchase and fulfillment), scholarship (e.g., the scholarly literature), and entertainment (e.g., movies on demand). While paper documents remain important, computer-mediated documents offer multimedia (audio and video as well as text and images) and automated searching and navigation aids.
It was natural as a next step to make use of heavy doses of processing together with mass storage, which enabled the database tradition. Like a static document in the print world, the database enables information to be stored and retrieved. However, it also relies on ample processing to allow information to be dynamic and volatile, and to allow documents relying on that database also to reflect these volatile changes. Although originally considered an application, today a database would rarely be used directly. Rather databases typically form an infrastructure foundation for various information management applications.
Example The database management system (DBMS) is an infrastructure software category (major vendors include IBM, Informix, Microsoft, Oracle, and Sybase) that underlies many business applications. It is used to maintain up-to-date customer identity and contact information, and to track purchase and order status. In online transaction processing (OTP), workers update a database based on volatile new information, such as that obtained over the telephone. Documents like management reports access a snapshot of current database information.
The introduction of even more massive doses of processing enables data mining, the extraction of often unexpected trends from databases.
Although the electronic communications industry dates to the nineteenth century (starting with radio and telephony), communications wasn't brought to mainstream computing until the 1980s (local-area networking) and 1990s (the Internet for wide-area networking). With the Internet, the document tradition expanded to encompass the publication tradition. Massive collections of information, whether stored in central repositories or distributed across many smaller repositories, could be made practically instantaneously available to users anywhere in the world. This quickly resulted in a new challenge: too much information and the need to narrow it down for particular uses. Building on processing combined with storage and communication, modes of finding useful information based on searching and navigation evolved.
Example Search engines such as Alta Vista and Google focus on identifying documents that contain specified keywords. Navigation through masses of information on the Web can be accomplished by utilizing hyperlinks (a mechanism that allows one document to contain links to other relevant documents) and indexes (such as Netscape, MSN, and Yahoo).
The addition of communications to the IT mix enabled a new collaboration tradition, including applications that support groups of people working together (e.g., e-mail and video conferencing), playing together (e.g., multiparty games), or socializing (e.g., chat rooms). This tradition also supports coordination, which is an element of many human and technical activities, such as design collaboration and business or military logistics. This tradition began with e-mail, now encompasses a growing set of capabilities, and is the least mature of the traditions considered thus far.
Example The use of computer-mediated collaboration tools is growing rapidly and becoming an important supplement to the face-to-face meeting or the simple telephone call. The computer-mediated meeting can supplement audio with other media such as video conferencing, drawings in scribbling, and so on. Perhaps in the future a remote conference will be considered as good as, or even better than, a face-to-face meeting.
Before considering the sociotechnical tradition, it is appropriate first to reflect on the types of end-users and the ways in which applications are integrating all the capabilities represented in the traditions mentioned thus far.
Another way of classifying applications is by the type of user group they support (Messerschmitt 1999a; 1999c). Individual applications enhance the effectiveness or productivity of individuals and are the focus of the algorithmic, document, and publication traditions. Group applications serve a group of individuals and are emphasized by the database and collaboration traditions. Then there are applications that serve organizations (groups carrying out a long-term collective purpose.) A community application allows a large group of people sharing a common agenda or interest to interact or coordinate, even though they may not know one another or the membership is dynamically changing. Enterprise applications support an organizational mission (business, educational, or government) and the basic processes that occur within an organization. These come in two basic categories: business process applications that automate repetitive tasks, and managerial applications that support ad hoc decision making. E-commerce applications allow two or more organizations to carry out collective functions, especially where the sale of goods or services is involved. An e-commerce application is to the enterprise application what the group application is to the individual application.
As a new area of IT was added, new applications typically incorporated capabilities of both the new and the previous technologies (as illustrated by the database and publication traditions in figure 3.1). Thus, many applications today strongly combine processing, mass storage, and communication in various ways, and this will be increasingly true of applications in the future.
Example An automotive design project in a global firm may be conducted across several continents. It mixes modeling and simulation (the algorithmic tradition), coordination of concurrent design activities across time zones (the collaboration tradition), group meetings (the collaboration tradition), and a stored and updated design database capturing the current status of the design (the document tradition). While these activities could be supported by logically separate applications—where only the people and not software formed the linkages—there is great benefit to integrating these elements. For example, the design database can capture the complete history of the design and how it arose from collaboration, decisions made during collaboration can be automatically documented, and the implications of those decisions can be characterized by modeling and simulation as an integral part of the collaboration. Many engineering design activities fit a similar model.
What is the value of mixing the algorithmic, document, database, publication, and collaborative traditions? As examples, searching and data mining added to information access (document tradition) can assist users in locating useful information or even uncovering unexpected patterns is large data sets. The addition of communication allows users to publish information to a broad audience, and for users to aggregate, filter, and consolidate information from many sources. A recommender system observes the actions of many users (collaborative tradition) and extracts from them information about the preferences of those users (algorithmic tradition). The possibilities are limitless.
The automotive design example illustrates a sociotechnical application (NRC 2001b). This tradition combines groups of people working on collective tasks (that is, an organization), IT (processing, storage, and communication), voluminous information and knowledge (the latter mostly the province of the people), and many physical elements (materials, goods, and shipping). All the application traditions are integrated in such applications, often in intricate ways. In a very real sense, this is the culmination of application traditions, at least as appreciated today.
In sociotechnical applications, IT is only a part of a sociotechnical system comprising people and their organizations, possibly large amounts of information, various organizational processes, and IT. The IT component cannot be meaningfully defined or studied in isolation from other elements; it is embedded as an integral part of the system, much as embedded software is integral to equipment (see section 2.2.6). The conceptualization of such applications requires the partitioning of functions between technology and people, the organization of the people as well as the technology, and the appropriate interface between technology, people, and organization. The design of sociotechnical applications should be—more than applications of the past—an interdisciplinary activity involving technologists with organizational specialists and social scientists (see chapter 4).
There are several increasingly ambitious approaches to defining sociotechnical applications:
Automation. Take an existing process and automate it. Typically this involves moving steps of the process over from manual labor or paper shuffling to automated mechanisms but without any material change to the underlying processes.
Reengineering. Without changing the fundamental goals or functionality, go back to basics, focus on the overarching goals, and ask how those goals would best be partitioned between people and their organizations and the IT, and what would be the best form of interaction among those elements. Consider and design all elements of the sociotechnical system from scratch without a material change to the overarching goals.
Innovation. Reach out to new goals and functionality that were not feasible without IT.
The economic history of earlier technologies suggests strongly that the full benefit of new technologies does not accrue from automation alone.
Example One eventual benefit of electrification was substantial productivity improvements, but only after manufacturing processes were completely reorganized to take advantage of the electric motor's ability to distribute rather than centralize mechanical power, not in the early stages where centralized turbine or water generation units were simply replaced by electric motors (David 1990).
While understanding the needs of users is a primary issue, and users can play a primary role in defining opportunities for automation, users often don't have sufficient understanding of the opportunities and potential of technology to fully exploit reengineering and innovation opportunities. Technologists may also have insufficient domain knowledge to fully appreciate how best to leverage IT. Again, this suggests close collaboration between end-users or domain experts and technologists (see chapter 4).
Another distinctive characteristic of modern applications, and especially sociotechnical applications, is their specialization and diversity. Whereas the horizontal applications of the past (such as telephony, e-mail video distribution, word processing, video conferencing, instant messaging) had wide generic appeal across a wide spectrum of organizations, sociotechnical applications are specialized, because their capabilities are specific to an organizational mission.
This has profound implications for the processes of conceptualizing and developing new applications (see chapter 4). As applications become more diverse, each with a smaller user base, either development costs must be reduced or users must be willing to pay more for specific value added (see section 3.2). Users with domain-specific knowledge must participate more deeply throughout the application conceptualization and development.
One way to reduce development costs is exploit the reuse of existing software or to build applications from components (see chapter 7). Another approach is to expand the scope of infrastructure software (see chapters 4 and 7). Even specialized applications tend to incorporate many similar capabilities, and these can be captured in the infrastructure.
Example The Web was originally conceptualized as an application, a way for scientists to publish information for colleagues. More recently, the Web has expanded to serve as a foundation for many networked applications, particularly in providing standardized capabilities for presenting and capturing information. As developments incorporate Web technologies, they reduce development effort and eliminate special software on users' computers.
This is a general trend: The new builds on the old rather than replacing it, and some applications form the basis for new applications; in other words, they gradually morph into infrastructure (see chapter 7).
An effective way to identify compelling new applications is to try out many ideas with users, leverage that experience to refine and further develop ideas, or abandon ideas that don't add value (see figure 3.2). This suggests an iterative stepwise refinement approach to software development, the close cooperation of users and developers, and inexpensive ways to try out ideas (for example, rapid prototyping of user interfaces). These needs are strongly influencing software development (see chapter 4).
Figure 3.2: Methodology for iterative refinement of application ideas involving end-users.
Figure 3.2 captures a process for integrating group and individual contributions into application development, but sociotechnical (enterprise and commerce) applications are much more complicated and challenging. The application software is integrally tied into the various processes that organizations use to formalize their repetitive tasks and capabilities, and processes, organizations, and software must be designed as an integral unit.