User interface interactions I like

I’ve found that it’s much easier to criticize bad user interfaces than it is to celebrate good ones: when a UI has usability issues you get frustrated; when a UI works well, you carry on with what you were doing. So I’d like to take the time to recognize a few interfaces with interactions that I find delightful.

Cameras with helpful error messages

I have an Olympus Pen E-P3 camera that I use a couple times a month. There are a variety of mistakes I commonly make when quickly taking out my camera for a photo, like leaving the lens cap on, or starting off in the wrong camera mode. These mistakes take valuable seconds of fumbling to recognize and correct, which often means missing the opportunity for an action shot, or making people in a group pose wait around awkwardly.

Another mistake I make is leaving the 14-42mm lens in a collapsed state, as it needs to be extended for use. When this happens, the camera shows the helpful error message “The lens is locked, please extend the lens,” and I can recover from the mistake in a second or two, and go on with my shot. The E-P3 is a mirrorless camera, so the entire system is designed for portability relative to a DSLR, from the compact camera body to the collapsible lens. It’s great that so much thought went into the user interactions with the lens.

Drag-and-drop in the Internet ageĀ 

One of my favorite interactions on operating systems is the ability to drag and drop files around the filesystem and into applications. This is a good example of direct manipulation. It’s rare to see the same drag-and-drop enabled on Internet-era applications. I can think of 2 reasons behind this: One is that web browsers don’t have built-in support for drag-and-drop interactions the way desktop applications do; developers have to custom-build this functionality using Javascript. The other is that there’s no underlying filesystem metaphor: mobile OSes have no filesystem you control, web content is read from a server’s database rather than a file, and often you don’t own the rights to the content you’re consuming, such as songs or e-books.

So I love to see Internet-age apps using drag-and-drop effectively. Spotify’s desktop app does this well, letting me drag songs into playlists no matter where I find the songs: in another playlist, in a search, or on an artist profile. I get a familiar feeling of control of my playlists, even though most of the songs aren’t files on my filesystem.

People you may have left outĀ 

The Internet is an amazing coordination tool for groups: I can add people by name, we have an online record of the planning process, and links to calendars and maps are often only a click away. One of my favorite features of coordination tools is when the interface suggests people you may have left out. Gmail’s composer has a “Consider including” feature that suggests email addresses to add. At a hackathon in December 2011, I added an “Event Guest Suggestions” feature to Facebook Events, based on the guests you’ve already invited.

Tools that suggest people have now become commonplace, but there’s a particular characteristic about them that I admire: when it works well it’s helpful, when it doesn’t work well it’s neutral and you can just ignore it. In contrast, there are many interfaces that try to be helpful by algorithmically guessing something, but in the worst case end up actually inconveniencing you by requiring you to intervene, like face recognition guessing the wrong person, or a speech-to-text algorithm getting words wrong.