Thursday, April 3, 2003

Designing for the Multiple Personalities of Users


"This distinction of Core versus Ring has helped us understand user requirements a lot better than any previous model we had. Over the years since we first developed the model, we've seen patterns in the behaviors of users of core applications:
  • They are comfortable with domain-specific concepts, jargon, and abbreviations. When the application is 'dumbed-down' through the explanation of concepts and jargon, they grow impatient and seem to resent it.
  • They come to the application with established processes and procedures that they aren't interested in revising because the software does it differently.
  • They are willing to customize the software to fit their specific needs.
  • They'll explore the software willingly, trying out features and options, looking for ways to be even more productive.

In contrast, users of ring applications display different patterns:

  • They need concepts and jargon explained in plain language or eliminated entirely.
  • They look to the application to suggest procedures. (For example, Chip wanted the financial software to walk him through the end-of-year closing process.)
  • They'll usually accept all of the application's defaults and standard configuration settings. For many preferences, they'll defer to the application for its expertise.
  • They rarely explore options in the software. If the package doesn't directly guide them to functionality, they're unlikely to discover it. Fear of 'breaking something' constrains their behavior.
...A given application could have two separate interfaces to serve these different types of personalities." [Jared Spool, User Interface Engineering]

ABC has two interfaces: the desktop interface for specwriters, and the web interface (at surveyanalysis.com or on the user's desktop via Radio's personal webserver) for Market Research agency and client users.


1:28:55 PM    

"Never fight code: it'll always win"


"I try very hard not to build up reliance on particular tools or techniques. I hear experienced developers describe themselves as Oracle programmers, or as J2EE programmers, and I cringe: the more experience you have the broader your base should be. So the first trick is to know as many tools and techniques as possible. You don't have to be an expert in them all, but you really should know of their existence, and have an idea of the circumstances in which they could be applied." [Dave Thomas interview, Code Generation Network]

Interesting example of domain-specific syntax in Ruby using 'compile-time' methods (I used a similar technique in Forth for the BT CATI system).


1:00:18 PM