4 ms·
My assorted elderly/older relatives all exhibit the same pattern, and after years of not understanding it, I've finally learned enough about how people learn to
by stevenbedrick 16y ago
My assorted elderly/older relatives all exhibit the same pattern, and after years of not understanding it, I've finally learned enough about how people learn to explain it. Basically, they haven't developed any kind of abstracted internal mental model of what the computer or software are doing, and, as a result, treat it as a rote incantation. To put it in education-geek terms, they're stuck at the first level of Bloom's Taxonomy, and while they have some "knowledge" (where to click, etc.) they have no "comprehension" and therefore don't really know what their knowledge means or represents in any kind of larger context.
As far as they're concerned, each step in their "get my email" checklist is equally important and equally arbitrary. You could literally tell them that, after clicking on the fox icon and going to thataddress.com, the next step is to spin around counter-clockwise three times in their desk chair while singing "God Save the Queen", and they'd believe you- and then, one day when they only spun around twice in their chair, they'd be calling you in a panic to ask if that's why their "internet is broken".
This isn't a matter of stupid vs. smart, or anything like that- it's a matter of learning. Getting past that first step is hard for a lot of people, especially with computers[1]... and, while I'm on my soap box, I gotta say that I'm not convinced that GUIs do a good job of making it any easier (although I certainly can't think of anything that does a better job). GUIs make it really easy to aquire "knowledge" about how to use a program, but they can impair their users' abilities to get past that first step and really understand what's going on.[2]
I think that this is because GUIs sort of imbue the computing experience with a sense of, for lack of a better word, "false concreteness"- they make what are, in reality, highly abstract tasks appear to be very concrete, and let novice users get away with treating them as such... until, of course, something breaks or changes, at which point the user panics: since they don't have any sense of the larger context surrounding their use of the computer (i.e., why they need to click on one button as opposed to another, what the address in the address bar really means, etc.), they have no way of telling what "broke", or whether the changes they're seeing are important or not, and they don't have the mental tools they need to reason effectively about ways to get around whatever problem they've encountered.
Neal Stephenson touches on this subject a little bit in his essay, "In the Beginning, There Was the Command Line." It's more than a little dated, but I actually re-read parts of it a week ago and I'm happy to report that it's held up better than a lot of things that were written in 1999 about computers. Not surprisingly, the things that have held up the best are the parts that aren't tied to any specific piece of technology, but rather are about the abstract concepts and theories underpinning modern (i.e., post-1984) UI design.
[1] Anybody who's tried to teach somebody how to program will tell you that, while students have trouble with syntax and what-not, their bigger problems are almost always related to learning to think about problems in an abstract and generalized way.
[2] Here, I'm not necessarily talking about understanding the algorithms and data structures behind the program- I don't think it's particularly important for most users of most programs to understand the software at that level, although there are some cases where it might be desirable (certain medical or industrial applications, for example). What I'm referring to is the abstract understanding of how the different parts of the user interface fit together with one another and with the task that the program is trying to accomplish for the user- sort of like what Joel Spolsky's talking about in his "Figuring Out What They Expected" essay, but at an even more basic level.
- MWinther 16y agoExactly. Getting a working mental model, even if it's not very exact, does wonders for the ability to experiment. The problem is, most people get an explanation of what the different parts of the computer are, but not a working model of how it works. And here lies the challenge of designing computers that are useful for people without the mental model, and efficient for people with it. Gadgets tend to do one or the other, but accomodating both is a good bit harder.
- powrtoch 16y agoTo me, the interesting thing is that the entire culture of usability seems to be focused on widening this gap. Perhaps the biggest rule of user interface is "the user shouldn't have to care how it works". This extends even down into programming. You bring in a library, you look at the function specs, call a function, and if it works without you having to grok a single thing happening beneath the surface, it's resounding success. The same thing but worse happens at the application level. Of course, good luck competing in a market where you're the only guy trying to (gasp) make the user understand what's going on. I don't even know if I expect the problem to get worse (as interfaces become more and more abstracted) or better (as users increasingly grow up with computers in their lives) as time goes on.
- WingForward 16y agoIt sounds like you're saying users should have a mental model of how a computer works in order to be successful at using it as a tool. I disagree. How does my car work? I press on the gas and it goes. I press on the brakes and it stops. Drive shaft? Carburetor? What's those things? That users can't use a computer is usually, not always, the fault of developers and designers. For example, if backing up is so crucial, why don't computers come with that functionality built in? Why _is_ data storage separate from the application? In the iPad, it's not. And that's a brilliant improvement in computing!
- CrLf 16y agoA mental model is essential to successfully use _any_ machine. You don't need to have a correct mental model of how it works, just a mental model that given the most common input, predicts the output. From your comment, I can see you have a mental model of how the car works. You press on the gas, and expect the car to go faster. You press on the brakes, and expect the car to slow down until it eventually stops. You turn the steering wheel to the right and you know that the front wheels point rigthwards, making the car go in that direction. This mental model allows you to predict the outcome of pressing the gas and the brakes at the same time, and therefore know that you should not do it. You do not need to know the inner workings of the car. You might as well think there are midgets under the hood doing all the work. The problem is that the mental model that most people form about computers is so wrong, that it doesn't predict anything. So they can't use a computer properly. And this is mostly the fault of interface "designers". An interface to _anything_ should allow the user to form a mental model that predicts the outcome of the operations that users will need to perform. This does not mean exposing the inner workings of the machine, but also not over-simplifying and use metaphors excessively. Like I said, the mental model does not need to be accurate, it just needs to help the user do whatever it needs to do.