A European acquaintance once remarked that when they go to an American restaurant, they feel like they're "under assault" by the waitstaff: placing an order requires answering a long series of questions—"Soup or salad? Italian dressing or Ranch? Lite Italian or Regular Italian?"—and the waitstaff continues to interrupt them every ten minutes to ask yet more questions. Some user interfaces can feel like this.
In particular, some applications have commands with UIs that ask too many questions before the application will actually carry out the command. If you try to insert a new page into a Microsoft Visio document, you get a form to fill out:
What you really wanted was a new page, not a form to fill out. The difference between ordering a salad and inserting a new page is that the restaurant has to get things right the first time. Once you get the salad, you can't change your mind and have them turn the salad into a soup (or, at least, not a very good soup).
An application, in contrast, can adjust its output after the fact. Good UIs often eliminate unnecessary up-front questions by doing something in response to a command and letting you tweak the results if they're not what you wanted.
A common example: when you create a new folder in virtually all modern operating systems, you get a new folder right away. The new folder is called something like "New Folder". You don't get a question asking you what kind of folder you want, what sort of name you'd like to give it, etc. For this UI to be effective, the OS simply needs to make it easy for you to rename the new folder once it's been created.
Another example comes from Microsoft Office. In old versions of Office, if you wanted to paste something from the clipboard that could be pasted in multiple ways, you had to use an ugly and confusing Paste Special dialog:
Recent releases of Microsoft Office have deprecated this dialog in favor of a contextual pop-up menu that appears after commands like Paste. If you don't like the result of the command, you simply select another result from the pop-up menu:
Advances like these obviate the need for an application to bug the user with lots of questions. Other suggestions for streamlining command UI:
- If a single command is really providing two features that are only loosely related, refactor the command UI into two proper commands with their own entry points.
- If you have to ask a question, at least propose a default response and/or give examples of typical responses.
- If you have to present a dialog or wizard, consider employing some form of elision (an "Advanced..." button, an expando that reveals advanced options, etc.) to hide the unusual stuff.
- Instead of presenting a long sequence of questions, consider presenting a quick summary of what's going to happen, and let the user edit just those parts they want to change.
- If you really, really need to display a dialog (e.g., for legal reasons) but are confident most users won't actually need to see it each time, offer an option to skip past the dialog in the future.
- Have the basic form of the command do the thing that 95% of your users want, then let the remaining 5% tune the behavior of that command through an application option.
- If only a tiny number of users would ever answer a question a particular way, have guts and cut the question altogether. In general, you're better off addressing the common needs of a broad set of users than building special-purpose UI that only ever be used by a few people (especially if those few people work down the hall from you).
Just discovered your blog. Great stuff!
However, in my opinion your example of creating a new folder in the OS is a bad one (at least the way Explorer does it). Why? For two reasons:
1) What are the odds that you actually want a folder called New Folder (or New Folder (27))? Practically zero. So the user is going to have to type the new name anyway. And in fact it's quite easy to accidentally quit out of Explorer's rename mode, which makes the whole process more hassle.
2) Depending on how network permissions are set up, it's possible that the user will be able to create a folder but not be able to rename it. I've actually had this happen to me - it's incredibly annoying (especially when you can't delete the new folder either).
Apparently the Office 2003 thought so too. When you create a new folder in the File dialogs there, it pops up a prompt for the folder name.
Posted by: Kevin Dente | November 29, 2005 at 10:53 AM
I'm going to have to disagree with your point 1, Kevin. A fair fraction of the time, when I'm creating a folder, I'm creating it for a temporary purpose, and really don't care what the name is. "New Folder" does just fine -- and, usually, if I do decide my temporary directory needs a name, I make that decision well after creating the folder.
I also contend that having a dialog box is little help. For a properly-done dialog box, the name field is highlighted, and I can immediately type in a name, and then I have to either hit "enter" or click "ok". If I click somewhere else, I then have to re-click in the dialog box's edit field, and usually reselect the default text to replace it.
The process of using the rename field to name a new folder strikes me as different from this in only three ways: (1) it's slightly easier to accidentally quit out of it, as you say; (2) it doesn't require hitting "enter" or "ok" after editing; just going to do something else is sufficient, and (3) it doesn't require my attention at any given point. Other than that, the interaction process is exactly the same.
Thus, aside from the very minor issue of the rename mode being slightly easier to accidentally quit out of, I can't see how having a dialog box will possibly save me mouse-clicks or keystrokes.
Posted by: Brooks Moses | November 29, 2005 at 01:10 PM
I'm no expert, so please take the following with a grain of salt :).
From my perspective, a lot of UI flaws can be largely attributed to an incorrect approximation of the target audience. To put it more simply, it seems that a lot of designers/developers (or whoever it is that has the biggest hand in crafting UIs for a given application), seem to forget WHO they are desiging for.
Consider the delicate balance between having your application present you with many options at once and letting the user tweak them, or using a wizard or simple dialog interface and giving the user the option for more options. It's a balance between a user that knows what he or she is doing right away and has probably used the application many times, versus the user that has little familiarity with the application to begin with.
The main problem, in my case anyway, is how to both efficiently and elegantly arrange the information on both the spatial and temporal planes. I always end up asking myself, "Ok, would it be better if I broke down the follow dialog into multiple dialogs? Tabs maybe? Drop down & Command maybe? Wizard?"
I have to ask myself what is going to make the most efficient use of time against the most effective outcome.
Sorry for that long-winded comment, I was just pouring out my thoughts as an amature developer, heh. I appericiate your blog :).
Posted by: Peeyush Singh | November 29, 2005 at 02:41 PM
"1) What are the odds that you actually want a folder called New Folder (or New Folder (27))? Practically zero. "
The user might want to rename the folder but the question is when do they want to rename the folder.
I very frequently find myself creating a new folde because I want to store some files into it right away and it would be an awful interuption to the flow of my work to have to stop and think of folder names while I'm actually concentrating on putting a bunch of files somewhere "safe".
Now I don't assume that my needs are those of the whole world, which is why I'd argue for choice, an ability to create a file and either use it right away or rename it right away depending on what you're doing.
Posted by: Robert Moir | November 30, 2005 at 04:46 AM
Personally, I'm most annoyed that when I go to rename a file with an extension, the extension is automatically highlighted. So, renaming "Note.txt" and typing "Note to Mom" results in that annoying "Are you sure you want to change the extension?" dialog. How about only selecting the name and not the extension by default?
Posted by: Chris | November 30, 2005 at 09:59 AM
That:
So, renaming "Note.txt" and typing "Note to Mom" results in that annoying "Are you sure you want to change the extension?" dialog. How about only selecting the name and not the extension by default?
is a brilliant comment. I've thought the same thing a million times myself.
Warren
Posted by: Warren | November 30, 2005 at 12:04 PM
Oh yeah. The extension thing. I'd buy Chris' idea for a dollar! I always like to see extensions but I only occasionally want to change them!
Posted by: Robert Moir | November 30, 2005 at 01:43 PM
Warren: I think Windows Vista selects only the file name by default, when one tries to rename a file.
Posted by: Dileepa P | December 02, 2005 at 07:37 PM
Agree. Less questions, more action. And dialogs suck! ;) Hey btw that's my on-object UI in office! Glad you like it. Some people who know it love it, most never even see it though, which is too bad. Maybe a bit too subtle. Oh btw, we fixed that problem of extensions getting blown when renaming a file and you have extensions showing in Windows Vista... it nicely only highlights the name part before the period when renaming.
Sometimes these things are relatively simple and you think 'duh, of course!', but often it is just so hard to know what users want to do. Most UI folks make the wrong call and decide in the end to just ask EVERYTHING. It also often requires more detailed knowledge of the user goals and behavior patterns than
most people are prepared or even able to obtain.
Posted by: tjeerdh | December 29, 2005 at 11:05 PM