Today I performed an application review from a usability and functionality viewpoint. I had about 1.5 hours to go over a not-so-big site (actually, 3 pages developed in JDeveloper. Nothing to do with .NET in this post, folks.), and after that I was to give my conclusions about the usability of it.
My hosts were quite surprised when I came to them with about 50 problems I discovered. When we started going over them one by one, I discovered that there was something common with most of the problems: They were caused by developers thinking like developers, and not like users.
I know this is a well known (sad) fact, but this case was an excellent demonstration on this issue. I think there is not enough awareness to this subject, and a lot of times, when a newbie joins a developers' group, he is taught about programming principles, OOP, SOA, and some more fancy buzzwords, but almost never told about usability principles, which can be summarized to: “When you develop a web page, try to do it from the user viewpoint, and not yours.”
Let me give you an example. In this site, there were some date fields. The date should be typed manually into it (a problem in itself), and if the entered date format is incorrect, an appropriate message will appear. The message, in this case, was (translated from hebrew):
“The date format is incorrect. Enter valid format: dd/mm/yyyy”.
Now, maybe for you, the english readers, this looks fine. But the system is hebrew one, and the word used for “format” was, well, “format“. The developers knows that “format” in this context means “pattern”, but the ordinary user may think he should format his HD in order to correct the date!
And the “dd/mm/yyyy” is also not in place. We, “the strange guys who know computers”, understand immeidately what it stands for, but try to ask your mother or father about it.
You may think I'm exaggerating. Well, take a look here, and think again.