Sun Java Solaris Communities My SDN Account Join SDN
 
Article

A CHI '98 Workshop Position Paper

 

 
A CHI '98 Workshop Position Paper
Frank Ludolph
Sun Microsystems Inc.
901 San Antonio Road, MS CUP02-306
Palo Alto, CA 94303
frank.ludolph@sun.com
 

Applications are driven to feature excess, or`bloat,' by many forces both inside and outside the development group. Techniques for managing feature growth, described below, depend in part on the source of the request. The sources can be divided into three groups, end users, the development team, and other outside forces. End users request new features because they feel they can't accomplish their work without it, because the application doesn't support their preferred way of working, or because they have seen a'neat feature' in a competing application and think it would be useful. These requests are usually posed as a'needed feature' rather than as a problem they have or a task they need to perform.

A second source of requested features is the development team itself. Field studies, conducted by watching end users and doing follow-up interviews, will reveal needed enhancements. Marketing may suggest features that they believe will make the product more attractive to a wider user base. The developers themselves may suggest a feature just because they can do it, because it provides for some form of'symmetric' completeness, or because it is a personal favorite feature. A slightly different form of the latter is management's request for a favorite feature -- how do you tell your boss `No'?

Perhaps the strongest sources of new feature requests come from other sources outside the development team. These outside forces are often the original sources of requests from end users and the development team. The most obvious is product reviews, most of which focus on checklists of features because they are relatively easy to quantify and compare. A potential customer reads the review and stacks up the features and, after discarding products that don't contain features known to be needed, picks the one that does the most. ` does everything I could imagine needing.'  Feature parity -- does your application measure up? How many `lite' versions of a product are doing will two or three years after their introduction?

A more insidious outside source is the release-driven economic model of software -- hook users and get them to upgrade every eighteen months or so to the new version with new features. If there are no new versions, sales are more or less limited to the growth in the number of new computer users. After a while, product sales drop off and so do company profits.

Regardless of the sources of new feature requests, time and experience changes the things that people want and need to do and the way they want to work. Fifteen years ago the Apple Lisa word processor, LisaWrite, provided for styled text, multiple fonts, embedded graphics and charts. But by today's standards, its page formatting was limited, graphics and charts could not be edited in place, it had no style sheets, and its ruler-based formatting was intrusive, all features that most of us have come to expect.

The Expanding UI

Today's applications have more features than those of fifteen years ago and new control mechanisms have been developed to hide less-used features and to make common features more prominent. The Lisa had a non-hierarchical menu bar with command keys, modal dialogs with buttons, and simple tool palettes. Intervening systems and applications have added, in approximate order, toolbars, non-modal dialogs, hierarchical menus, multiple floating tool palettes, hierarchical menus, selection-sensitive menu bars and palettes, customizable-menus, popup menus, wizards, system generated`hints,' and most recently, panels that slide into view when`touched' and then hide automatically.

With the exception of toolbars, which were designed to make menu-based commands more prominent, all the mechanisms were designed to use hierarchy to hide sets of features until needed and, in most cases, make them more prominent when needed.

The Affect of Feature Bloat on Users

The upside of feature bloat is that some of the new features may actually enable specific users to do something they need to do, to work more efficiently, and/or to extend what they can do in an important way. These new features are important  and the reason for not freezing an application's feature set. However, by the third release or so, a product is usually`feature complete' in the sense that it meets the needs of most users, and the continued wholesale addition of new features clearly enters into its down-side phase.

Adding more features distracts the development team from fixing bugs and improving performance. In practice, they usually make an application bigger and slow it down, and sometimes force the user to add more memory, update the system software, and/or get a faster computer.

The addition of new features can introduce unavoidable complications for users that don't need or use the new features. For example, a simple e-mail program designed for low volume use may require only a button click to save a message. The addition of multiple mail folders to support heavy mail users will add complexity, that is, the need to specify which folder a message is to be saved to, and new commands for creating and deleting mail folders and for specifying which mail folder to view. The low volume mail user cannot avoid this additional complexity.

The novice user tries to gain an understanding of an application by looking around and`twisting the knobs' to see what they do. From this they develop a model of the purpose and operation. Doing this with a large, feature-rich application can be overwhelming because of the combinatorics, i.e., it normally takes several operations to complete a task. The user is wondering just what tasks can be performed and the sequence of operations necessary to perform them. Early success is important in engaging new users and encouraging them to explore further. Many users will find full-featured applications too complex to learn by inspection.

Increasing the number of features increases the amount of screen space devoted to controls and reduces the amount devoted to the content. The use of hierarchy to hide features makes the application more difficult for all to use. For example, to gain menu bar space for new features, existing menus (e.g., Font, Style, and Size) might be combined into a single hierarchical menu, and hierarchical menus are both more difficult to operate.

Adding more features can force the UI to be reorganized. A`new' user interface on to an existing product can be extremely disruptive to users, costing them significant relearning time. (Macromedia Director comes to mind.)

Managing the Bloat

Given that there are significant reasons to continually add new features, how do we design and grow applications over time without creating a useless mess? The short answer is that we can't entirely, but with a clear vision of what the application needs to do, good basic design, careful management of feature additions, and occasional, selective restructuring of portions of the UI and underlying code, it is possible to build good products that last ten years or more before the application's user interface has to be redesigned. By then, the world will likely be a rather different place.

A Clear Vision

The basis for managing the bloat depends primarily on knowing your end users, customers, and target market. We can't know them by just visiting and talking. By and large, people do not consciously know and cannot express what they need at the intimate level we designers work. Talk with them, write down their suggestions, but don't take them at face value because they are usually offering solutions to unstated problems. Dig deeper. It is necessary to live with them in their environment to better understand their goals, the ways they work, and their problems. This must be done continuously throughout the life of the product because the user's goals, work style, and problems will continue to change as the product and their work evolves.

A Good Design

A solid, extensible design, is an absolute must for a long-lived application. Based on the work with end-users, customers, and marketing, it should be possible to develop a clear, concise user model. Apple's Lisa had such a design for its desktop, one that included very few computer-specific artifacts, and then only with clear physical representations. The Macintosh reintroduced several computer-specific artifacts, without clear physical representations, into a lesser featured desktop that ran only one application at a time. Several releases later when the Macintosh desktop began to approach parity with the Lisa's, the Mac's UI was both more complex and more difficult to use.

The user interface must employ the best extensible mechanism available. The hierarchy used to reduce the clutter is also creates the problem of finding things. To the extent possible, related controls should be grouped, by object or function as appropriate, and the groups placed in selection-sensitive mechanisms that will automatically display them when potentially needed and hide them when they are no longer useful. The grouping mechanisms include menu bars, toolbars, and property sheets, and context-sensitive popup menus.

Good task-based design can enable the integration and automation of task parts and relieve the user of having to learn and memorize the steps. For example, on the Lisa a user could copy a document by duplicating it and dragging the duplicate to a disk or folder. If a target diskette did not have enough space on it, the Lisa would inform the user, ask if the document should be split across several diskettes, and initiate and manage that action if the user approved.  It was not necessary for users to know that when a`too large' alert appeared they needed to start some utility application to split -- and later re-join -- the diskfile. Similarly, duplicating a hard disk and dragging to a diskette initiated a disk backup routine of full and incremental backups rather than just informing the user that `there isn't enough room on the destination diskette.'

This task recognition and automation is not the same as providing `wizards.' Wizards can help in a pinch, but they do not instruct the user on how to use the application's features. For example, Excel 5.0 provides a chart wizard for creating and editing a chart, however, when it is necessary to make a single change, e.g., adjusting the portion of the spreadsheet to be charted, the wizard takes the user through all the steps. A better approach might be a context-sensitive, tabbed`universal' property sheet. When the use clicks anywhere within the chart, the tabs would indicate various sets of chart-related attributes. The user just opens the application's one non-modal property's dialog if not already open, clicks on the appropriate tab, and edits the extent.

Lastly add a new UI mechanism only when it can be used to reduce the overall operational complexity of the interface rather than adding yet another mechanism for both users and UI designers to deal with. Feature Management

There will be a gazillion requests for new features from a wide variety of sources, as described above. The key to managing these is a prioritized `new features' list, and the key to making the priorities work is a clear, explicit description of the target market and customer and end-user needs as mentioned above. Saying`no' to your boss's request can be problematic. The use of priorities based on user and customer evaluations allows the designer to add requests at a low priority until their true need can be ascertained.

Of course requested features should not be added to this list right off. Most suggestions are based on the submitter's proposed solution to an unstated problem. Dig deeper to better understand the problem and develop other alternatives. One of the alternatives might be both solve the problem, fit better within the application's user model, and be a more general solution that can be used for other problems. An application's underlying metaphor will often suggest how the new features might best be added.

Selective Restructuring

Occasionally it becomes time to restructure portions of UI to remove the accumulated cruft and to utilize recently developed UI techniques. While the restructuring can be uncomfortable for users -- some are sure to complain -- careful restructurings extend an application's life, keeping it fresh and usable.

Is this approach to feature management guaranteed to work? Of course not, because it depends on good judgment and design, and on product management support. It's a matter of degree. But even in the worst of situations, these techniques can aid designers and help them maintain their sanity. Designing for people is much more complicated than designing something to meet the physics of the real world. It's physics verses psychology. We're dealing with people, and that's what makes it all so interesting.