Spence Green

التكرار يعلم الحمار

I work at Lilt. In addition to computers and languages, my interests include travel, running, and scuba diving. more...

Archive for the ‘Design’ Category

Interface Design Principles

without comments

Good user interface design is mischievously hard. “Simplicity” is the fad these days, thanks to Apple and indie software teams such as 37signals. But simplicity follows complexity, and wading through complexity requires separating vital things from everything else. Do you think that it’s easy to identify important ideas and fastidiously adhere to them? Stop smoking. Don’t lust. Call your mother daily. Don’t be mean. Simple doesn’t mean easy.

Read the rest of this entry »

Written by Spence

January 8th, 2008 at 4:41 pm

Posted in Design

Reflections on Interface Design

without comments

Like many programmers, I have long considered interface design an artistic activity best reserved for aesthetes who cannot design sort functions. One of my working software theories has been, “Programmers don’t design interfaces. Interface designers design interfaces.” My recent foray into graphical design has caused me to revise this axiom: “Programmers can design interfaces if they study interface design.” This is where I found myself several weeks ago.

During the first week of my research, I petitioned my manager for access to “the User.” After all, “enlightened” interface design teams pity the user, right? Not always. I spent several days building prototype screens and realized that not only did I not understand the user, but also that the user did not understand himself. My current project is a new system that will require new processes, training procedures, and internal organizations. Staffing needs are uncertain. Roles are uncertain. Even the system’s features are fluid. Therefore, “the User” does not yet exist. It occured to me that “Usage-centered design” fails in such a scenario, as observed by Don Norman:

The historical record contains numerous examples of successful devices that required people to adapt to and learn the devices. People were expected to acquire a good understanding of the activities to be performed and of the operation of the technology. None of this “tools adapt to the people” nonsense — people adapt to the tools.

Think about that last point. A fundamental corollary to the principle of Human-Centered Design has always been that technology should adapt to people, not people to the technology. Is this really true?

Frustrated, I called a friend who currently studies design under Norman at Northwestern. As with most leaps into new technical fields, I found that the conventional knowledge was about a decade out of date (a revelation consistent with Steve McConnell’s assertion that software ideas take 10 years or more to percolate from academia to industry). “Activity-based” design is the new model. Activities are user objectives that consist of tasks, which are user actions. Discovering activities and tasks yields insight into the user’s ultimate goals. Good interfaces result from a comprehensive understanding of these goals.

Whether “activity-based” design will survive The Next Big Thing remains unclear. The approach has intuitive merits, for Norman rightly observes that useful tools like pens and musical instruments require educating the user. One can hardly imagine that Les Paul held user forums while developing the electric guitar (possible questionnaire: “Does this device help you shred more?”). At the same time, the concept of activities and tasks falls squarely into the faddish realm of process thinking characterized Enterprise Architecture, ERP systems, and BPM. But a processes are like algorithms, which have been studied for millenia. The salient insight is that most people don’t think in terms of algorithms, but most useful activities require them. With only a hint of elitism, I therefore suggest that interface designers first try to clearly state what needs to be done, approaching the user after the heavy intellectual lifting has been accomplished.

Interface Design Tools that I’m using now:
NickFinck wireframe stencils
UML2.0 stencils
Dimensioning stencils
The Gimp

Written by Spence

December 14th, 2007 at 11:03 am

Posted in Design