on March 18th, 2010 by seanw
One of the reasons I restarted this blog is that I’m passionate about user-interfaces. I drooled over the Mac when I first saw it as a little kid, and I’ve written more user-interface and graphics code than most professional programmers have written code. 2-D graphics engines, 3-D graphics engines, window systems, GUI frameworks (several!), I’ve written them all, and some are even still in production today. My college “thesis project” back in 1996 was a C++ GUI framework for X-Windows that had all the fundamentals: Text boxes, buttons, scrollbars, all easy-to-program against, efficient, and very pretty for their day.
When I saw Al Cooper’s About Face when it first came out in 1995, it was a watershed moment for me. It was brilliant, and I was an overnight convert, having already spent years in a summer job teaching secretaries who could barely find the buttons on a mouse how to use incredibly-badly-designed Windows 3.1 applications. I knew what wrong was on a very personal level, and to see right spelled out so effectively to the people who could actually fix it — the programmers — changed my opinion of user-interfaces forever. I’ve since read dozens of books and articles on the subject from a wide variety of authors, and while I disagree with Cooper’s latest assessment that only “professional user-interaction designers” (whatever that means) ought to be allowed to design user-interfaces, I still take to heart many of the core tenets of his original seminal work.
So it pains me to no end when, in my current job, I see people doin’ it wrong.
Not just a little wrong, but epically wrong, the same kind of fail that I battled in all those summers with those crappy, crappy Windows 3.1 applications. Here we are, fifteen years later, and developers still haven’t learned a thing. They’re still making the same mistakes I saw all those years ago, and in some cases the mistakes are even worse today.
One afternoon, after a particularly irritating day of dealing with developers building UIs that lay between awkward and nightmarish to use, I tried to summarize everything I’d learned over the years in the shortest possible form. No big fat tomes for them to read. No fuzzy “make the user feel good” aphorisms that had no connection to real life. Just a handful of simple one-line rules that developers could easily learn and follow. Simple rules that I was already telling our developers every day, just written down, and short enough that they would fit on the back of an envelope. Simple enough that once learned, they could never be forgotten.
From this pain and frustration was born my “Ten Commandments.” Ten rules that, if a developer followed them, would result in Good Software. Ten rules that could be learned quickly and applied easily. Ten rules that would guarantee a Happy User.
And so, without further ado, here they are.
(more…)