Nardi, Bonnie A. A small matter of programming: Perspectives on end user computing. MIT, 1993.

The main point of this delightful new book is to convince the reader that computer programmers should open up the world of programming to end users to allow them to do complete application development themselves. The reason is that if we give end users more direct control over computational resources, such resources will become more valuable and begin to justify their cost. For example. the processes of transferring doman knowledge to a programmer and going through the necessary iterations to set the desired application are inefficient. Furthermore, automation has not produced expected productivity gains in spite of decades of effort.

Nardi suggests creating task-specific programming languages. Since human-computer communication is not like human conversation, the human communication model is not appropriate for human-computer interaction, even though that model has permeated recent work in the field. Humans tend to tailor their conversation to a setting and function, requiring. interpretation. Computer applications need to eliminate- this need for interpretation in order to provide for effective human-machine communication. In her search for another communication model, Nardi suggests that e borrow- row from other means of communicating that people have invented.

Clearly, task specific programming languages need to be unambiguous and to have a straightforward syntax, and Nardi argues that end user need not be shielded from such formal languages. In fact, human use of formal systems may have started hundred of thousands of years ago with kinship systems. The use of formal languages by ordinary people today can be most easily observed in games. What is most important is that when formal systems are used, they are usually related to a particular interest. Therefore, the design of end-user programming languages should take into account a users' interests, knowledge, and motivation, that is, they should be task-specific. This means that they should allow users to directly express the semantics of a task domain in some fashion. In sum, the problem with programming is not programming, it is the languages themselves.

The clearest example Nardi presents of an effectivc end-user language is spreadsheets, where the correct primitives are ready to hand and users do no need to know everything to do anything. In addition, users can add new concepts slowly over a long period of productive experience with the system. Reasons for the popularity of spreadsheets among users include the way that dependency relationships are managed by the language and that effects are local and easy to trace.

Nardi claims that the design of other, equally useful end-users stems will require thorough undertaking of users' tasks. Programmers will need to study the application domain carefully to ascertain how tasks are broken down and performed. This need is not unknown to the human- computer interaction community. Nardi correctly points out that the community is very interested in the development of appropriate theoretical frameworks for the broad, context. based study of tasks.

On the other hand, as Nardi states, the design of a language- for end users must be approached semantically, which means moving away from the typical graphic approaches of the human-computer interaction community. She claims that visual solutions do not deliver miracles by doing away with syntax. Visual solutions have their place, in that they are good at representing relationships by exploiting perceptual abilities, whereas text is best for actual information extraction- and it is compact and efficient. Therefore, she suggests hybrid visual systems as more appropriate for end-user programming environments.

Nardi also addresses the community within which end- user programming typically occurs. End users often depend on a local developer, sometimes called a translator, tinkerer, or advocate end user. These people occupy an intermediate- ate position on the technical sophistication ladder and high- light the need for the layering of end-user programming languages, from a high-level task-specific language to a more complex programming capability. in order to address both types of involvement. In addition, Nardi counsels organi- zations to give local developers recognition, time, and re- sources to pursue local development activities as important adjuncts to basic end-user activity.

The ideas of Nardi's book have evolved from two empirical- studies of end-user computing with spread- sheet and CAD system end users. Her experience as an anthropologist in New Guinea clearly comes through in this well-written, but tersely argued, book. In spite of the empirical bases of her arguments, I have to take issue with her approach of merging application development with interface design, which is most evident in her book's final chapter. In my own experience as an anthropologist I have found that cultural systems are often opaque to participants, often making them poor informants regarding domain semantics. I suspect that other methodologies that are not directly related to interface design, such as object-oriented methodologies, are needed to allow effective capture of semantics, especially- when trying to capture the semantics of a domain that is within a larger functioning organization.

In any case, I highly recommend this book so anyone in- interested in end-user computing or human-computer interface design. It may, in fact, have great influence in a graduate course in interface design as well as serving as a valuable- able reference for computer scientists considering application design.

-Gary W. Strong
Philadelphia. PA



back to ... Bonnie Nardi, A Small Matter...