The conception, birth, and first steps of an application named Charlie

Subscribe: Atom or RSS

A Word from Joel - Part 1

by Alister Jones (SomeNewKid)

I have come to the point in the development of Charlie where I need to decide upon an interface convention. Without researching the topic, a from-the-heart approach occurred to me which I have named a conversational interface convention. (By the way, I had to name it simply to give the weblog entry a title—not because I think it’s worthy of an official name.)

The plan now is to properly investigate interface conventions, to evaluate any conventions I find, and decide upon a convention for Charlie. I have decided to start with Joel Spolsky’s User Interface Design for Programmers. I love this guy’s writing, and I believe in what he writes about. If it’s not immediately apparent, this weblog is fashioned after Joel’s own website. The pictures of Marilyn that pepper my posts? Inspired by the “break this page up” photos that Joel adds to his posts. The poor attempts at humour? Inspired by Joel’s suggestion that technical writing need not be boring. The analogies to popular culture? Inspired by Joel’s own stories. I’ll never be as good a programmer or as interesting a writer as Joel, but I’m doing my best.

After a funny story about a skinny kid and a blob of dough in a bathtub on wheels (one of which is wonky), Joel arrives at the following golden rule of interface design.

“A user interface is well-designed when the program behaves exactly how the user thought it would.”

It would be easy to dismiss this rule as being so common-sensical that it does not warrant consideration. But you need only look at virtually every bit of software and every website to know that this golden rule is very rarely achieved. So let’s give this rule some consideration. Or, more accurately, let me give you my take on it.

It is my nature to try to reduce things to a few core ideas or values. My brain is wired in such a way that I cannot comprehend great lumps of information. But if I can break something down into smaller units, and see the logic that binds those units, then I can comprehend a complex topic. If you’re smarter than me, you probably don’t need to reduce Joel’s rule into smaller parts. But my brain can only dine on Corn Flakes.

It is my interpretation that a user interface will behave exactly how the user thought it would if it is both externally consistent and internally consistent.

A user interface is externally consistent if it behaves the same way as other programs. Jakob Nielsen promotes this idea very heavily and, while I don’t agree with everything he says, I reckon he’s right on the money about this. If you come up with a completely new interface paradigm, then you’re free to make your own rules. But if you are working within a known interface paradigm, then if behooves you to make your application externally consistent. I think most web applications get this very, very wrong, and I’ll look at specific examples when I review existing web applications.

A user interface is internally consistent if it keeps behaving the same way in response to the same user actions. If a similarly-styled hyperlink sometimes takes you to another page, sometimes submits a form, sometimes executes some JavaScript, sometimes pops open a new window, and sometimes scratches your nose, then the web application provides no internal consistency. Again, I’ll look at specific examples shortly.

So that’s the first lesson from Joel. But class is still in progress…

by Alister Jones | Next up: A Word from Joel - Part 2

0 comments

----