IA Summit ’08: Day 1

Today I attended the session on design patterns presented by Christian Crumlish, Erin Malone, and Lucas Pettinati of Yahoo.  The topic was directly relevant to my work.  They’ve done the UX community a tremendous service by sharing their work so publicly.  Today they even provided all of the attendees with thumbdrives preloaded with templates and stencils of the various patterns from their library.

I took particular interest in these points:

  • I had a question about whether there’s a useful distinction between patterns and standards.  Livia Lebate had an interesting perspective, suggesting that patterns are not sensitive to context.  A pattern is natively abstracted from any usage; once you apply it to particular context, it becomes an instance of that pattern.  It might not be a standard, but all standards are specific to some context.
  • Granularity was another important issue.  For example, you could say that something like a logon is a pattern. Or instead, you could break logons down into smaller patterns like username and password fields, “remember me” cookies, and password reclamation functions.  The presenters suggested that such pieces only rise to the level of a pattern when they might occur in contexts separate from the parent pattern.
  • Christian said that Yahoo’s pattern library started by focusing on atomic page elements, rather that patterns that occur across multiple pages.  This was because they were easier to write and provided immediate value to Yahoo’s developers.
  • Providing wireframes and code samples in a package with patterns strongly encourages their adoption, because it makes other people’s jobs easier.
  • Designers may find it difficult to browse a pattern library by its titles.  Images are really important to them… perhaps having an option to browse patterns by thumbnails?
  • I noted that it might be useful to document patterns in their simplest possible state, then describe the variations that can be applied to it.  So a slider only absolutely needs to have a track, slide control, and a display of the current value.  To that, you can add tick marks, midpoints, additional slide controls, etc.

IA Summit ’08: Day 0

Arrived in Miami today, and got together with the rest of the Vanguard team.  The preconference starts tomorrow, so this posting is dedicated to pure fluff.

We went to the Mambo Cafe, a Cuban restaurant in Riverside Park.  It was very good and I’d recommend it to anyone attending the conference, but I’ve been told of even better Cuban places nearby.  Guess I’ll have to try those too to make a fair comparison.

Miami Preview

The IA Summit starts next week in Miami, and yesterday I got a sneak preview of two of the sessions being presented by my colleagues. (Don’t worry, no spoilers.)

Michael Magoolaghan is relating his experiences participating in the renovation of a local public library and its website. If you’ve ever complained about having insufficient funds for a project, you have nothing to complain about. It’s remarkable how, with no budget to speak of, they applied creative thinking to achieve research objectives in excess of what you see on many funded projects.

I also saw about 85% of Andrew Hinton’s closing plenary. He’s gone a long way toward clarifying how we should conceive of information architecture’s locus in the broader space of user experience. It’s a really great presentation, and I’m sure it’s going to make a big splash.

My own presentation on extending the gaming experience to conventional UI’s is scheduled for 9am on Sunday the 13th (though there’s a possibility that logistical concerns may push it back to 9am on Saturday). I’m really very excited about it, and I think attendees will find it to be interesting and fun.

Looks like we’re heading into a really great conference!

Whose experience is it, anyway?

The question of ownership of the user experience has been coming up quite a bit in my work recently. I haven’t seen a lot written about this (references would be welcome), but it strikes me as being a fairly important subject with tangible implications for UI design.

I’m inclined to say that under most circumstances, the experience is best understood as being owned by the user.  But designs will often box people in, limiting their freedom to do as they like.

Comparison interfaces are a good example.  Cars.com has what I think is a remarkably well-conceived tool for comparing any make and model of car across various criteria.  I’ll write a bit more about why I think it’s so great in a future posting, but the glaring error is that it sets a hard limit on how many cars you can view at one time.  If I wanted to look at more than four cars at once, shouldn’t I be able to?  Yes, it’ll result in horizontal scrolling, but wasn’t it my choice to allow that by adding so many cars in the first place?  The website’s limitation seem to intrude on my ownership of the experience.

Compare this with BlueNile’s interface, which I think is even more brilliant (ha!) , and another subject for that forthcoming post.  Here, I can add all of the criteria I want to the table: polish, symmetry, depth %, table %, and so on.  The table  just scales right off the edge on the screen.  And there’s a secondary (nearly redundant) comparison interface where I can add just as many diamonds as I please.  Sure, it scrolls and you lose the row headings, but I understood the implications of what I was doing and chose to do it anyway.  Why shouldn’t I have that ability, and judge for myself whether or not it’s the best way of working?  BlueNile’s philosophy is, properly, “You asked for it, here it is.”

This is what I mean when I talk about ownership.  I think that at various times, designers can take too much control of the user experience.  This is good only insofar as it helps me to do what I want; the hard limits set by Cars.com and many other comparison engines reduce that capacity.  I think that sometimes it’s best for the designers to let go a bit, and acknowledge that in the end the experience just doesn’t belong to them.

Flash Design Heuristics

Flash presents a unique subset of design challenges and opportunities, many of which may be unfamiliar to a person who’s long worked in conventional Web UI’s.

I believe that design heuristics work better when they’re more focused to your design medium.  So I’ve put together a set of guidelines, below, to assist designers working with Flash-based applications.  I’ve done a fair amount of Flash design, and these are the principles that have helped me in the past.

Mirror well-established conventions
Avoid presenting interface elements in new ways when established conventions are available.  Rely most strongly on the conventions common to the web, followed by those common to desktop software.  Controls should support all the same behaviors in a Flash interface as they do elsewhere.

Allow user control over progress
The rate of progress should be controllable by the user at any point (outside of loading times).  Provide next and back buttons for serial progression.  Provide a timeline slider and other playback controls for video and audio.  Allow users to cancel self-running interface elements.

Error prevention
Minimize opportunities for the user to make an error.  Eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action.

Readability
Ensure that onscreen text is adequately readable.  Do not anti-alias small fonts.  Bring animated text to a stop to allow users to read it.  Maximize the contrast between text and background.  Avoid overlaying text on busy images that can interfere with the appearance of lettering.

Passive comprehensibility
Users should be able to anticipate an object’s function simply by looking at it.  Users should not have to actively move the mouse cursor over a control to reveal its function.

Avoid downtime
Users have minimal tolerance for unproductive time when using the web.  Do not use splash animations.  Allow users to accomplish something while an application loads. 

Minimal requirement of mouse skill
Assume coarse mouse movement.  Do not punish users for using the mouse as they are accustomed in software.  Observe Fitts’ law.  Support keyboard input.

Provide actionable next steps
Don’t let the application come to a dead end.  If there is an end state, invite users to take next steps.  Allow them to review what they have already seen, modify parameters, provide feedback, link to related information, or access similar applications.  Keep the interaction alive.

Controlled use of animation
Use animation as primary content or to draw the eye to important elements of the interface, but avoid superfluous animations that are peripheral to the user experience.  Do not loop animations indefinitely.  Avoid using animations in a way that may make the interface resemble an advertisement.

Support accessibility
Ensure that users with disabilities can perform the same functions as those without.  Keep download times and processor-intensive operations within reasonable limits.  Computer speakers are often turned off or absent, so don’t rely strictly upon the audio channel to convey information.

Worst Design, Ever

In commemoration of the election season, I’ve recreated the infamous Palm Beach Butterfly Ballot from the 2000 election in a format that’s ready for printing. Regardless of your political affiliation, it’s clear that this is a perfect example of the import of usability in interface design, as Bruce Tognazzini explained in 2001. Is there another usability problem that’s had effects quite so far-reaching?

Something that’s always bothered me about the whole Florida debacle was the general public disdain for the Gore voters who mistakenly cast ballots for Pat Buchanan. In his book “The Nine” about the modern Supreme Court, Jeffrey Toobin writes of Sandra Day O’Connor’s thinking when considering the matter in Bush v. Gore:

She had convinced herself that the root of the issue in Florida was simply that some voters hadn’t figured out how to cast their ballots the right way. In her view, it wasn’t the job of election officials — or the courts — to puzzle over the true meaning of ambiguously marked ballots. If the voters didn’t bother to learn how to vote correctly, the state shouldn’t try to figure out what these hapless souls meant to do.

I think that people in my line of work instinctively cringe at this sort of sentiment because it’s antithetical to our worldview. O’Connor assumes that the user is at fault; our perspective is always that blame rests with the designer for leaving the interface open to misinterpretation.

I’m very heartened that there’s so much enthusiasm among voters this year (interesting times indeed). But the Butterfly Ballot is a cogent reminder that democracy comprises people, processes, and technologies that can break down when we don’t bother to pay sufficient attention to them.

I Love Search Suggest

The first time I saw Google Lab’s suggest function, I spent about two hours just playing around with it. Granted, my idea of fun differs from most people’s, but I really think this is an important innovation in search practices. It’s a great example of a technology that solves a problem so effectively that it’s bound to become ubiquitous.

By now, you’ve probably seen this: it’s a list that drops down from a search box as you type, showing query strings similar to the one you’re typing. In usability testing of search engines that don’t have suggest functions, I’ve seen many users struggling to formulate just the right combination of words that will produce matches for the information need locked up in their heads. Search suggest makes that task easier.

As users become accustomed to selecting suggestions from this list, you can expect that their queries will converge on fewer and fewer phrasings, which will in turn make optimization efforts more effective since people will use phrasings that have already been optimized more often.

I’m not sure who thought of it first, but you’re starting to see suggest everywhere in slightly differing flavors:

  • Google suggest lists queries that other people have tried, in descending order of popularity. That approach makes good sense: if many users are searching for something, it’s more likely that you’re searching for it too. As a result, the suggest function often seems to anticipate what you’re trying to find.
  • Ask.com’s implementation is very similar to Google’s, but lacks the annotation listing the number of results you’ll get if you submit that query. I think that’s unfortunate, because its presence on Google Suggest helps users evaluate the specificity of the search before submitting it.
  • Yahoo’s version matches against words in the middle of the search string, instead of just those that are at the beginning. This seems like a very good idea, because it removes the somewhat unfair burden on the user to type the right words first. But it’s also a more complicated algorithm, and I’d be curious to learn about its reliability.
  • Google Finance’s version may belong in a different class of suggest functions altogether. While it looks similar to other implementations, it’s only providing suggestions for known items in its database. When you submit a suggested string, you don’t get a list of search results; you get a single page for that item. This opens an important question about what the user’s typical expectations are for suggest functions. In this case, the function is promising “these are things for which there is a known match,” but in the cases above it’s just saying “these are searches that other people have tried”. I wonder if that dichotomy causes problems for users.
  • Apple has, as it always does, gone all out and included short descriptions, images, and groupings in its drop-down. Apple mixes known items with search result lists, but moves you strongly toward picking queries with one best answer. It’s an ambitious approach, and I think it’s fantastically successful.

Depending upon the implementation selected, a suggest function can also be relatively easy to build. Given the high ratio of benefit to complexity, I would expect to see suggestion features become more or less standard over the next few years. Let’s say that by mid-2010, your site will start to look behind the times if it doesn’t have one.

If you Love Warcraft, but Wish it Were Nerdier

NASA has issued a request for information for development of an MMO to serve as a training platform for aspiring space scientists. The RFI leaves the details open to the submitters, but suggests that it might make use of realistic physics and chemistry to simulate experiments. While the home page shows a bunch of very young and poorly compressed children, the FAQ sets the target player age as high school through college students.

What’s really interesting to me here is the serious educational goal that NASA’s pursuing. This is more than just trying to show the kids how hip you are; they’re positioning it as a way to learn real science and try out various careers in the field. The website goes further to say:

MMOs help players develop and exercise a skill set closely matching the thinking, planning, learning, and technical skills increasingly in demand by employers. These skills include strategic thinking, interpretative analysis, problem solving, plan formulation and execution, team-building and cooperation, and adaptation to rapid change.

I think that people who play these games know this instinctively, but it’s startling how widely this sentiment is being echoed these days.

Mmm, Love that New Blog Smell

Granted, the world suffers no shortage of personal blogs on interface design (a blogroll will be up soon). So I think it’s only appropriate to start out by stating my objectives:

  • The thematic emphasis is broadly stated as “interface design”, which I define to encompass information architecture, usability engineering, ergonomics, human factors, etc. Platforms to be covered will include the Web, desktop software, games, and wireless.
  • My interests shift over time, which should bring some healthy variety to the postings. Over the past year I’ve been spending a lot of time thinking about website search engines, video game user interfaces, Web 2.0, and pattern development – so that’ll probably be the emphasis in the near future.
  • This is going to serve as a personal journal for me. At various times I’ll read something terribly interesting, only to lose track of it. I’m hoping this will help me to retain those gems, for my benefit or any reader’s.
  • I’ll try to carve out a unique niche… though I’m not entirely sure yet what that’ll be. But my perspective is often idiosyncratic, and I’ll make an effort to offer something new.
  • For the first three months, I’m going to try to put up two new posts a week. I say this only because writing it down will help me stick to it.

So there it is. A familiar experience, with a bit of ambition mixed in to keep things interesting.