For years I’ve heard UI niceties referred to as "Chrome". "Chrome" implies that something isn’t essential to how the product functions, but is just there to improve the "look and feel". Recently I worked with a guy who categorized features based on the components of a hamburger. The joke there is that while everyone wants to work on the meat of a project, sooner or later someone’s gotta make the bun. Putting that into software project terms, everyone wants to work on the business layer, and no-one wants to work on the boring, repetitive maintenance interfaces.
I don’t think a single, shiny word properly conveys an appropriate stratification of how important something truly is. I have therefore created my new list for prioritizing project features.
- Essential
- Enhancement
- Chrome
- Bling
- Doilies
Obviously "Essential" items must go in. These are the main project features. Without these, there is no product.
"Enhancement" items might be something like a wizard interface to make common tasks easier. Maybe you could survive without them, but you wouldn’t want to.
The standard "Chrome" entry is still there, but we can now divide off the truly non-essential showy things. For instance, a context-menu or shortcut key might be considered an enhancement. In the right hands it can make the user more productive, and has become somewhat of an expectation these days. It’s not going to hold up the beta testing, though. This is a back-burner item, but should be there before the product ships. I think tooltips might go at the chrome level, although it’s easy enough to argue that they are standard expectations. They’re not essential, and once a user is used to the application they’ll never be used again. Then again, tooltips provide essential information for new users and help get them up to speed on an unfamiliar application. During development you must remember that there’s always the possibility that the Essential or Enhancement features that the tooltips would support might be refactored, removed, or redesigned before the product ships, so they should be put on hold until the main product features are in place, and fairly solid, or you could end up wasting a lot of effort on things that get yanked later on.
"Bling" might include items that affect a product’s overall "feel". Things like a unified set of high-color icons on the toolbar. "Bling" doesn’t add any usability to a product, but gives it an overall feeling of quality. It’s not terribly important, but it’s something someone should probably pay attention to before the product ships. An example of bad Bling is TOAD, the third-party "Enterprise Manager" for Oracle. Let’s not even get into what an Essential-level tool this is, and how many million points off Oracle gets for not writing it themselves. Let’s just examine TOAD on its own. 16 color icons in this day and age? Oh, and they’re not ALL 16 colors, there are some 256+ color icons on the toolbars, mixed in with the 16 color ones. The 16 color icons make me feel like I’m back in Windows 3.1. The 256+ color icons are more "normal". The fact that the two are mixed up together makes me feel that somewhere along the line, someone just couldn’t be bothered to unify the whole UI. It’s a totally unimportant thing from a usability standpoint, but still manages to leave me with an overall feeling of "cheap".
And last, and certainly least, doilies. These are items that we can all agree are totally non-important, like the doily under your baklava. Is there any reason you can’t eat baklava straight off the plate? No, but they put a doily under there anyway to soak up the extra juices. Non-important in every respect, but it makes it look "fancy". In the software world, this would be things like skinning support. Skinning support offers absolutely nothing in terms of usability, and in the hands of a poor skin designer might totally ruin the user experience. The fact that you have skinning support lets your users know one of two things. Either your product is so solid that your developers had a ton of free time to build the skinning support, or that your priorities are totally out of whack. Most of the time, it’s the latter. Don’t even bother adding doily-level features to a product unless you are dead-sure that the rest of the application is absolutely solid. It makes you look like you’re trying too hard. It makes you look that much worse if a user finds an essential bug.