3 Simple Usability Tips For Developers
It takes a lifetime to become an expert on the usability field. Many developers may be interested in creating usable, successful applications. But the entry barrier is sometimes too high — it’s easier to rely on the usability experts than to know about usable applications themselves.
Although I’m really passionate about usability, I really understand that approach: Many of the developers in our company are not judged upon their ability to make usable solutions. They are measured on their skills in Java, .NET or whatever. Also the current Wikipedia page on usability is hard to understand for anyone just faintly interested in the area.
However, basic knowledge of usability can often be of big benefit to most developers. So have simplified and boiled down to these 3 simple statements:
Usability definition
In a simplified form, a usable system is
1) Easy to use
2) Easy to learn
3) Difficult to make mistakes
Easy to use: This is quite subjective scale to an ordinary system. Almost anybody — expert or not — have an intuition about system: Is it easy for me to use.
Easy to learn: You only have one chance to make a good first impression. For relations between people this is common knowledge. But when building user interfaces we often forget that first impression of the system.Was it really easy to use without prior knowledge? Did first-time use of the system require intense training? Do first time users ask questions or look for information the wrong places?
Difficult to make mistakes: Often overseen in the projects I see. There is a tendency to think that users always do the right thing (Push the correct button, do things in the correct workflow order, etc.). Do you remember back when there was no or limited undo in word-processing? First we had the mechanic typewriter. And after some years, Liquid Paper was invented. Today’s common desktop programs all have unlimited undo. Also a few web apps have (GMail is one), but most applications we build for clients still don’t have it.
Developers tend to think that undo functionality will be too complicated. What about transactions that have to be reversed, etc? I couldn’t agree more. Building simple interfaces is a very complex thing.
Consider this example: A missing person is declared “dead” by the authorities. A few years ago I spoke to a person maintaining the Danish Social security database. Sometimes, a person is declared dead by accident.Either the person shows up, or it turns out that the authorities by accident have declared the wrong person dead. To undo that action, I was told, is 100 times more expensive.
All in all
Consider these simple rules and you’re on the right way. This is by no means a replacement for dedicated usability work in the projects. However, it’s a good supplement and can be used instead of exposing non-usability resources in projects to complex words that has value to experts.
Forget using words such as affordance, error-rate, click-through-rate, task-efficiency, contextual inquiry, quantitative and qualitative analysis. Start using the simpler easy-to-use, easy-to-learn, difficult-to-make-mistakes.
More info:
- Wikipedia: Usability
- Justaddwater: Undo — Not Confirmation — End of Discussion (Sep 2007)
- Justaddwater: Save Button Usability Issues (Nov. 2006)
- 37Signals: Google’s Gmail Undo (Sep 2005)
- Wikipedia: Liquid Paper
Technorati Tags: usability, definition
February 11th, 2008 at 20:27 (GMT-1)
Matthew Oliphant posted this lengthy reply on his blog UsabilityWorks: Translating Usability to Dev-Speak
February 12th, 2008 at 15:54 (GMT-1)
The world best system, or inventions, could be from simplest technology… I agreed that system must be simple, easy and available to everyone!
February 12th, 2008 at 15:54 (GMT-1)
By the way, can I have your email?
June 27th, 2008 at 05:11 (GMT-1)
A lot of usability is common sense. The problem is that a lot of developers don’t think about the end user.
August 14th, 2008 at 14:05 (GMT-1)
Usability definition> In a simplified form, a usable system is that which is User Friendly. (It covers all – Easy to use, easy to learn & Difficult to make mistakes) Simply; Think like a user while development.
November 11th, 2008 at 04:04 (GMT-1)
Most developers are too smart and dont think like the level of people using the software. After doing tech support for three years I learned you cant assume anything or you are trying to solve problems and getting asked questions like “oh, you want me to turn the computer on?”
November 13th, 2008 at 07:07 (GMT-1)
I like your approach. I am by no means a programmer, but I have worked with many in my day job.
They all mean well, but in laymans terms, I find it hard to undertand. They typically think very modularly and process oriented, and Im looking for more simple, easy terms to understand!
January 31st, 2009 at 23:28 (GMT-1)
This is a great break down, and your last point hits home. It amazes me when we develop programs, and then think we have all considerations taken care of, the users come along, and find the most interesting things that they do to break things. I am always floored when they find a way to mess something up that we never considered.
February 13th, 2009 at 16:41 (GMT-1)
Thanks buddy for you usable hints and tips! I will help this 3 steps on my blogging carrer.
March 9th, 2010 at 03:48 (GMT-1)
I agree with you. Most employers and their HR departments go by the list of acronyms aka skills. I’ve been asked many times if I know “See number sign” (C#) and how many years of this or that I have.
They are asking the wrong questions. It does not matter much that you know
the syntax of the language if you cannot design UI, database or your back end.