Warning: This web at toLearn.net/marketing/ is two years old, it's unattended, and the links are rotting. However, in June 2000, the server recorded over 10,000 page requests during more than 3,000 visitor sessions from dozens of countries. Thus, I'm reluctant to take it down completely.

Get much of the info new and fresh:

Ricci Street | MBA 604 | marketing
computers | design | discussion forum


topbar.gif (10780 bytes)

seedpile.gif (3073 bytes) oranhalfs.gif (2626 bytes)

monobar.gif (1022 bytes)

oranlogo.gif (4389 bytes)

Intelligent
Borrowing

monobar.gif (1022 bytes)

Intelligent Borrowing

HyperTopic "Won't I get sued if I follow your advice?"

Working Within Existing Interface Frameworks

Making Use of Existing Applications

Example Monte Carlo Modeling Systems

Copying Interaction Techniques From Other Systems

When You Need to Invent

Example Tog's One-or-more Button

HyperTopic The Good Old Days, When Designers Were Designers

monobar.gif (1022 bytes)

Intelligent Borrowing
The foundation of good interface design is INTELLIGENT BORROWING. That is, you should be building your design on other people's good work rather than coming up with your own design ideas. Borrowing is important for three distinct reasons. First, given the level of quality of the best user interfaces today, it's unlikely that ideas you come up with will be as good as the best ideas you could borrow. Second, there's a good chance, if you borrow from the right sources, that many of your users will already understand interface features that you borrow, whereas they'd have to invest in learning about features you invent. Finally, borrowing can save you tremendous effort in design and implementation and often in maintenance as well.

 

HyperTopic "Won't I get sued if I follow your advice?"
As you read through this chapter you'll realize that much of the borrowing we recommend is not only allowed, it's actually encouraged by the developers of the original system. Apple Computer, for example, provides style guides, software toolkits, and other support for developers who want to produce Macintosh programs that look and act similar to all the other Macintosh programs.

In addition, there are a lot of other things you can copy without infringing on the rights of other companies. Unfortunately, there's no clear and simple rule that defines those rights. Appendix L gives an overview of the legal principles and provides a list of "boundary markers," examples of things that can and cannot be legally copied under the current laws. The development process we recommend is to keep those boundary markers in mind, rough out your interface, and then talk over your decisions with your company's attorney. If there's a central feature of the interface you're worried about, such as picking up an entire interface metaphor, you may want to get legal advice a little earlier.

Because the law is always changing (and this area of law is especially unsettled) there are some other things you need to do. One is to read the trade journals and keep yourself abreast of the current state of the law. Another is that your business plans should take into account the possibility that, no matter how careful you are, you may become involved in a lawsuit.

monobar.gif (1022 bytes)

Working Within Existing Interface Frameworks
The first borrowing you should do is to work within one of the existing user interface frameworks, such as Macintosh or Windows. The choice may have already been made for you: in in-house development your users may have PCs and already be using Windows, or in commercial development it may be obvious that the market you are trying to reach (you've already found out a lot about who's in the market, if you're following our advice) is UNIX-based. If you want to address several platforms and environments you should adopt a framework like XVT that has multi-environment support.

Note: This chapter was copyrighted before the Web took off. One of the main reasons we're using html is its cross-platform support.

The advantages of working in an existing framework are overwhelming, and you should think more than twice about participating in a project where you won't be using one. It's obvious that if users are already familiar with Windows there will be big gains for them if you go along. But there are also big advantages to you, as mentioned earlier.

You'll get a STYLE GUIDE that describes the various interface features of the framework, such as menus, buttons, standard editable fields and the like. The style guide will also provide at least a little advice on how to map the interface requirements of your application onto these features, though the guides aren't an adequate source on this. This information saves you a tremendous amount of work: you can, and people in the old days often did, waste huge amounts of time designing scroll bars or ways to nest menus. Nowadays these things have been done for you, and better than you could do them yourself.

You also get SOFTWARE TOOLS (Note: Like Front Page) for implementing your design. Not only does the framework have an agreed design for menus and buttons, but it also will have code that implements these things for you. We'll discuss these implementation aids in a later chapter.

top.gif (255 bytes)

monobar.gif (1022 bytes)

Making Use of Existing Applications
The next copying you ought to do is to find good existing applications that already provide some of the functionality you need and plan to incorporate those applications into your system. Do users need some database capabilities, and some ability to do calculations of the data they are dealing with in your application? They almost always do. You will not be able to develop your own Dbase, or your own Excel, that will be nearly as good, or as powerful, as existing products that have been shaped by intense and extended competition in the commercial market. Even if you could you and your users are still behind: many of them already know how to use Excel, and they gain nothing by having to learn about your version of a spreadsheet instead.

Example Monte Carlo Modeling Systems


Suppose you want to do financial projections, such as you might do with a spreadsheet, but you need to represent uncertainty in the numbers you use: next year's sales should be somewhere around $1.5M, but they could be as low as about $1M or as high as $2M. Costs should be around $1.2M, but they could be as high as $1.4M or as low as $1M. So what's the gross profit picture for next year? You could use a regular spreadsheet by running various what-if's with different numbers, but if you have a few more parameters that gets tedious and error-prone. And suppose you think that sales and costs are probably correlated? Monte Carlo simulation is a modeling technique that lets you specify statistical distributions for parameters, and correlations between them, and estimates the distribution for resulting quantities by sampling from the distributions you provide.

Suppose you wanted to sell a Monte Carlo tool to the business world. You could try to build your own system from the ground up, but you'd be wrong. The right thing to do, as Crystal Ball and @Risk have done, is to build and sell a spreadsheet add-on. Modern spreadsheets, and the systems in which they run, permit fairly easy communication between the spreadsheet and your code. This is a huge win, for the following reasons:

opinp.gif (941 bytes)The spreadsheet provides for you many functions which you would otherwise have to implement yourself, including data entry and specification of computations in the model.

opinp.gif (941 bytes)It provides these functions in a form many users already understand. In fact the same add-on can be made to work with more than one of the popular spreadsheets, so users can choose whichever spreadsheet they already know most about.

opinp.gif (941 bytes)The spreadsheet provides many functions that aren't part of what you HAVE TO do in your application but are significant enhancements that you get for nothing. For example, modern spreadsheets offer a wide range of graphical presentations of data.

opinp.gif (941 bytes)Chances are users will want to transfer data between your package and their spreadsheet anyway. That'll be much easier with the add-on than if you build a separate package.

opinp.gif (941 bytes)The spreadsheet can handle most if not all of the various environmental dependencies for you, such as drivers for various kinds of displays and printers. There is no way that you could afford to put as much coverage of environment options into your package as the spreadsheet developers, with their huge market, can afford to put into theirs.

top.gif (255 bytes)

monobar.gif (1022 bytes)

Copying Interaction Techniques from Other Systems

Another kind of borrowing is copying specific interaction techniques from existing systems. If the style guides were good enough you might not have to do this, but the fact is the only way to get an adequate feel for how various interface features should be used, and how different kinds of information should be handled in an interface, is to look at what other applications are doing. The success of the Macintosh in developing a consistent interface style early in its life was based on the early release of a few programs whose interfaces served as models of good practice. An analogous consensus for the IBM PC doesn't really exist even today, but as it forms it is forming around prominent Windows applications like Excel or Word.

It follows from the need to borrow from other applications that you can't be a good designer without becoming familiar with leading applications. You have to seek them out, use them, and analyze them.

The key to "intelligent" borrowing, as contrasted with borrowing pure and simple, is knowing WHY things are done the way they are. If you know why an application used a tool palette rather than a menu of functions, then you have a chance of figuring out whether you want to have a palette or a menu. If you don't know why, you don't know whether the same or a different choice makes sense for you.

Bill Atkinson's MacPaint program was one of the standard-setting early Macintosh programs, and it used a tool palette, a box on the side of the window containing icons. The icons on the palette stand for various functions like "enter text", "move view window", "draw a rectangle", and the like. Why was this a good design choice, rather than just listing these functions in a pull-down menu? In fact, some similar functions are listed in a pull-down menu called "goodies". So should you have a palette for what you are doing or not?

Here are some of the considerations:

opinp.gif (941 bytes) Operations on menus usually do not permit or require graphical specification of parameters, though they can require responding to queries presented in a dialog box. So an operation like "draw a rectangle", in which you would click on the corners of the intended rectangle, would be odd as a menu item.

opinp.gif (941 bytes) A palette selection actually enters a MODE, a special state in which things happen differently, and keeps you there. This doesn't happen when you make a menu selection. For example, if you select the tool for drawing rectangles from a palette, your mouse clicks get interpreted as corners of rectangle until you get out of rectangle drawing mode. If you selected "draw a rectangle" from a menu, assuming the designer hadn't been worried about the point above, you'd expect to be able to draw just one rectangle, and you'd have to go back to the menu to draw another one.

So a tool palette is appropriate when it's common to want to do a lot of one kind of thing rather than switching back and forth between different things.

opinp.gif (941 bytes) Modes are generally considered bad. An example which influenced a lot of thinking was the arrangement of input and command modes in early text editors, some of which are still around. In one of these editors what you typed would be interpreted either as text to be included in your document, if you were in input mode, or as a command, if you were in command mode. There were two big problems. First, if you forgot what mode you were in you were in trouble. Something you intended as text, if typed in command mode, could cause the system to do something dreadful like erase your file. Second, even if you remembered what mode you were in, you had the bother of changing modes when you needed to switch between entering text and entering commands.

opinp.gif (941 bytes) But modes controlled by a tool palette are considered OK because:
oball.gif (924 bytes) there is a change in the cursor to indicate what mode you are in, so it's harder to forget
oball.gif (924 bytes) you only get into a mode by choosing a tool, so you know you've done it
oball.gif (924 bytes) it's easy to get out of a mode by choosing another tool

opinp.gif (941 bytes) In a tool palette, tools are designated by icons, that is little pictures, whereas in menus the choices are indicated by text. There are two subissues here. First, for some operations, like drawing a rectangle, it's easy to come up with an easily interpretable and memorable icon, and for others it's not. So sometimes icons will be as good as or better than text, and sometimes not. Second, icons are squarish while text items are long and thin. This means icons PACK differently on the screen: you can have a bunch of icons close together for easy viewing and picking, while text items on a menu form a long column which can be hard to view and pick from.

So... this tells you that you should use a tool palette in your application if you have operations that are often repeated consecutively, and you can think of good icons for them, and they require mouse interaction after the selection of the operation to specify fully what the operation does.

Depending on the style guide you are using, you may or may not find a good, full discussion of matters like this. One of the places where experience will pay off the most for you, and where talking with more experienced designers will be most helpful, is working out this kind of rationale for the use of various interface features in different situations.

top.gif (255 bytes)

monobar.gif (1022 bytes)

When You Need to Invent

At some point in most projects you'll probably feel that you've done all the copying that you can, and that you've got design problems that really call for new solutions. Here are some things to do.

opinp.gif (941 bytes) Think again about copying. Have you really beaten the bushes enough for precedents? Make another try at locating a system that does the kind of thing you need. Ask more people for leads and ideas.

opinp.gif (941 bytes) Make sure the new feature is really important. Innovation is risky and expensive. It's just not worth it for a small refinement of your design. The new feature has to be central.

opinp.gif (941 bytes) Apply the whole process of this book to the design. This means you can't expect to come up with a good innovation just by thinking about it, any more than you can come up with a good interface just by thinking about it. Be careful and concrete in specifying the requirements for the innovation, that is, the context in which it must work. Rough out some alternatives. Analyze them, as discussed in the next chapter. Then try them out with users, as discussed in the chapter after that.

Example Tog's One-or-more Button
Bruce Tognazzini has a great example of process of innovation in "Tog on Interface" (Reading, MA: Addison Wesley, 1992), a book you should read, especially, but not only, if you are a Mac person. He recounts the design of a kind of button that requires the user to turn on at least one of them. Repeated try-outs with users were completely crucial to success.

HyperTopic The Good Old Days, When Designers Were Designers
If you look at design case studies in the literature you are likely to be misled about what's involved in good design. Many of the most interesting case studies, such as those for the Xerox Star, come from a good while ago (Smith, D.C., Irby, C., Kimball, R., Verplank, W., and Harslem, E. "Designing the Star user Interface." Byte, 7:4 (April 1982), pp. 242-282). They tell you about designing something that was totally revolutionary in its day. Virtually every feature of the interface was an innovation, so virtually every feature was subjected individually to intensive design study including user testing. These studies tell you about the heroic age of design.

But you are probably not creating something totally revolutionary. In fact, as we've been advising, you should be trying hard not to, in most situations.

Even contemporary case study reports can be misleading. These reports usually focus on the innovations, because that's where the news and interest are. This means you don't really learn how to get your job done from these studies.

monobar.gif (1022 bytes)

from Chapter 3 of
Task-Centered User Interface Design
A Practical Introduction
by Clayton Lewis and John Rieman

ftp://ftp.cs.colorado.edu/pub/cs/distribs/clewis/HCI-Design-Book/README
Copyright 1994: please see "shareware notice" at front of text

monobar.gif (1022 bytes)

Link to TALK (discussion forum)

duobar.gif (1186 bytes)

top.gif (255 bytes)

btmbar.gif (5494 bytes)
last update: April 06, 1999
http://toLearn.net/marketing/borrow.htm