UI design for programmers

By anders pearson 31 Jul 2001

yesterday i got my autographed copy of Joel Spolsky’s new book User Interface Design for Programmers. the whole book is available online but i payed for a dead-tree copy from Joel because i like to support authors who make their writing available for free.

<p>i particularly like to support them when the writing is <em>good</em>. Joel&#8217;s book is definately good. </p>

<p>the book is programming language and platform independant; it just describes what it takes to make a program that people will enjoy using. it isn&#8217;t really written as a reference book; you can pick it up and read it cover to cover in one sitting. </p>

<p>highlights:<br />

  • Joel writes with a very friendly, informal tone that makes the book very pleasant to read.


  • he writes from experience. certain other usability pundits have a tendency to make up their own “laws” of UI design without really justifying them. Joel is pretty good about basing everything on examples from his own career as a programmer.


  • the book takes a very pragmatic approach. again, certain other usability pundits like to decree that there is a Right Way to do things and you’re damned to the hottest parts of hell if you ever dare stray from blue underlined links on webpages and similar dogmatic bullshit. Joel admits that it can be helpful to break the rules once in a while and that sometimes other factors can even be more important than usability.


  • Joel clearly distinguishes “usability” from “learnability”. something that drives me nuts.


  • Joel used to work on the Microsoft excel team but treats Microsoft fairly. he rightfully lambasts them for some of the more atrocious crimes they’ve committed against their users, while also praising them for the advancements they’ve made and their commitment to at least trying to write software that does what users want it to.


  • by far the best aspect of the book is Joel’s ability to convey his enthusiasm for UI design. since it’s not a reference book, most programmers probably won’t take too much tangible knowledge away from reading the book. but they will hopefully have their eyes opened to the importance of usability and will have a new (or renewed) desire to actually make usable software.


problems:

  • it was short. only 140 pages or so. you can easily read and digest it all in a couple hours but it leaves you with the impression that he was just glossing over a lot of the material that he could have gone into much more satisfying depth on.


  • GUI oriented. although he at least distinguishes between usability and learnability, there isn’t much attention paid to the design of frequently used software or other UI paradigms besides point and click mouse-based interfaces. i don’t really see this talked about anywhere else though. eg, i still use pine for email, emacs for editing and do a lot of work from the command-line. not because i’m a crusty old unix user who refuses to touch any Microsoft products with a ten foot pole (although that description isn’t entirely untrue), it’s because i use my computer so frequently that the steeper learning curve for more efficiency is a good tradeoff for me. pine does what i need an email program to do and since my fingers have learned all the commands, i can use it without thinking about it or even having to look at the screen. since i’ve taken the time to learn emacs and the command-line, i don’t have to waste time navigating through menus or even locating my mouse to get work done. all i have to do is type ‘emacs’ and i’m set; muscle memory takes care of the rest. i wouldn’t recommend emacs for someone who only occasionally has to edit text; they’d be much better off with a point and click program designed to have a shallower learning curve. but overall, the area of usability dealing with programs that people use frequently and repeatedly seems to be largely ignored. i would love to see a usability book that deals with programs designed for more flexability but with a steeper learning curve.


anyway, go check out the book online and pick up a hard copy if you like it. help support authors who publish online (i’ve personally bought quite a few books that are available online and i’m hoping that more authors and publishers begin to realize that it can actually get them more sales rather than less).