Skip to Main Content
Have library access? Log in through your library
Programming as if People Mattered

Programming as if People Mattered: Friendly Programs, Software Engineering, and Other Noble Delusions

Nathaniel S. Borenstein
  • Cite this Item
  • Book Info
    Programming as if People Mattered
    Book Description:

    Through a set of lively anecdotes and essays, Nathaniel Borenstein traces the divergence between the fields of software engineering and user-centered software design, and attempts to reconcile the needs of people in both camps.

    Originally published in 1994.

    ThePrinceton Legacy Libraryuses the latest print-on-demand technology to again make available previously out-of-print books from the distinguished backlist of Princeton University Press. These paperback editions preserve the original texts of these important books while presenting them in durable paperback editions. The goal of the Princeton Legacy Library is to vastly increase access to the rich scholarly heritage found in the thousands of books published by Princeton University Press since its founding in 1905.

    eISBN: 978-1-4008-6253-5
    Subjects: Mathematics, Technology

Table of Contents

  1. Part One The Journey to the East:: Can Software Engineers Build User Interfaces?

    • Chapter 1 The Hostile Beast
      (pp. 5-16)

      We have all heard, far too many times, about the depth, breadth, and profound importance of the computer revolution. Computers, we are told, will soon change almost every aspect of human life. These changes are generally perceived as being for the better, although there is occasional disagreement. But, for better or worse, most of us need only to look around to see proof of the computer revolution throughout our daily lives.

      The computer revolution has happened in two stages. The early stage created computers and introduced them to a specialized elite. The second stage, which began in the 1970s with...

  2. Part Two The Dark Night of the Soul:: The State of the Art in User-Interface Design

    • Chapter 2 Who Are All These People?
      (pp. 19-23)

      The computer world is well accustomed to sudden changes, to overnight successes, to “hot” new developments that seem to arise out of nowhere. Yet even in this fast-paced environment, the sudden blossoming of research and development in the field known as HCI (Human-Computer Interaction) has been astonishing. By 1988, the premier conference in the field, the annual CHI¹ conference, was attracting nearly two thousand participants and nearly two hundred submitted papers—astonishing figures for an academic discipline that did not exist at the beginning of the decade.

      Whether or not there is, corresponding to these large numbers of interested people,...

    • Chapter 3 Stopwatches, Videotapes, and Human Nature
      (pp. 25-31)

      How would one expect classically trained scientists to approach the fundamental questions of human-computer interaction? Undoubtedly, a real scientist would establish goals, formulate hypotheses, and test those hypotheses experimentally. The goals, in this case, are already clear, although multifarious—software should be maximally easy to learn; permit the desired operations to be performed in minimal time; and meet with maximal user approval, as measured by some kind of user-satisfaction survey. The field seems simple, and ripe for application of the classic scientific method.

      This is, in fact, the thinking of a substantial portion of the HCI community. Their efforts revolve...

    • Chapter 4 That Reminds Me of the Time . . .
      (pp. 33-37)

      The first program of mine that other people depended on was a library automation system. Among other things, the system ran a nightly batch job that printed out catalog pages in need of update.

      I had recently fixed a bug in which a user-oriented part of the software died a horrible, messy death when it ran out of disk space. By adding a few lines of code to the program that died, I ensured that in the future, if it ran out of disk space, it would pause, print an informative message, wait until space became available, and then continue....

    • Chapter 5 The Quest for the Perfect Line Editor
      (pp. 39-47)

      The computer world is probably about as close as any human activity will ever come to Mao Tse-tung’s dream of “permanent revolution.” Revolutions big and small have become the norm, at least for the first few decades of the computer age.

      In the late 1960s, a few developers pioneered a new type of software called ascreen editor(Stallman 1981), which became widely available by the end of the 1970s. The basic new idea of screen editors was to use most or all of a video screen to show the user a relatively large portion of a file at one...

    • Chapter 6 The Men in Suits
      (pp. 49-61)

      Software is built by people. User-interface software is influenced by a wide range of people. The users, of course, have a major influence on the design of good user-oriented software. The personalities and tastes of the designers and implementers inevitably play a big role in shaping the user interface. Scholarly researchers conducting controlled experiments and propounding theories about the human-computer interface have their influence as well. Still, there is one group of people that has not yet been mentioned in this book, but that has a major impact on the quality and style of the final interfaces—and indeed on...

    • Chapter 7 Information Wants to Be Free
      (pp. 63-66)

      Managing software development is rather different from managing most other enterprises and, as discussed in the previous chapter, it is frequently seriously botched. This has led to a disturbing rift in the culture of computing between the managers and the managed. Within the programming community, one can find innumerable programmers who regard management as either “the enemy” or “the clowns.” As previously stated, this does not happen everywhere; good management is not an unheard-of thing in the computer business, merely a rare commodity. Rare enough, in fact, to drive substantial numbers of programmers to a radically antimanagement position.

      That position...

  3. Part Three The Ten Commandments:: Principles for User-Interface Design

    • Chapter 8 Never Underestimate Your Users
      (pp. 69-73)

      After spending the first few decades of the Information Age writing software that only an expert can use, programmers have awakened to the fact that the real action is with the common man. The Apple Macintosh, the most notable example of this trend to date, has gotten tremendous mileage out of the fact that its complete primary instruction manual can be read and comprehended by nearly anyone in a few hours. Indeed, that is an impressive milestone in the history of personal computing, and today everyone has leaped headlong into the race to make software easy for anyone to understand....

    • Chapter 9 Pretend That Small Is Beautiful, but Don’t Believe It
      (pp. 75-81)

      For a while in the 1970s, it seemed that a popular slogan of the time, “Small is Beautiful,” described some fundamental truth about life itself. Certainly in computer hardware, smaller has always been better, as hardware engineers work ceaselessly to pack more computing power into an increasingly smaller box.

      Many experienced users of computers will strongly defend the notion that small is better in software, as well. Bigger, fancier, and more complicated programs, they will tell you, suffer from diminishing or negative returns as new features are added. “This program is simply too complicated,” is their common complaint. Undoubtedly larger...

    • Chapter 10 Tune Defaults to the Novice
      (pp. 83-89)

      Very few people who write computer programs for a living are at all frightened of computers. Such people tend to be true afficionados, even connoisseurs, of computer software. It is inevitable that they view the human encounter with software differently from those for whom interaction with a computer is at best a useful time-saver, and at worst a fearsome adventure in ignorance and humiliation.

      Sitting down to use a new computer program is, for most nontechnical people, intimidating. Particularly if the person is not merely using a new program, but a whole newtypeof program, the experience can be...

    • Chapter 11 Don’t Neglect the Experts
      (pp. 91-97)

      We have seen that user-interface software must be tailored to have simple defaults for novices, but should have sufficient power and flexibility to meet the needs of users as their expertise and sophistication grows. Left unmentioned so far are the needs of real experts, the small group of hard-core users who will squeeze every drop of performance and functionality out of a system and clamor for more.

      Experts have, in recent years, gotten a bad reputation among those who worry about user interfaces. In fact, one of the worst insults one can make about a user interface is, “This is...

    • Chapter 12 Your Program Stinks, and So Do You
      (pp. 99-103)

      Nearly anyone who has supplied a user-interface program to a significant number of users has been on the receiving end of a comment similar to the title of this chapter. User interface software is in this regard very much like art—no matter how good it is, there will always be someone who despises it. This a simple and unpleasant fact of life for user-interface designers, most of whom gradually learn to be somewhat thick-skinned as a result.

      The phenomenon is entirely natural and understandable. First of all, user interfaces inherently involve questions of style and taste. What one user...

    • Chapter 13 Listen to Your Users, but Ignore What They Say
      (pp. 105-109)

      As previously mentioned, there is never a shortage of suggestions and complaints from the people who use software. These complaints often come from people who are quite sure they know not only what the problem is, but how it should be fixed as well. To hear the complaints, one could easily believe that improving a user interface is a simple matter of getting some moderately intelligent person sufficiently involved to tell the stupid programmer what things obviously need to be done.

      Unfortunately, even some programmers seem to believe this, and will happily follow even the most senseless of instructions. The...

    • Chapter 14 Lie to Your Managers
      (pp. 111-113)

      We have seen that user-interface designers must be extremely independent, in the sense that they must sometimes seem to ignore the expressed wishes and complaints of the very community of users they are supposed to be serving. This independence is presumably justified by the designers’ expertise—they should simply know more about user interfaces than the users do, and thus be able to see certain kinds of flaws in their thinking. In this sense the user-interface designer is no different from any other professional except that, because of the nature of the decisions being made, many users consider themselves qualified...

    • Chapter 15 Cut Corners Proudly
      (pp. 115-121)

      A good professional takes pride in his work. A master carpenter tries to make every wall meet the floor, ceiling, and other walls at perfect right angles, even where nobody is ever likely to notice or care. To an electrician, a neatly wired circuit can be a thing of beauty, far beyond the requirements of safety.

      Programmers, too, have a sense of beauty in their work, and strive for cleanliness, elegance, and simplicity. To a professional programmer, such things are points of honor. A program that works, but is ugly and confusing in its implementation, is derided by any of...

    • Chapter 16 Remember Your Ignorance
      (pp. 123-127)

      Designing and building a large program is a complicated business. In a sense, nobody can do itright. As with any other human artifact, a computer program is inevitably filled with small flaws that reflect the inadequacies and failings of those who built it. The goal, of course, is to minimize and hide these flaws to the greatest extent possible.

      Vital in doing that is the recognition of one’s own limitations. Programming can be an exciting, intoxicating activity. Non-programmers rarely understand that the underlying cause of the obsessive programmer’s fixation on his or her work is, in essence, megalomania. In...

    • Chapter 17 Dabble in Mysticism
      (pp. 129-131)

      Good advice about user interfaces can come from almost anywhere. Professional arrogance is a major enemy of user-interface programmers, because it can blind them to good ideas from “unprofessional” sources. A better attitude might be to imagine that good ideas are constantly surrounding us all the time, in a sort of ether-of-ideas. Through unimaginable mystical processes, these ideas may make themselves known to us through the comments of a fool, or even through a Ouija board. A constantly open mind is the designer’s most important tool.

      In these early years of the Computer Age, programmers are naturally filled with a...

    • Chapter 18 Break All the Rules
      (pp. 133-136)

      The only reasonable eleventh commandment is that you shouldn’t take the other ten too seriously. Although they’re generally sensible and worth paying attention to, and although one can come up with many good examples of the relevance of each, none of these commandments were, in fact, revealed to mankind by a deity who demands literal observance. Each may be considered provisionally true, but counterexamples can always be found. In the final analysis, it is the good judgment of the individual designer that makes all the difference. Rules such as those given here can help inform that judgment, and can perhaps...

  4. Part Four The Golden Path:: The Road to Human-Oriented Software Engineering

    • Chapter 19 The Tools of the Trade
      (pp. 139-155)

      In most of this book, I have argued that user-interface design is so idiosyncratic, so unpredictable, and so fundamentallynotan engineering discipline that I may have given the impression that software engineering has nothing to offer user-interface designers. This is an exaggerated perspective, offered in frustration by one who has been trained in “traditional” software engineering and found it wanting for his purposes. This does not imply, however, that it is utterly valueless—merely that it is only one domain among many that must be mastered by the user-interface designer.

      In fact, designers are not completely helpless and unarmed...

    • Chapter 20 The Ivory Tower
      (pp. 157-162)

      In industry, alas, it has long been taken for granted that the universities provide little practical training for programmers. Programmers often regard their formal training, if they have any, as little more than a bad joke. Statements such as “I learned more in four months on the job than in four years of college” are so common as to lead almost inescapably to the conclusion that something is seriously wrong with the way programmers are educated in our universities today.

      The principal problem is that the skills taught in university computing programs are astonishingly irrelevant to the tasks of programmers...

    • Chapter 21 People Are Perverse: Designing for the Fickle User
      (pp. 165-175)

      User-interface design is, at bottom, a very tricky business. There are as many techniques for achieving a good design as there are good designers. It was never my intent, in writing this book, to put forward a definitive solution to the innumerable problems of interface design. This book was motivated by a more modest and proximate goal, the debunking of a number of myths and illusions about the process by which good interfaces are and should be designed.

      The wealth of negative prescriptions in this book, it is hoped, may help a few readers to avoid some nasty pitfalls in...

  5. Epilogue: Programming, Humility, and the Eclipse of the Self
    (pp. 177-179)

    If you build user interfaces and your intuition is good, you’ll be lucky to get things right about a quarter of the time, and you won’t necessarily know which times you were right.

    If you build user interfaces and your intuition is bad, you’ll get things right even less than a quarter of the time, but you’ll probably think you’re doing much better than that.

    If you follow the principles described in this book and the procedures outlined in the last chapter, your design skills and intuition won’t improve one bit. You’ll still be wrong a lot more often than...