1.5 From Software to People

HCI began in the personal computing or PC era. Adding people to the computing equation meant that getting the technology to work was only half the problem — the other half was getting people to use it. Web users who did not like a site just clicked on, and only web sites that got hits succeeded. Given equal functionality, users prefer a more usable product (Davis, 1989); e.g. Word replaced Word Perfect because users took a week to learn Word Perfect but picked up Word in a day. Just as computing had previously gained a software level, so it now gained a human level.

Human computer interaction (HCI) is a person using IT, just as IT is software using hardware. As computer science emerged from a combination of mathematics and engineering, so HCI is emerging from psychology and computer science. If psychology is the study of people and IT the study of software and hardware, then HCI is the study of psychology as it applies to IT. HCI is the child of IT and psychology. It links computer science to psychology as computer science linked engineering to mathematics. This new meta-discipline applies psychological principles to computing design; e.g. Miller’s paper on cognitive span suggests limiting computer menu choices to seven (Miller, 1956). The nature of people now defines the nature of computing; e.g. our many senses led to the multi-media trend.

Next

 

1.4 From Hardware to Software

Hardware is any physical computer part, e.g. mouse, screen or case. It does not “cause” software, and nor is software a hardware output, in the way that physical systems have physical outputs. We create software by seeing the information choices in physical events. Software only exists when we see reality in information terms. Software needs hardware, but the same code can run on a PC, Mac or mobile phone, i.e. the same software can run on different hardware. An entity relationship diagram that describes software can work for any physical storage, whether disk, CD or USB, as data entities are not disk sectors. Software assumes some hardware but does not specify which hardware.

If any part of a device acquires software, the whole system gets an information level; e.g. a computer is information technology even though its case is just hardware. We describe a system by its highest level, so if the operating system “hangs”, or gets in an infinite loop, we say “the computer” crashed, even though the hardware is working fine. Rebooting fixes the software problem with no hardware change, so a software system can fail while the hardware still works perfectly.

Conversely, a computer can fail as hardware but not software, if a chip overheats. Replace the hardware part and the computer works with no software change needed. Software can fail without hardware failing, and hardware can fail without software failing. A hardware update need not change the software, and a software update need not change the hardware. Equally, each level has its own knowledge base, so if software fails we call a programmer, but if hardware fails we call an engineer.

Next

 

1.3 Levels as World Views

Figure 1.4: Levels as higher abstractions

A level is now formally defined as a world view, a way of seeing reality that is complete and consistent in itself. So a computer on the mechanical level is all hardware but on an informational level it is all software. We cannot observe a program on a motherboard nor a hardware device in a data structure. Your mobile phone does not have separate hardware and software parts, but is hardware or software in toto, depending on how you view it

Hardware and software are therefore ways to view a computer system, not ways to divide it up. Hardware becomes software when we see computing in a different way. The switch is like someone swapping glasses to see the same thing close-up. Hardware and software are the different types of glasses we can use to view computing.

Following this theory, all the disciplines of science are world views, like walking around an object to see it from different perspectives. We can then choose which view is most appropriate. For example, to describe World War II as a scientific history of atomic events would be ridiculously ineffective, as a political summary is the more appropriate view.

As views, levels emerge from each other, as lower abstractions give higher ones (Figure 1.4). Information emerges from hardware options, meaning emerges from information flows, and communities emerge from common citizen meanings. Conversely, without physical choices there is no information, without information there is no meaning, and without meaning there is no community. A community is here defined as a set of people who see themselves as a social unit.

A world view is:

  • Essential. To view a world one needs a view perspective.
  • Empirical. It arises from interaction with the world.
  • Complete. It consistently describes a whole world.
  • Subjective. We choose a view perspective, explicitly or not.
  • Exclusive. You cannot view the world in two different ways at the same time, as you cannot sit in two places at onceOne can, of course, view from one perspective and then another.
  • Emergent. One world view can emerge from another.

Note that a level as a view must be chosen before viewing, i.e. first pick a level, and then view.

Levels affect design because how we see the world affects how we act in it; e.g. if we saw ultra-violet light, as bees do, previously dull flowers would become bright and so every flower shop would want to change its stock. Levels as higher ways to view a system are also new ways to operate and design the system. Hence new software protocols like Ethernet can improve network performance as much as new cables.

Levels have also changed how business works in computing. When the software era arrived, hardware continued to evolve but hardware leaders like IBM no longer dominated computing unilaterally, as they had before. The software level changed business fortunes by changing what computing is. Selling software makes as much money as selling hardware, as the software changes more rapidly and needs to be replaced or updated more often. Web queries are even more volatile, so Google gave its service away for free and then sold advertising around it — it sold its services to those who sold theirs.

As computing levels changed, so did the business model, as selling knowledge is not like selling software. Facebook is still working out its business model, because you cannot “sell” friendships as you do hardware and software. Yet Facebook now challenges Google because we relate to family and friends even more than we query knowledge — social exchange has as much trade potential as knowledge exchange.

New ways to view computing thus affect how we design and build computing systems. Each level emerges to add to rather than replace earlier levels. As design requirements cumulate, socio-technical design includes hardware, software and human requirements, as well as community needs (Figure 1.5). Computing that appears to us as just hardware now has a social level; e.g. smart-phones are a communication medium as well as a hardware device. Computer design is inclusively evolving from engineering design to socio-technical design, to keep pace with computer evolution.

Figure 1.5: Computing levels cumulate

It is worth reflecting on how the role of technology has changed in a few centuries. During the industrial revolution, technology was isolated from the needs of society; e.g. a village beside a factory belching smoke found its need for clean air threatened. The idea of socio-technology first arose because technology was implemented with ethics as an after-thought.

However, in the information revolution the social and technical merge into one. If social needs are not met online, there will be no online community, which means the technology fails. In socio-technical design, social needs as the higher level always come first. In the evolution of design, higher level requirements have a natural priority, as is now discussed.

Next

 

1.2 Computing Levels

Figure 1.3. Computer system levels

The evolution of computing is approached here using Bertalanffy’s general systems theory (Bertalanffy, 1968). This theory is based on the observation of discipline isomorphisms, when different specialist fields discover the same equation or law in different contexts, e.g. a social agreement measure that matches a biological diversity measure (Whitworth, 2006). Bertalanffy proposed a “science of sciences”, namely the study of systems in general, since sociologists study social systems, psychologists study cognitive systems, computer scientists study information systems, and engineers study hardware systems. The isomorphisms of science are then general system rules that apply across disciplines.

Applying general systems theory to the evolution of computing gives the computing levels shown in Figure 1.3, where a computing system can be studied as a mechanical system, a software system, a human system or a social system, by engineers, computer scientists, psychologists and sociologists respectively. Computing began at the mechanical level, added an information level (software), then a human level and finally a community level; it is an example of general system evolution. 

Level

Exchange

Examples

Design

Community
(sociology

Memes

Norms, culture, laws, zeitgeist, sanctions, roles

STS

Personal
(psychology)

Meaning

Semantics, attitudes, beliefs, feelings, ideas

HCI

Information
(computer science)

Information

Programs, data, bandwidth, memory

IT

Mechanical
(engineering)

Energy

Hardware, motherboard, telephone, FAX

Technology

Table 1.1. The levels of computing

Table 1.1 shows how different levels change not only the system type but also what is exchanged. So a physical system exchanges energy, a software system exchanges information, a human system exchanges meaning, and a community system exchanges memes, where a meme is a common idea held within a culture. Each level of a system evolution is built on the previous, so that social computing emerges from personal computing, personal computing emerges from software, and software emerges from hardware. As computing evolves to higher system levels, so its design also changes, from technical to socio-technical design.

Levels can clarify the often confusing terms of computing. In Figure 1.3, a technology is any tool that people build to use, e.g. a spear is a technology. Technology is designed and built by engineers. In contrast information technology (IT) is the application of hardware and software, with a user implied. Computer science (CS) is then just about the software level, regardless of the hardware implementation. So information technology is not a sub-set of technology, nor is computer science a sub-set of engineering (because software is not part of hardware).

Human computer interaction (HCI) is a person in front of a computer, a human plus IT system, with physical, informational and psychological levels. Just as IT is more than hardware, so HCI is more than IT because it includes a human level. HCI systems exchange meaning, while IT systems exchange information. The semantic web vision of Tim Berners-Lee, the founder of the World Wide Web — his “dream for the web” — was a recognition of the human level of computing.

Today, computing supports online communities that have hardware, software, personal and community levels. If the first two levels are technical and the last two socialthe result is a socio-technical system (STS). If information technology design is computing built to hardware and software requirements, then socio-technical design is computing built to personal and community requirements as well. In socio-technical design, the new “user” of computing is the community (Whitworth, 2009a).

Unfortunately, different disciplines use different terms for the same levels, e.g. the study of software can be called computer science or software engineering. The human level of computing is even more confusing: engineers use the term IT to refer to user applications; business prefers the term information systems (IS); education uses information communication technology (ICT); and health professionals invented the term informatics to meet their needs. Each defines itself apart, but in this pan-discipline view, all are just the human level of computing. This book uses the term HCI for consistency.

If all the Figure 1.3 levels are computing we must design computer products as both social and technical systems. Limiting computing to hardware (engineering) or software (computer science) denies its obvious evolution.

Levels in computing are not system parts. To draw an analogy, a pilot flying an aircraft is one system with different levels, not a mechanical part (the aircraft) with a human part (the pilot). The physical level includes not just the aircraft body but also the pilot’s body, as both have mass, volume, inertia etc. Likewise, the information level is not just the onboard computer, but also the neuronal processing of the pilot’s brain.

The human level is the pilot, who from the sensations and perceptions of his or her brain generates meaning. To the pilot, the aircraft is an extension of his or her body, like extra hands or feet, and computer data is like extra eyes or ears. On a human level, the pilot is the actor, with the aircraft just a mechanical tool of the pilot’s will, so in an aerial conflict, the tactics of a piloted aircraft are different from a computer drone.

To repeat, the mechanical level is not just the physical aircraft but also the pilot’s body, and the information level is all the processing, of both the brain and of onboard computers. Finally, an aircraft in a squadron may do things it would not do alone, e.g. expose itself as a decoy so that others can attack the enemy.

Next

1.1 A Short History of Computing

Figure 1.1. Babbage’s Difference Engine was the first computer

The first computer was conceived as a machine of cogs and gears (Figure 1.1) but only became practical in the 1950s and 60s with the invention of semi-conductors. In the 1970s, a hardware company called IBM emerged as the computing leader. In the 1980s, however, software became increasingly important, and by the 1990s a software company called Microsoft had become the computing frontline leader by giving ordinary people tools like word-processing. During the 1990s computing became more personal, until the World-Wide-Web turned Internet URLs into web site names that people could read. IP addresses like 208.80.154.225 became Uniform Resource Locator (URL) names like  http://en.wikipedia.org/ A company called Google then offered the ultimate personal service, free access to the vast public library we call the Internet, and soon everyone’s gateway to the web was the new computing leader. In the 2000s computing evolved yet again, to become a social medium as well as a personal tool. So now Facebook challenges Google, as Google challenged Microsoft, and as Microsoft challenged IBM. This book explores the nature of social computing and the challenges it faces in the current decade. 

Charles Babbage (1791-1871) designed the first automatic computing engine. He invented computers but failed to build them. The first complete Babbage Engine was completed in London in 2002, 153 years after it was designed. Difference Engine No. 2, built faithfully to the original drawings, consists of 8,000 parts, weighs five tons, and measures 11 feet.

Figure 1.2: The computing evolution

Yet to design a computer system one must define it, so what is computing? This deceptively simple question requires many answers because computing has re-invented itself every decade or so (Figure 1.2). What began as hardware became about software, then about users and is now about online communities. This chapter analyzes the evolution of computing as it impacts computing design.

Next

1. The Evolution of Computing

This chapter reviews how computing has evolved since it began, and what this means for the people who are designing, building and using it.         Next

1.1 A Short History of Computing
1.2 Computing Levels
1.3 Levels as World Views
1.4 From Hardware to Software
1.5 From Software to People
1.6 From People to Communities
1.7 The Reductionist Dream
1.8 The Requirements Hierarchy
1.9 Design Level Combinations
1.10 The Flower of Computing
Chapter 1. Discussion Questions
Chapter 1. References