Fog Creek Software
Discussion Board

Useability:: Backward compatability

I have just had a thought after reading some of the posts on previous threads.

I think one of the the things that goes unsaid is that technology tends to not be backward compatible with humans. (bad English, but I'll try and explain)

Kids tend to learn new skill better than adults. How many of your moms can program the VCR? How many actually want to?? The only three buttons my mom is interested in on the remote control are power, volume, and channel!

When you throw someone reared on the slide rule in front of a PC and you expect them to perform miracles, you are asking for a bit much. If (when) they fail or struggle, it is not because they are stupid, or that the user interface is bad. (some are exceptions to the rule though!). Usually it's just a case of it being something they are not used to. Yes, technology does assume a certain minimum.

How long does it take the average person to learn how to drive?? How long would it take {pick genius from pre 1600AD} to learn?? I would say considerably longer for the latter! A wise man once said that the only intuitive interface is the nipple. I agree. Everything else can be taught. The time to learn depends on one's past experiences, on one's willingness to learn new things, and on one's willingness to initially put up with frustrations.

There was some experiment in India where a PC was put in the middle of a poor village. The kids, curious, and with TIME to spend, figured out how to use it pretty quickly. If these kids can figure it out, anyone putting a bit of effort into it can.

If you took the same computer and put it in the middle of 16th century England, it would take them a bit longer. Not only do they have to understand that that it's not magic, they have to learn about a whole lot of things (the alphabet; electricity; keyboard; computers; etc etc) that we take for granted before they can wrap their heads around actually using the tool.

The old adage that everything is a nail to a man with a hammer also holds true the other way. When a man has nails, and is given a new tool, he will use it like a hammer if that's all he knows.

In short, I think folk that teach computers should begin by bridging the gap, and killing misconceptions (no, its not magic). Similarly, people learning should not expect a silver bullet. I am not sure where this desire to master XYZ in 24hrs comes from... it just won't happen.

To expect interfaces to be backwards compatible with someone who just popped in from 100AD is asking for too much.

Computers are hard. Computers are easy.... if you know how.

Monday, November 24, 2003

I do believe that you've discovered the fundamental principle of teaching ;)

I have thought that the primary thing behind not understanding a concept is a lack of background. Or maybe context is a good word for it; I'm not sure.

It seems to me that computer interfaces being comparatively complex, they require a number of concepts. I'm too young to know what concepts, but I'm sure they are there.

An example of this could be my grandmother and her VCR: She likes to tape her Oprah (gah... but that's another debate), but seems to be confused about the VHS tapes themselves. She understands that the show is stored on the tape, but fairly often seems to be confused when it doesn't tape the show because the tape was not in the VCR, or because it was not rewound. She seems to miss the bridge between "rewinding the tape fixed the problem" and "The cause of the problem was that the tape was not rewound, and I need to remember to rewind it next time". I admit, I don't understand this. My guess is that she is missing some small building block somewhere in the recordable media area.

While I was writing this, I was trying to think of a personal example, where I have been confused and needed a little something to make things 'click'. I think it is meaningful, though I know not how, that I can not think of a single time when I have truly been confused. I mean, I very often don't 'get' things, but I just go read documentation and what have you. I don't recall having ever felt as totally out of my element as people I have seen.

I'm not sure this is normal, but I have this suspicion that perhaps the teachers and instructors have the same perspective I do, and can't effectively teach because they don't know what they need to teach. That is, they teach the top level concepts, omitting some farther down that were built upon, which is why they're pupils are often confused by things which seem obvious to us.

In mathematics it is obvious how things build up, and people can see the base concepts. It seems to me that the difference in teaching technology is that it is abstract, and the concepts necessary to use it are not well known.

Well, that's been a fun rambling... Thoughts?

Mike Swieton
Monday, November 24, 2003

Mike... you used the word I was grasping for context.

Each new concept must be taught within the correct context. Without this, it takes a lot longer to learn, and people then tend to learn by rote instead learning by understanding.

<personal example>
I was totally fortunate and had parents that could afford to send me to a good private school. For most intents and purposes, English is my mother tounge. I think in English. I dream in English....

When I speak to some of my fellow countrymen, you can always tell who is thinking in the vernacular, and then translating into English! In learning anything taught in English, it takes them a little while longer (broad generalisation), because not only do they have to learn the subject matter, they also need to translate it into a language their brain understands. The reverse is true for me whenever I try and speak my mother-tounge.

Kids brought up in the digital world will think digitally natively. The older folk think mechanically and then translate this into digital.... and as we all know, emulation is never quite perfect, and one does take a performance hit.

Monday, November 24, 2003

//English is my mother tounge/--->/ English is my 1st language//

Monday, November 24, 2003

I don't mean to be rude, but this is not a new principle. Good teachers and good writers know all about this.

The other side of this is that an awful lot of teaching, writing, analysis and everything in IT land, including CS lectures, is very poor.

Monday, November 24, 2003

Teaching. Exactly.

Instead of a GUI which is simplistic and easy to use, how about a GUI which is quite complex (in a simple and elegent way) but which teaches you how to use it, as you use it? Does that make sense?

The first time you use this GUI you're as clueless as the next person, but the more you use it, the more you learn, and the more powerful things you are able to do.

I think that the reason that Linux documentation is so incomprehensible is that its written by people who reall know their stuff. So its all blindingly obvious to them and they can't explain to anybody else, because they can't imagine how anybody else could possibly not understand.

Perhaps the best teachers are people who have only just recently mastered the subject matter themself.

What Joel says about users not reading is very true, so they'll have to be tricked into learning somehow.
That's the job of a teacher really, to trick the students into learning something.

What do you think are the most important concepts which "users" have to grasp if they want to upgrade themself from button-clicking drongos to something a little more sophisticated?

This is what I've thought of so far:
1. Information
2. Multiple Layers

Monday, November 24, 2003

What do pictures, sound and text all have in common?
They're all made out of information.

Would it be too much to ask from "users" that they realize that a pictures, sound and text can be represented by numbers?

Text is easy, just give each letter and punctuation mark a number.

A picture is a grid of pixels, each with a colour, and  each colour is a mixture of a certain amount of red, green and blue. The amount of red green and blue can be represented by a number, so each pixel has three numbers, then you just specify what the grid-dimensions of the picture are, whether your doing rows first or collumns first, and then finally the RGB number of each pixel. Actually you'll probably need a header in front of that to say that your file contains a picture in some special format.

That's not *really* how a computer stores a picture, but its a good working model.

Its actually quite complicated, isn't it? But I'm sure you could explain it to somebody of reasonable intellegence using lots of diagrams and examples.

The first thing you have to know about sound is that it is vibrating air molecules, then you have to understand about sampling... it IS quite complicated, isn't it? There's actually lots of different ways to represent sound depending on how frequently you sample it, and how fine you make your amplitude scale.....

No wonder people don't understand file systems, they don't understand files, because they don't understand information!

That's probably why your grandmother didn't realize she had to put the video into the video player before she could record Operah. She just doesn't realize that picture and sound can be represented by information, and thus stored on a video tape.....

Monday, November 24, 2003

Most of the time, it are not the limitations of the human that make things hard to use, but the limitations of the technology. And in some cases, the limitations of the designer of the technology.

Humans build conceptual models of the world around them (unconsciously most of the time). Not perfect models, but good enough models for them to work with.
When technology is involved, this becomes a lot more difficult and chances of succes are a lot slimmer, because technology does not follow the fundamental rules that the rest of the physical world adheres to, but it follows the whims of the people who invented or designed it.
And guessing what others might have been thinking when they designed something is not only hard, it is something our unconscious is not used to.

Practical Geezer
Monday, November 24, 2003

I remember when I was 4 years old watching a Play School video in fast foreward and wondering why the actors didn't get tired.

Then I watched it in rewind and wondered how they were so co-ordinated.

I was only four.....

Monday, November 24, 2003

I realise I did not explain the limitations of the technology bit.
Consider your VCR. Naturally, that involves concepts such as viewing and recording, but because of the limitations of technology, it also involves inserting and rewinding tapes.
Modern harddisk recorders remove these limitations and things, if otherwise designed correctly, become a lot easier.

Tools that cover the essentials of your problem domain, without adding accidental complexity (complexity created by attributes of the technology, that are not part of the inherent attributes of the problem domain) are always easier to use.
Of course you still have to understand the problem domain. You can't expect to become a surgeon simply by using the right tools :-)

Practical Geezer
Monday, November 24, 2003

And yes, I realise I may not have explained anything :-)

Practical Geezer
Monday, November 24, 2003

You know Alice, the place for 15-year old, basement dwelling, Linux using, leet haxor males is Slashdot.

At least, that's what you sound like.

Repeat after me - I am 1% of 1%.  Feel leet enough now?

People learn if sufficiently motivated.  The unmotivated learn the bare minimum.  Learning how data is recorded and stored is irrelevent.  It doesn't matter.

Just because you are a mechanic (programmer) doesn't make you a good driver (user).

Quit telling people how to bleed brakes and hone cylinder walls.  They don't care.  Just wash the damn car and fix the cupholder.

Monday, November 24, 2003

My third comment here. Been reading for over a year now. Brave! Very brave!

My 2 paise....

I disagree (to a certain extent) with AJS. Computers are not the main issue. *Computing* is. All (well almost all) "Drivers"  know "Transportation", "Movement", "Displacement". Not that many using IT Technology are aware of "Computing", "Storage", "Communication".

If you really take a survey (and I am making a broad statement based on my own limited interaction) how many of the IT "Drivers" *use* to their full extent real-life libraries, calculators or telephones. And even more importantly, how many actually know the true significance of  Storage, Communication, etc. whatever be the tool that is used, bricks or sand.

Consequentially difficulties arise, since it is now an issue of education and learning. Not of training and tutoring, which is what many end up with. Dare I say, both Users and Developers.

As the "User" does not "think" in terms of "since the answer is in a book that resides on shelves which are present in rooms of buildings which have roads leading to them and therefore are at a distance,  I have to use a vehicle to transport myself from here to the library which means I have to look into the vehicle's requirements as well", but "thinks", "take membership card. insert key. accelerate. stop. take book." I know of many who do not even include "navigate" in the latter.

My take is that while all efforts are to be made by the developer to make it "usable" by the users,

1) The developer must learn a) why b) what and only then c) how

2) The user must learn a) why & b) what. Only the "how" can be excused for the user. He/she *must* know *why* *that* must be done. That training must be imparted or prrferrably that must be learned by them.

Without the above sequence any tuning up of "user friendly" interface will be of no consequence. Seems to me every one is focussed on the "how". when designing for usabilty.

Monday, November 24, 2003

Tapiwa makes a few good points, even if he doesn't realize he's making them.

1. Computers are still in their 1st generation as home appliances, so future generations will become accustomed to them and their conceptual model at a much earlier age.

2. Computers will become easier to use as time goes on and technology and designers understand them better.

Like the automotive metaphor, to use a car when it first came out meant knowing how to change a tire because they often burst, fix the engine because it often broke down, and even how to start the damned thing with that crank.

Today none of these skills are required, so the car has become usable to a wider group of people. Secondly, the basic concepts of powered motion, gas pedal, steering wheel, and brake pedal have entered into the common conciousness.

So there's a gap between the user model & the function of the product in question (car, vcr, computer). The users don't bridge the gap alone, the designers of the product are also working towards making the product easier to use to make their product accessible to a wider range of people.

Too bad that by the time computers become something we've been raised with, nobody will be around who remembers a time before computers (well, I guess when I'm 70 I can think back to when I was 5 in 1980), so we won't be able to really test whether or not the new "automatic transmission" computers really are easier to learn if you have no computing background whatsoever.
Monday, November 24, 2003

Huh. it seems I just said what KayJay said.
Monday, November 24, 2003

Alice said "how about a GUI which is quite complex (in a simple and elegent way) but which teaches you how to use it, as you use it? Does that make sense?"

That is the ideal interface in my opnion, and what I strive for. Easier said than done, of course, but I have found a few techniques that help accomplish this goal (all of which have been stolen from various other sources):
-Widgets (buttons, listboxes, etc.) should have one and only one function; and operating the widget (clicking the button, changing the drop-down list, etc.) should have a DIRECT result that can be seen by the user. In this way, the user doesn't need to read a manual -- they can just click buttons and see what its direct and visible impact on the screen in front of them is. This of course can have some dire consequences with certain functions, which leads me to the next point:
-ALWAYS allow the user to Undo! Without the ability to easily undo things (or at least cancel a batch of changes), they will not feel comfortable experimenting with the user interface. Many users I have worked with will get to this point where they don't feel comfortable making changes because they are unsure of the consequences of their actions, and instead of reading the manual, they will simply avoid using that interface feature altogether!
-Be consistent across your application, use the same terms and/or pictures to label things. Over time, the user will not have to think too hard about what does what (I believe Alan Cooper refers to this as "canonical vocabulary"?).

Anyone else have other UI design tactics for achieving this goal of a "self-teaching" interface?

Jordan Lev
Monday, November 24, 2003

Isn't that a summary of Donald Norman's book The Design of Everyday Things?
Monday, November 24, 2003

*  Recent Topics

*  Fog Creek Home