Who has Interface Obsession Syndrome? The computing world, that's who. All of it: designers, users, open source software, proprietary software, web designers, web surfers. Everybody. It's a disease.
Last post, I boldly proclaimed (using my proclaiming voice, which makes the font bold and a size larger), "There is not a single thing wrong with a single FOSS program's user interface, anywhere, period." And I expected to get some reactions, and I did, and I'm ready to explain that line.
I'll tell you right now: you're going to disagree with me. This will be one more of those times when you all wonder if I've gone off my rocker, and I will have to explain it again and again, and then a few more readers each time will gradually pick up the idea, until I've reached all that I can reach. But what the hey, you probably needed the intellectual exercise anyway. Here goes nothing:
(1) Before there were computers, before there was technology, there was just humans and nature.
(2) Nature does not listen to humans complain about lousy interface design. It just says "here you go" and we have to put up with it. Imagine all the departments we humans have had to adapt to, without control over the interface: eating, elimination, sex, communication, and dealing with other animals. Sex alone has such a contrived interface, that half of us have to fumble around and even after years of practice we wonder if we have it right. Eating, unless we're talking about raw fruits and vegetables, requires cooking, something none of us are born knowing how to do. Our first acquaintance with a non-intuitive interface as children is being toilet-trained.
A quote:
"The only 'intuitive' interface is the nipple. After that it's all learned." - variously attributed
(3) Then we started making tools and advancing our technology. Making fire is another thing that is non-intuitive. Nature does not install "turn on fire" buttons in the world. We had to figure it out. Stone clubs and knives are limited by their nature - we cannot tweak the interface too much; it needs a handle. The interface to hand tools do not come with instructions and a drop-down 'help' menu. And so on and so forth up through the industrial age.
A quote:
"Those early carmakers were simply lucky, in that they could dream up whatever interface was best suited to the task of driving an automobile, and people would learn it." - Neal Stephenson
(4) Even after computers were invented, for a while yet we did not concern ourselves with the concept of an 'interface'. We used what we could get to work. Those of you who are older will remember those acoustic phone modems, with the two foam cups to set the receiver in, as pictured here from this source:

...and people learned it, too! People learned all kinds of things about computers before. It is quite a shock to see them learning less and less about these devices which are more and more important to them with each passing year.
(5) So, in our modern age we now have evolved computers just about as far any of us can see possible without artificial intelligence, and subsequently we have a new power: for the first time in history, we have nearly unlimited freedom in how to design the interface.
Also for the first time in history (the last ten years, in fact), we have a raging flame war over what's a good interface and what isn't. Don't think for a minute that this is just a FOSS problem. We FOSS users only see the trolls flinging mud at us, because we don't venture outside of our territory very often. Drop by a Microsoft, Adobe, and yes, even an Apple forum - and you will see just as much mud being flung at those companies for their interfaces as well.
(6) Here's the difficult part: what if our whole concept of ease-of-interface was an illusion? What if the interface was just a tree, but it was the one tree blocking our view of the forest? We fasten our noses to the interface, we rage on and on and on about what's intuitive - but there is no universal definition of an intuitive interface! What makes sense to you confuses the bejabbers out of me, and vice versa.
A quote:
"Not only do many babies need to learn to breast feed, but the human nipple is terribly unpredictable. If a baby suckles on a male nipple, nothing happens! Suck on a female nipple, and only then do you get results. A baby could become totally discouraged from the first attempt and stop suckling on nipples. It would arguably be insane to do anything else." - terryblog (emphasis and grammar correction mine).
(7) Let's sit back and take a look at how humans behave. Imagine that you're going to build a program, and you're brainstorming on a notepad. Are you going to write down "TODO: Make the interface as hard to use as possible."? No, of course not. You're going to honestly try to get it as practical as you can. Had you been around in the cave man days, you wouldn't have designed a stone club with a steering wheel and gear shift on it.
(8) In (6), we put forth the idea that everybody has a different opinion of what a good user interface is. In (7) we see that anybody would logically try to design the best possible interface - as they see it. Now, we have a logical conclusion: Anybody's guess as to how the interface is designed is just as good as anybody else's guess! Even the stone club with a steering wheel and gear shift would find a few users - hey, it gives you a secure, two-handed grip!

(9) Now, one more thing - maybe it's also an illusion that we are free to do anything with an interface design on a piece of software. I don't care how many IDEs you build, programming will always require typing text in a programming language. No matter how fantastic Image Magick gets, we'll still want to use a mouse and image screen to draw graphics. And I still haven't seen an operating system interface without the almighty menu. All of these different tasks require giving them orders in different ways.
So we see, after all, that just like the toilet and fire and the stone club and the car and the stove, we actually design the interface to match the task. All that's left are these trivial quibbles over petty details. A waste of time. If we, as a species, never had another meeting or debate about interface design again, we'd be better off. When we perfect artificial intelligence so we can talk to the computer like it was the HAL 9000, we'll all adapt to that interface. Just like we did with the telephone - the button pad was an improvement over the rotary dial - but we had to wait until button-pad technology was perfected! After we did that, everybody went to buttons. No more rotary plastic dial. You see? Every one of us picks the right interface decision to the best of both common knowledge and present available technology at the time of design.
Closing exercises for the reader:
[A] Here is a B-2 Stealth Bomber, as seen from the cockpit:

and here is a tricycle:

The interface on the Stealth Bomber appears to be many times less intuitive than the interface on the tricycle. Why do you think that is?
[B] Imagine that the keyboard hasn't been invented yet, and you have been tasked with its design on paper. Where will you put the keys? What purpose will all of the keys have? Now consider that our modern QWERTY keyboard layout is the most widespread around the world, and yet is based on considerations for the outdated manual typewriter. Given how important many people consider interface design to be, why hasn't the standard desktop computer keyboard layout ever changed? Why haven't new designs, such as DVORAK, seen wide adoption? Which is more intuitive, QUERTY or DVORAK?
[C] Consider all of the spoken human languages there are in the world. Which language is the most intuitive? Which one is the most intuitive one to read and write in?
[D] How many programming languages are there in the world? Can you think of any new ones coming up? Why do we need so many of them? Shouldn't we just pick the most intuitive one and use it for everything?
[E] With cosmetic surgery being all the rage, why don't men have their nipples removed?
_____________________________________________________________ /\ \ \_| _____ _ _____ _ | | | __ \ (_) | __ \ | | | | | |__) |__ _ __ __ _ _ _ _ _ __ | |__) |__| |_ ___ | | | ___/ _ \ '_ \ / _` | | | | | '_ \ | ___/ _ \ __/ _ \ | | | | | __/ | | | (_| | |_| | | | | | | | | __/ || __/ | | |_| \___|_| |_|\__, |\__,_|_|_| |_| |_| \___|\__\___| | | __/ | | | |___/ | | ________________________________________________________|_ \_/__________________________________________________________/
Continued in round two.
12 feedbacksComments:
BUT - there is the implication, (especially strong in your post on FLOSS Trolls) that ALL interfaces are good - equally good! Well, that's how I read it. Again I agree with you, with a minor reservation - esthetics.
As someone with many years experience (sorry, just read your post on FLOSS pundits) I think esthetics do count. I've produced several interfaces, and without exception they were all uniformly so ugly that I keep a paper bag over my monitor.
The sad truth is that a lot of these issues also apply to interface design on consumer electronics. Dunno why those engineers have to mess up best practice though.
;-)
Good job on calling the BS. If more people would consider stuff like this, we could boost the S/N ratio in discussions like these.
Aw, don't be so hard on yourself. It isn't like you deliberately set out to make your programs ugly, is it? What programmer doesn't want their app to look 'K-R4D'? You were limited by constraints like budget, time, and your current skill level.
I know it's an old saying, but beauty *is* in the eye of the beholder. See, even if you're Blizzard, you can be developing the best game you can scratch up and still get critics calling your aesthetic choices 'gayness'.
Let's consider a physical object in the same category as your club: A Japanese katana. :)
The katana's interface is *not* simply the hilt. It's the balance of the blade in regards to the hilt, it's the very slight curve in the blade, it's the blade length and the hilt length, the material used to cover the hilt, the material in the sheath, the precise placement of the guard, and on, and on.
These are not niggling details, they are literally matters of life and death.
This is contrary to your assertion that everyone's ideas are equally valid.
For example, if a swordsmith guesses wrong about how to balance the blade the sword becomes unweildy and slow, and the unlucky owner becomes dead very very quickly.
Fortunately, most program interfaces don't determine if you live or die. :)
But interfaces are more than simply where you put controls on the screen. They involve every interaction between the user and the program.
Use of intelligent defaults is part of the interface. The workflow is part of the interface, the number of steps required to complete a given task is part of the interface.
Correct color usage is important when your user might be red/green colorblind. Having large controls can be important if your user has limited motor skills or limited eyesight (such as an older user). But large targets are easier for *everyone* to click.
If everybody's interface guess is as good as anyone else's then why was there such a demand that Internet Explorer adopt Firefox's tabbed interface?
If everyone programmer's choice is just as good then why has the computing public at large rejected the CLI interface in preference to the GUI?
If every interface choice is equal why not use a "foot" mouse instead of a "hand" mouse? Or "chicklet" style a keyboard instead of a normal one?
If interface doesn't matter then why was the automobile's starting crank replaced with an electric starter motor?
Your point is simply wrong, but it does accurately reflect the view of most FOSS programmers. Interfaces are hard to get right. There are a huge number of details that must work together, and any flaw grates like a nail poking through silk.
I agree that "intuitive" isn't always universal. But some of the travesties foisted on the computing public by programmers ignorant of interace basics are appalling.
"Intuitiveness" really means that it's consistent with whatever you used before. The problem with that is that the programmer can't control what was used before. What he can control, however, is the internal consistency of his own program and how well it conforms to the standards of the platform it was developed for (another reason why cross-platform apps tend to suck on this front).
I don't think Katanas are the only good design. Think of the ninja-to, the wakizashi or even the various European and Turk weapon designs. Or Chinese for that matter
They all adhered to different sets of rules. Personal or cultural preferences if you like.
Each has its advantages and disadvantages.
Still I guess given the choice between time spent on usability when a program is already stable, and time spent on new features. I'd likely opt for new and better features.
Long before hominids learned to walk on two feet, instinct was determining behaviors from simple nipple-sucking to complex territorial definition displays. I'd go so far as to say you can observe the precedents of many human behaviors in some of the simplest of life forms. Even learning, at least in the Pavlovian sense, has been amply demonstrated in creatures as simple as Platyhelminthes, a flatworm.
The concept of "intuitive" is, therefore, not as bankrupt as you seem to suggest. The application of the term, however, has been subverted by a life form far more primitive than Platyhelminthes: the marketing flak.
However, I would posit that since nature has millions of years to experiment, while humans have, at best, decades, there is a significant difference.
I would also posit that there is a significant difference between the underlying technologies. The technology of eating is far more basic than that of downloading an audio stream to be stored in a file for later listening.
Considering these two points, human interfaces need to be:
- Quickly understood, because there are so many of them
- Accurate in producing the desired results
- Efficient, because there just aren't enough hours in the day ([pause] follow the 'human concept of time' tangent [end_pause])
If the word intuitive doesn't describe these requirements, fine, choose another one. But, as examples of previous posters have shown, interface design for human technology is important, it can (and should) be judged based on merit, and it is very much worth the effort to improve interfaces to complex technology.
Other than that, I think you introduced some pretty cool ideas. In fact, I found most of your arguments in support of efforts to make interfaces more usable. You led me to think about interface design somewhat differently than I had previously. What I take away from it is that good interface design builds on existing (possibly the most prevalent, but certainly well understood) ones to keep the learning curve shallow, and only introduces new concepts when the technology demands it.
Later . . . Jim
I recently heard a great quote, but I can't remember who said it: "If diets actually worked, there would be only one." The same principle is at work with what you state. FOSS interfaces are great, especially when they force me to learn something new or shake me out of my well-worn habits/routines/rut. That is one of the reasons why I love FOSS: it keeps my brain nimble.
So, like you, Pete, I poo-poo all those who complain that FOSS interfaces aren't exactly like everything they've used before. Doesn't anyone remember that "... variety is the spice of life?"