Create New
Have you ever noticed Apple is much better at using verbs in the labels of their command buttons than Microsoft? Apple uses the labels “Go Back” and “Continue” in their wizards, where Microsoft would use “Back” and “Next.” I love this. It was one of the first things I noticed when I switched to OS X that made me realize how good Apple is at interaction design.
I don’t remember when or where I learned it, but as a general rule, you want to use verbs in the labels of buttons, menus, and links that perform an action. It seems like common sense, but we see it trumped quite often. The cases where you can make an exception is when the action is so common it’s safe to assume the user doesn’t have to think to understand what’s implied. The most common example is that most buttons and menus that are simply nouns imply “View (the noun).”
I apply the same thing to naming methods and functions when I program. I always try to start the method with a verb. In more verbose languages like Java (and maybe even PHP), I would always start with a verb: getName(), listAttributes(). In less verbose languages like Ruby and Python, it’s common to skip implied verbs like get and set, but for everything else, I start with a verb: publish_all, find_by_name.
Now, there’s a neat thing about good interaction design. You can come up with an interface design that seems great on paper and in theory that simply won’t work in practice. This can happen when the new design is too different from what people are used to. That’s why certain conventions were created, and why it’s a good idea not to trump common conventions. If you want to make a great user interface, you don’t want to make the user figure it out, you want it to be intuitive. That means you should bend your design to accommodate their existing expectations, even if they aren’t for the best design.
What you can get away with depends on the specific type of user you’re designing for. By that I mean, getting away with better theoretical interaction design. More idealistic designs can be achieved by slowly conditioning users though incremental improvements over time. It’s probably a good idea to slightly deviate from bad conventions in the direction of better design.
The convention that sparked all this is using New as a command. File, New has been around in graphical user interfaces for about as long as I can remember, and it’s one of the most used commands because it’s the beginning of most workflows. Unfortunately, New is not a verb. New is an adjective. Therefore, it’s an exception, and I don’t really like exceptions.
In my opinion, New should be replaced with the first letter of CRUD: Create.
What are you doing when you start something new? You’re creating. It doesn’t have to be a work of yours, it could be a new browser window, but you created it. You didn’t New it.
While we’re at it, yes, all those New menu items don’t make sense to be under File. Shouldn’t New Window be under the Window menu? Maybe, but remember that strong conventions are going to trump good design.
Luckily I’m a web developer, and most people don’t have these menu conventions burned into their brains for web applications. New is still around, but like I said, it’s probably a good idea to gradually push for more ideal design when you can. That’s why my web applications use Create New, and even just Create in some places.
October 21st, 2005 at 1:27 am
When you skip the implied verb in those less verbose languages, what do you have left (assuming you’re already skipping the implied subject (the object you are calling the method on, not the ovject of the action))?
October 21st, 2005 at 1:30 am
What would be get_name and list_attributes become simply name and attributes.
October 24th, 2005 at 3:43 am
using verbs as the labels for buttons and menus and such would also help transport “tech speak” into english. Instead of saying “hit the new button and then click on back, then double click source”, you can just say “create new, go back, and then view source”. This extends into making technology more user-friendly rather than just clearing up grammatical errors
October 24th, 2005 at 3:49 am
I think I get what you’re saying. Yes, good labels form a vocabulary that should make enough sense to give simple instructions with. But the point of this post wasn’t really about grammer. It was about better usability; though proper grammer does lend itself to better usability.
October 25th, 2005 at 5:51 am
Well, all of your silly semantics is just straight-up grammar in the next-order logic, word.
April 28th, 2007 at 9:15 pm
[…] This is a bit related to my Create New rant from a while back. Really the point of that was what I’m talking about now. […]