I’ve spent a number of years working on the usability of software, firstly as a tester attempting to use software in the way that our users do, then as a usability practitioner, and now I’m still looking at the usability of the software and associated documentation for the project I work on.
I tend to find myself usability evaluating many of the things that I use everyday. This is everything from software, web pages, gadgets and technology. But even simpler things like packaging and labelling on food or other products that I might buy. You might think this is a little sad, but I think its a little less sad that one of my geology lecturers who used to go around with his nose pressed to pavement slabs to see what they are made from. And no, I don’t do that (not quite!)
Doing this subconscious usability evaluation, I generally use myself as the subject. I am a regular ‘dumb’ user. If I find something difficult to use or not intuitive, then I think it’s a fair assumption. This is based on the fact that I am an experienced user of stuff, be it software, web sites and things I might generally be inclined to buy. I have two degrees, so I’m not lacking in the ability to learn and understand stuff too. Of course, I’m sure some of my more technical friends might not agree. 😉
I think there are two problems with some technical people designing and developing stuff to be used by actual users in the real world. And I have to say this is a generalization. I do know some very smart, very technical people, who also have an excellent understanding of their users, and of usable design. But I also know quite a few who don’t seem to!
One problem is obviously a lack of user focus. If you concentrate on how to make something work, its easy to lose focus on the ‘who is using it?’ and ‘how are they going to use it?’. Often it seems that ‘what does it look like for the user?’ takes second place to ‘how am I going to implement this?’. The second problem I think is that developers make assumptions about exactly how much knowledge and understanding the user might have. There are assumptions that if I know it, therefore my user will know it or understand it. This is flattering to the user – obviously my user is smart, knows exactly what they want to do, and has a lot of knowledge around the subject, so that they can work out what they need to do for themselves. My user knows what I know. Ouch, that’s dangerous! The focus is on providing the function – not actually in helping them know what they want to do, and the steps required to do it without any errors being made.
When our testers find problems a developer has the option to send back the problem with an answer of ‘user error’. So the software isn’t broken. But then the user shouldn’t be able to do something wrong. This might often tell you that there is a usability problem here. Why did the user get it wrong? Was it because something in the documentation was wrong or not clear. Was there a problem with the interface that allowed the user to do something they shouldn’t, for example the user was able to choose a set of options that weren’t valid when combined together? Chances are real users will do things you don’t expect them to. Traditional testing often does what the developer expects the user to do, and therefore misses some of these usability issues. A dumb user will try and use stuff the way they want to, based on previous experience and their own assumptions. And the won’t have all the info you expect them to have. They don’t know the same as you. I don’t think there is such a thing as a dumb user.