Friday, July 23, 2010

Mental Models: What's In Our Heads?

Yesterday I saw a video of Björk talking about her TV. In it she opens the back of the TV and talks about the little city inside, with a cable travelling up from little houses (really capacitors and such) imagined to be an elevator. She later explains that a poet's interpretation of what's happening inside the TV made her afraid of the appliance, but once she read a Danish "scientifical" book, she could feel comfortable watching again.

Also just recently, I was reading up on mental models in the context of human computer interaction (HCI). Informally, mental models are the pieces of information about the world that we store in our head. We can't store every last detail of the entire world's structure, so we simplify our knowledge down to the basics, and store it in a way that makes sense to us.

Sometimes these models are accurate if not complete, but it turns out that, just as happened to Björk, our mental models can be also be wrong. I believe it is much easier for this to happen with computers and electronics since, for many of us, the way they work is like magic at some point in the macro to micro scale.

For example, before I started university, I asked my then-boyfriend-now-husband Andrew how computers did addition. He started on the software level with his explanation, but my mental model already covered that. It even covered the machine code and a teeny bit about the fact there was some sort of circuitry inside the machine. What it didn't cover was how the circuitry could produce addition results given on/off signals that represented numbers as input.

He couldn't give me a satisfactory answer at the time, but fortunately I did get an answer when I took a second year course on computer organization (it covered programming in assembly and digital logic). There we learned about logic gates, and even had to draw diagrams of those gates strung together to create simple adders. Hurray! My mental model was complete! (Note that, even in this case, not all details are technically covered. I'd have to go much further into exactly how electrons travel through wires and so on to get a 100% full picture. But it was what I wanted.)

Software is an even more abstract beast than logic gates and adders are. Well, I suppose even compiled code gets down to gates eventually, but most people have a hard time even understanding the abstract logic happening under the hood in their programs. That's why they can get so frustrated when the program doesn't work the way they think it should, even if it does exactly what it was designed to do. It's our responsibility as software developers to match the actions and outcomes of our programs as best we can to the understanding that our users will have of them.


Post a Comment

Comments are moderated - please be patient while I approve yours.