Creating good software is as much about presenting users with an attractive, usable interface as it is about data and functions. The challenge for software developers is determining exactly what an attractive, usable interface consists of for their particular application. I have been living this concern now for the past six months.
As those who have been following along may remember, I got the bright idea last year to launch an internet application. My goal was to build this myself—mainly because I wanted to update my development skills and learn new technologies. While I am perfectly comfortable writing code, interface design is not something I have studied nearly as much as algorithms and coding practices, which, of course, makes creating a web application somewhat problematic. However, my project is more about understanding modern software tools and development techniques than it is about earning a profit (at least for now anyway), so lately I have turned my attention to interface design.
Believing that an intelligent person can learn just about anything from a good book, I set out to find one. Jackpot! Designing Interfaces, Second Edition, by Jenifer Tidwell is exactly what I was looking for. Obviously, reading the book will not confer PhD-level human-computer interaction knowledge, but that isn’t what I, or most developers, need. What is needed is a book that takes design seriously and explains the important concepts in an accessible way, which is what Tidwell does. I looked at a range of books, websites and other resources before buying this book, and I feel I made the right choice.
Chapter 1, What Users Do, has so much useful information that it alone justifies buying the book. The chapter provides an overview and a brief explanation of 14 common behavior patterns exhibited by users when interacting with applications. Reading through the descriptions, I found names for the annoying things that applications do (or don’t do) that drive me crazy. Here are the behavioral patterns Ms. Tidwell discusses with her one-line descriptions.
|Safe exploration||Let me explore without getting lost or getting into trouble.|
|Instant gratification||I want to accomplish something now, not later|
|Satisficing||This is good enough. I don’t want to spend more time learning to do it better.|
|Changes in midstream||I changed my mind about what I was doing.|
|Deferred choices||I don’t want to answer that now.|
|Incremental Construction||Let me change this. That doesn’t look right; let me change it again. That’s better.|
|Habituation||That gesture works everywhere else; why doesn’t it work here to?|
|Microbreaks||I am waiting for the train. Let me do something useful for two minutes|
|Spatial memory||I swear that button was there a minute ago. Where did it go?|
|Prospective memory||I’m putting this here to remind myself to deal with it later|
|Streamlined repetition||I have to repeat this how many times?|
|Keyboard only||Please don’t make me use the mouse.|
|Other people’s advice||What did everyone else say about this?|
|Personal recommendations||My friend told me to read this, so it must be good.|
I hate software that doesn’t support more than a few levels of Undo/Redo (safe exploration). Ditto for applications that erase my form entries when I go to new a page, change my mind, then hit the back button (changes in midstream). This has become a real sore point recently because one of the bibliographic databases used to create the citation lists for the clinical workflow and architecture/design pages clears checked citations when the searcher moves to the next page of results. Consequently, one has to save each page of results separately—absolutely irritating!
Just about everyone has run into habituation issues. One of the Petri net software tools I evaluated had such odd key/mouse combinations that I deleted it with extreme prejudice.
The value of these 14 patterns lies in the fact that they are easily applied across domains, and anyone who has used a computer immediately groks what they mean. They strike me as a great tool for teaching end-users how to describe either what they dislike about an application or how they want a feature to work, which might make for far more fruitful interactions between EHR users, trainers, and support staff.
As for my project, it is coming along nicely. The interface was the last major item that required more input, and Ms. Tidwell’s book has served this purpose nicely. Based on what I’ve gleaned, I am redoing the wireframes for the main functional module with a particular focus on safe exploration, instant gratification, and satisficing. Well, I found a good book–hope the rest of that aphorism holds up.