stevesu@bronze.UUCP (Steve Summit) (08/31/83)
It's great to see so much discussion taking place on this topic. I sincerely hope that some real work will go into designing good user interfaces as well as just discussing them on the net. (net.cog-eng is already showing little traces of the flaming and redundant verbiage that plagues other newsgroups.) This is a VERY HARD problem, and rationalizing it away ("novice users don't stay novices for long, so why worry") is not going to solve anything. I would suspect that the vast majority of those reading this (or any) newsgroup, and certainly all of those submitting articles, are reasonably sophisticated computer users. Sadly, it is virtually impossible for us to put ourselves in the proper frame of mind of the "novice" user. But, as several people have already explained, a good, practical user interface has to be accessible to that novice user. (By "practical" I mean usable, in an end application by "users," as opposed to a system development atmosphere by "hackers.") I myself have said that I keep the user in mind and write "friendly" user interfaces, but I freely admit that I have often failed. "Friendly user interface" is a buzzword just like "ergometric," and Mel Haas has demonstrated how inaccurate an in-fashion buzzword can be when improperly applied. The way to write a good user interface is to think about it very, very hard, preferably before you start coding it. (There is a good argument that says that a software package should be used by its implementer so that a truly usable interface can evolve as the system is implemented and debugged. It's true that you may have no idea what the most natural interface is until you've begun to use the system. On the other hand, it's incredibly easy to become committed to an idea, especially when you get used to it. It may not be nearly as natural to someone who hasn't grown up with it.) I do not believe in "artificial intelligence," but a user interface can be "clever," i.e. cleverly written by an intelligent programmer, so that it supplies reasonable default conditions (overridable, of course -- "small is beautiful"), does what the user wants in the common situations, and figures what the user wants in more complex situations, while letting the user specify things in a natural way (for the user). Obviously some kind of prompting/menu scheme is necessary to guide the user who has an idea about what he wants to do but hasn't learned or has forgotten how to do it. The ideal user interface (call me an idealistic dreamer, I admit it) would be so natural and easy to use that it could be used identically (without having to drastically alter its mode of operation) by the novice, casual user, expert, or forgetful expert. Unfortunately, I cannot offer any specific clues on how to do that easily. As an example, though, I would like to point out my choice of the world's best high-tech interface -- the telephone. It has exactly two controls, the dial and the hookswitch, and the hookswitch is "transparent" in that it works automatically. There are millions and millions of these things all over the country, everyone has access to them, and ANYONE can use them. Furthermore, they can be used to call just about anywhere in the world (direct-dialed, without operator assistance). Underlying that telephone, I might add, is the most reliable, well engineered, upward and downward compatible, cost-effective system I know of. (Don't knock the Bell system. Isn't thirty cents a minute an absurdly low rate for a system that lets you talk to someone all the way across the country, in the midst of a power outage, on a phone that might have been made in 1920?) You can really appreciate the cleanliness of the traditional telephone user interface if you try to use one of the newfangled private branch exchange (PBX) systems, where you have to flash the hookswitch and punch control codes to access all the nifty new features. Many people have a very hard time with these new phones, because the added complexity is too confusing, unnatural, and hard to remember. It is not fair to put the burden on the novice user, by making him learn about, and adapt to, a computer that you (or his manager, or somebody) has more or less thrust upon him. If the alleged "computer revolution" forces everyone to become "computer literate" and conform to computerized ways of doing things, then computers have in fact "taken over" in a very unfortunate way. Steve Summit Tektronix, Inc. 503-629-1069 textronix!bronze!stevesu P.S. A very good article entitled "How To Design Friendly Software" is floating around which addresses this issue in great detail, with lots of specific hints on problems to avoid and methods to overcome them. It was written by Paul Heckel, of QuickView Systems, 146 Main St. Suite 404, Los Altos, CA 94022. The draft I have indicates that it was serialized in Infoworld from July 12 through October 25, 1982, and that it will be published in book form in 1982. (I do not know Mr. Heckel and have no idea if he is willing or able to distribute lots of copies at this point.) scs