Top Ten Persistent Design Flaws
jlouderb writes "Bruce Tognazzini former human interface evangalist at Apple, and currently a principal at web design firm Neilsen Norman Group has begun cataloging the top ten design computing flaws that we just live with with, but shouldn't have to. Only seven are found at his article, and (not surprisingly) three are Mac related. My favorite: the mysteriously dimmed menu options. Why are those darned things grey anyway?"
He mentions that computers shut-off without any juice. Not surprising that computers do that. I don't think this is a design flaw, simply because there are things in existence, known as UPS's, that are there to buy you time to save and close everything.
Heh, exactly. #1 complaint I've always heard about Macs? "Oh, you have to drag the disk to the Trash to eject it, that's not intuitive."
Answer? Nothing about computers is 'intuitive' it's all learned behaviour. The fact that people actually whine and bitch about something that small makes me laugh, expecially now that in OS X the Trash turns into the Eject icon when you grab and move a removable disk.
Bruce has always been the ultimate whiner, in and amongst some of his valid critiques, and he still wants a computer to be a mindreading typewriter at the end of the day.
It doesn't mean much now, it's built for the future.
...but you presumably knew you WANTED to remove it.
- open, Apple just keeps the behavior consistent: the user should know they're done using the volume (unmount it) before they unplug it. This has been the behavior for 20 years. And no, I'm not saying just because something has been some way for a long time that it needs to remain, but I just don't see the problem. Not allowing a device to be removed, or "nagging", probably saves a lot of people from fucking shit up before they've properly saved and/or dealt with items on a removable volume, instead of allowing things to be unplugged wholesale. If the user unplugs something at an inopportune moment or with open files, how is the computer supposed to be able to deal with it? Cache up the changes and not tell you? Or tell you that something was removed when it wasn't supposed to be and tell you (and keep that behavior consistent even when you "might be done with it"), like Mac OS does?
What if a user has an open file, and yanks the drive? How does Windows "gracefully" deal with that? Answer: it can't.
You can pull the drive on a Mac, too - the difference is that the Mac will say, hey, you should have unmounted this first...hope you saved everything. And instead of doing something like auto-unmounting-without-nagging-when-no-files-are
As for the above, swap user with driver and you may see my point.
It doesn't seem to include evil applications (or operating systems) that suddenly throw new windows on the screen to grab keyboard focus away from you just as you type something.
You lose your thread of thought AND the computer decides you said "OK" to "do you want to email your credit cards around the world" while you sit there wondering what just happened.
To summarise the summary of the summary: people are a problem. ~ h2g2
On the ASCII sort "bug", he writes dates have to be reversed to sort correctly. No, the correct way to write a date is 2004-11-29, what's the problem. That sorts correctly! ;-)
Item 1; Power failure crashing
In my experience, this affected Macs much less in a brownout situation than PCs. The Macs (at the time, desktop G3 systems) stayed up after a power blink of 0.5 sec, losing no data. I think current Mac OS hardware is more robust in this area, but this is not really a fault of the computer or the OS. No power, no computer worky. Sorry.
Workaround in a mission-critical area: Buy an uninterruptable power supply, petition Apple to make a computer with very expensive (but non-volatile) flash RAM, or use an Apple laptop, which has its own battery that makes it resistant to brownouts and blackouts.
Issue 2: The Dock in Mac OS X.
Grousing. In the old Mac OS 9 days, there was a Dock analogue called the Launcher. It was ugly, and I rarely set it up for users, but it worked. Some people still use it for their Classic apps in OS X.
Workaround: Many, most third-party. Apple's interface, until OS X was icon-centric for launching apps, rather than menu-centric (in Windows Start menu). The Dock is no more perfect than the Start menu, but at least it provides a consistent launcher for common apps, instead of having the user search through folders for the right app icon to launch.
Better: Have installers ask user to add icon for applications to the Dock, which isn't done most of the time, forcing users to search about in the Applications folder.
Issue 3: Dimmed menus.
A bit of a grouse, but logical. Some OS X apps by third parties HAVE shown info in the greyed out menu as to why the option is not available. I believe it is more programming efficient to leave a greyed out menu than to attempt to hide it (affecting where and the order of menus on the menu bar from one moment to the next, which would confuse the hell out of me).
I believe Tog's thought, of adding a special option in a greyed-out menu as to why this command is dimmed, could be useful. Otherwise I think he is blowing the issue up. Of course, the more complex the app (especially with palettes and THEIR commands, the more weight his argument holds.
Issue Seven: Disk Drive Nazi.
Not a problem, at least until removeable drives arrived.
The Mac OS has always been intelligent, preventing you as the user from accidentally ejecting or formatting a disk you are using, including network devices. This is a Good Thing. Compare this to the behavior in Windows, which will still allow you to eject media in use, causing All Kinds of Hell.
Workaround: His point seems more specific to USB and FireWire drives. Unless Apple creates a hardware lock that physically locks a device, preventing the thing from being removed, then there's not a lot to do there, except Apple making the OS more robust in screaming at people to tell the OS that the drive is to be disconnected before they physically remove it.
Vos teneo officium eram periculosus ut vos recipero is.
Bug name: PDF
Duration: 10+?
Supplier: Adobe et al
Alias: Why-is-it-so-hard-to-write-decent-software?
Product: Various PDF viewers, primarily for Windows
Bugs: One: Acrobat kills Mozilla. Two: Hidden "check for updates?" box locks up IE.
Class of error: Poorly written software
Principle: Simple software shouldn't hog resources or kill other apps.
Discussion:
Why is it so hard to write a decent PDF reader? Preview for Mac is fast and doesn't crash anything. And yet Acrobat for Windows (and maybe for Mac--I haven't tried it) is slow, a resource hog, locks up Mozilla/Firefox until the file is done loading, hides its "check for updates" window (without a tab on the XP app bar), and locks up the PDF-viewing window in IE until the "check for updates" box is dealt with.
Agreed, many of his bugs were of the sort "this damn machine can't read my mind". They are good to have around though because if you solve them it could make you some money.
The one I found funny was the continuous save. Computers "used" to do things that way (in the 70's) and if the power went out not only was your in memory copy bad, so was the one on disk because it was saving when the power went down (well back then it was on casette but the damage was the same) and is corrupted. Thats not even thinking about the fact that writing to disk all the time would slow the application down to the speed of molasses flowing uphill in January. This isn't to say that there is no happy medium. I find that 5 minute saves are plenty for me and I prefer them to go into a "backup" file that the application can handle instead of being saved in my actual document.
"You can now flame me, I am full of love,"
Uh, they're grey because they're disabled ?
I'm sorry, I don't understand how this is a design flaw. You'd rather the menu in question _always_ do something? What do you want copied when nothing is selected? Would you rather the menu was enabled always, but just beeped or did something else ( i.e. not the desired action ) when clicked ?
The menu is grey to let you know it can't do anything until some other action is taken. It doesn't just disappear because location/muscle memory is how we remember where that menu is. What would be the better design? How is a disabled menu a flaw, again? You'd rather get a dialog box telling you that you need to do something before clicking here... how could you have known ? Why is clicking "copy" bringing up a dialog box ?
TSFA says :
The software "knows" why it has dimmed the item. Some decision or decisions led to the flag being set. At the same time as the flag is set, the reason why should be made available. If the user clicks on a grayed-out option, the reason or reasons should be made known. And none of those, "Gosh, Oh, Gee, it could be any one of these 14 reasons or maybe something else" messages. The message needs to be intelligent, responsive, and accurate. This one is important. This one needs to be done right.
Ok, so the issue is that you want to know why the menu is disabled. So, which of 20 different on-screen objects do you want a message to indicate could be selected to enable "copy" ? Even if you manage to get the message "right", how useful is the message "You must select something to copy." going to be after the second time you see it? At that point the greyed menu tells me everything I needed to know.
Gee, I wonder why that one hasn't been fixed. Yea, that's a real design bug, right there. Just like the dock, which even my mother-in-law can use, with it's 9 bugs and all...
Now, ASCII sort and reasonably flexible data entry ( aka Bug Name: Let's you save me some work ) now, those are real design bugs. Design bugs which are usually there ( as the article notes ) doe to lazyness of the software designers/creators.
A few of these design problems I can agree with, but IMHO, if you're troubled by a disabled menu, that's a clear sign you don't understand the function of that menu, and you might want to try a menu item that isn't greyed out, like that one labeled "Help".
Heh, exactly. #1 complaint I've always heard about Macs? "Oh, you have to drag the disk to the Trash to eject it, that's not intuitive."
Answer? Nothing about computers is 'intuitive' it's all learned behaviour. The fact that people actually whine and bitch about something that small makes me laugh, expecially now that in OS X the Trash turns into the Eject icon when you grab and move a removable disk.
As the saying goes; the only intuitive interface is the nipple (and even that barely qualifies, some babies have a hard time coming to grips with it). But at least a user interface can be consistent. Dragging the floppy to the trash would suggest wiping the entire floppy disk, but it doesn't do that; in fact, it makes sure your files aren't deleted!
In fact, good graphical user interfaces are user-friendly (to neophytes at least) not just because they're consistent, but because they are modeless - vim is pretty consistant, but not modeless.
I think this is a justified gripe, now matter how easily it is learnt. Other user interfaces might have more deficiencies, and ones that are harder to overcome, but mac ain't perfect either.
SCO employee? Check out the bounty
And in Word it's not a case of 'least used menus'; I'm using word this very minute, and menu items that I've used, seconds apart, are always hidden ('minimal menu' mode for lack of a better or official term). So I'm wasting more time searching for menus than I should, and it's just totally annoying.
AC comments get piped to
Power Failure Crash
This is due to the save file paradigm. Changes only get saved if you tell the computer to. People have long realized this is bad; this is why some programs have autosave. I am all for saving changes continuously - and forking a file if you want to have distinct versions.
The Macintosh Dock
I guess this is more of a personal thing. Personally, I think the Dock is great, although I prefer separate launch icons and open window icons (aligned at separate edges of the screen), a la NEXTSTEP. The Mac doc certainly kicks the Windows taskbar (and imitations') ass.
Mysteriously dimmed menu items
I don't necessarily agree these are bad. The alternatives are removing them (bad because menu structure changes), not disabling them (makes no sense - they are disabled because they aren't meaningful right now), or not dimming them (bad because you don't signal the action is unavailable).
The proposed fix is a good idea, though.
ASCII Sort
This issue has never affected me much. The alternative is is having lots of black magic exceptions to get items sorted the way humans might sort them. To me, it seems these exceptions are hard to deal with for machines, but for humans as well. I don't think it's worth the trouble.
What is good, though, is having proper metadata support, so that we can sort not just by filename, but also by author, project, modification time, etc. Add in a search function, and you don't even notice the asciibetical sorting anymore.
URL Naming Bug
Some browsers already convert spaces in URLs to '%20' or '+'. I think this is the way to go. I'm not sure if stripping spaces (as the author suggests) is a good idea. Does he mean to make "my birthday pictures" internally translate to "mybirthdaypictures"? Why? My filesystem can deal with spaces just fine. Perhaps stripping all spaces after the first (i.e. removing errorneous spaces) is a better option.
Let's you save me some work
So, not accepting multiple formats for the same data is bad. I have to ask why the multiple formats exist in the first place. If we're talking about SSN, library card number, etc. there's always an authority issuing these numbers. Why not use the same format they use, everywhere? If users want to be inconsistent, they must be prepared to deal with the consequences.
The Disk Drive Nazi
I, too, hate that machines don't let me have my device back. Linux and BSD (and probably other unices) can be particularly annoying in this respect. Someone once tripped over the USB cable of my webcam, unplugging it. Nothing but a reboot would let me kill the program (which was in uniterruptible sleep), reload the (confused) driver, plug the cam back in, and start streaming video again. Grrr. Isn't this what exceptions are for?
Please correct me if I got my facts wrong.
While we're administering the beatings for bad UI decisions, there's the pig-froker who dreamed up scroll bars that snap back to their original position if your mouse cursor gets too far away from them during a drag. What was the twisted thought process behind that decision? Oh, the user's forgotten they're using the slider, even though they're ACTIVELY HOLDING DOWN THE MOUSE BUTTON? We need to launch reprisals at them for not keeping the mouse cursor inside an invisible rectangle?
Its all part of MS's policy of torturing their users until they buy "intellimouses" with scroll wheels.
I agree that trashing disks to eject them is unobvious, and would be pretty bad as the primary way to do so. No sane novice would ever figure that out, or be willing to experiment with it.
But that's pretty irrelevant. Dragging the disk to the trash is a quick shortcut for skilled users, but has never been the primary method. The primary, normal method of ejecting a disk has always been the same way you perform actions on other icons: select it, then choose "Eject" from the "File" menu. No voodoo, no risk, no inconsistency.
This complaint is crap. You don't have to drag the disk to the Trash to eject it.
In Mac OS X you can also eject a disk by clicking the eject button in the Finder. Which makes good sense as a UI operation, especially since you "eject" other mediums (shares, usb disk, iPods,
Free Manning, jail Obama.
Example: A post of "Often it is difficult to figure out why certain options are dimmed and under what context they will become active. I don't see a better alternative though other than better documentation..." attached to a story containing the solution of "Make grayed-out objects clickable, revealing what has caused the object to be dimmed and what the user can do about it."
First Noticed: 1996
Proposed Solution: Require the user to read the article. This could be implemented in a number of ways: either the referring home page to the message board should BE the article, or a page between the story and the article should contain some sort of code permitting posting. Or a mod of "-9999999, RTFA" should be added.
Proposed Fix: Make grayed-out objects clickable, revealing what has caused the object to be dimmed and what the user can do about it
Edit -> Undo
"You don't have anything to undo"
Edit -> Redo
"You don't have anything to redo"
Edit -> Cut
"You haven't selected any text to cut"
Edit -> Copy
"You haven't selected any text to copy"
Edit -> Paste
"You haven't copied any text to paste"
Great, one more way for my computer to treat me like a complete imbecile.
If an option is greyed out, it's usually because -- shocking -- you can't use it right now. This is Common Sense. If it's not Common Sense, it's because that application's UI designer made their menus too complicated to begin with, and in my experience software programmers who do that sort of thing would also make their pop-up help even more useless, something like: "This option is disabled because you can't use it right now."
Rule #1 in UI design: if you have to explain something to your user, you're doing it wrong. Or at least you're doing it inconsistently, which is the same thing in this business. I shouldn't need to wonder WHY an option is disabled, at if for some reason I should, it shouldn't be disabled at all.
Kinda ironic the article brakes almost as many usability rules as it points out:
1) No alt tags - you've used images to number your list, yet no alternative text for blind users (or those with images off), this is a very well established as bad usability
2) Confusing title - you say top 10, but don't actually have 10 items on your list, an important aspect of usability is clarity, which your title lacks.
3) Consistency - you've divided each item into sub-sections, yet the sub-sections are inconsistent with from one item on the list to the next. If a sub-section is not applicable, I suggest you add, for instance: "History: N/A," this will save readers scrolling back and forth for a section they might believe to have missed
4) No submission form - You provide an option for people to submit suggestions for your list, yet fail to provide a basic HTML form for them to do this, instead you opt to let them do the work.
There are more, but I'll stop here, since I expect this to be modded down anyway. I hope you see the irony.
If you do continuous save, or any kind of automatic backup saving, you basically need to always save to a fresh file and keep the previous file hanging around until you're sure your new save was successful. Failure to do so will result in the problem you bring up. This isn't a problem with automatic saving as such, it's a problem with faulty implementations of the concept.
I doubt many applications would cause noticable performance degradations these days just by doing automatic saving. Save for a few specialty applications, there are more than enough idle cycles hanging around to do that work while the user picks his nose.
sigs are hazardous to your health
Or another Tog bug, based on 5.
Bug Name: Tog knows nothing about the history of the web.
Duration: Just discovered, but probably years.
Supplier: Tog
Alias: "I'm trying to impress you because I used the web WAY before you chowderheads did."
Product: Tog's Design Flaws list
Bug: Tog's incorrect memory of history.
Principle: "I will spout off knowing nothing about what I'm talking about."
Proposed Fix: Lateral Cranial Impact Enhancer of your choice.
Discussion: Claims to have reported URL space bugs to Netscape in 1991 and Microsoft in 1992. However, Microsoft didn't have a web browser until 1995 and Netscape didn't even exist in 1991.
Bug First Observed: Today.
Observer: Hopefully, the greater part of the Slashdot readership.
Bug reported to supplier: Ha!
Bug on list since: about now.
There are a lot of Windows apps guilty of this. Outlook is terrible. Start it, its splash screen steals focus...switch back to something else while it's loading, then it steals focus to paint its main window...go back to that other thing...and it steals focus again when its done loading all the components inside the main window.
But, to be fair, many X apps do the same crap. Here's one thing about X-Windows (or Gnome maybe) that drives me nuts: Let's say I have four workspaces...I like to use workspace one for Internet-related activities, workspace two is development-related activities, workspace three is productivity-app hell, and workspace four is terminals. Now, let's say I go to workspace one and launch Mozilla...(really any app will do), then, while it's loading, I switch back to workspace two to continue debugging an app while Mozilla loads...then, BING! Mozilla pops on workspace two. Why won't an app stay on the workspace it was originally launched from? Does it have to follow me to the current active workspace?
I would think any app should be smart enough to do two things: (1) know where it is when it's launched and stay there; and, (2) know if it loses focus during start up and NOT re-take it. How hard could that be?
Ignoring his confusion between Design Flaws and Bugs...
1) Power Failure Crash
-- A "Continuous Save" is unpractical. Committing every action to permanent storage, aka a hard drive, would both kill performance and shorten the drive life. It would also increase the risk of hard drive failure during the crash by increasing the likelihood that the drive would be in use.
2) The Macintosh Dock
-- "It's not that the Dock sucks so much as a productivity tool as it is that Apple threw away so many more powerful, useful objects in its favor." So it works, but there were better options in his opinion? You'd be hard pressed to find anything that couldn't be described in this way.
3) Mysteriously dimmed menu items
-- I can see the point of wanting them to say why, but it is very short sighted to say the message must be exact. A much better solution is that in Help, every menu option should be searchable and explain exactly when it can be used and how. (Though I miss the Apple Help Balloons. Heck, now that I think about it I think they worked and could explain disabled Menu Options but no one bothered to fill them out.)
4) ASCII Sort
-- This is a consistent extension of alphabetic sorts, and will likely never change in standard file system listings. The example of iTunes is a specific application with a specific data set, and any application should organize data as appropriate for the use. Part of the point of iTunes IS to organize files in a way that makes sense for what they are, whereas the operating system must treat all file names equally and not make assumptions about what they represent.
5) URL Naming Bug
-- Correct history: filenames didn't have spaces because the early command line parsers separated tokens by spaces. Even today, command line parsers need help either by quoting the entire name or escaping the spaces. (The Apple II worked because the parser was even simpler; every command was only one word and everything afterwards named the object to be acted upon.) The problem with the proposed fix is that the only place spaces are not allowed is in the machine address part; spaces are allowed willy nilly in the directory portion as per the server's setup. There is no consistent way to know whether spaces in that portion should be dropped. While the browser could be written to automatically remove spaces in the first portion doing so in the directory portion would be disastrous for many web sights. Having it do both would seem to be a blatant inconsistency.
6) Let's you save me some work
-- This is actually reasonable, and as a programmer it's a pet peeve of mine that the computer should do the work. It's not always possible though, and sometimes compromises must be made. I prefer if the field only wants numbers it would say so and prevent numbers from being typed without beeping or anything. I think it's a good compromise between getting a clean entry and not interfering with the user, since any spaces/dashes would just be ignored.
7) The Disk Drive Nazi
-- This was a feature. It prevented floppy or system corruption. (The System was on a floppy and could otherwise be ejected.) OS X is much more dynamic in recovering from these incidents, having to deal with USB, Firewire, and Network drives. The incident with the Powerbook described is most likely the result of using a non-Apple drive with a bad driver. Booting from an emergency CD would eliminate. Given the author's history it's even possible he was using OS 9, increasing the likelihood of a driver problem.
8) 9) 10)
Apparently, he's counting in base 7.
R: That voice. Where have I heard that voice before? B: In about 365 other episodes. But I don't know who it is either.
Ok, so the issue is that you want to know why the menu is disabled. So, which of 20 different on-screen objects do you want a message to indicate could be selected to enable "copy" ? Even if you manage to get the message "right", how useful is the message "You must select something to copy." going to be after the second time you see it? At that point the greyed menu tells me everything I needed to know.
This argument doesn't seem very consistent. You're suggesting that the first time you see something and it's not obvious to you, it should tell you so you'll know, but at that point, it's not useful to you. What if someone else is using your computer and has not seen that message? Would it be useful then?
Do you realize that there are more menu items than just ``copy''? I use a lot of applications with a lot of menu items (i.e. Final Cut HD) that will occasionally have something that sounds like what I want, but it's greyed out. Why would I not want immediately contextual information describing what I need to do? Is it really practical to suggest that I pull out the manuals and try to figure out what all is required to use something when I could just hit the brief contextual help?
A more concrete example: I'm in gimp which is giving me the option to scale my image, but not crop it. Why is that? Why can I move this layer down once, but not twice? I happen to know these answers, but it wasn't very long ago that I did not, and it was frustrating to want to bring a layer to the bottom and having gimp just refuse to do so with no explanation as to why (which was added in 2.something...but not on the menu).
-- The world is watching America, and America is watching TV.
Kind of like the fear I get when I hit "Shut Down" on our Windows server, when all I want to do is log out. (Not only that, but you have to press Start to stop the computer.)
Actually, in the early days of the Mac, the rule was in reverse. That is, everything should have been possible without a keyboard, without having to emulate one. Keyboardless Macs were actually common during the 68k era; they were used for kiosks, printing stations, status checking and other tasks which didn't require data entry.
For every user who has trouble manipulating a mouse, there is a user who has trouble dealing with a keyboard. This notion that 2-D manipulators are a inconvenient UI concept boggles my mind; I just don't see how you can use software like graphics editing, page layout, or reality simulation effectively without some form of input from a mouse, trackball, or tablet...
Those who complain about affect & effect on
1. Engineering a solution that is more complex and problematic than the original problem it was intended to solve.
2. Expecting that users will (or should have to) read anything.
3. Expecting that users will (or should have to) possess technical expertise or jargon.
4. Expecting that users will (or should have to) configure it before using it.
5. Guessing or questioning the user's intent.
6. Neglecting to handle all possible failure cases gracefully.
7. Neglecting to save state frequently enough or at all.
8. Pointless rearchitectures (if it ain't broke, don't fix it).
9. Avoiding necessary rearchitectures (you have to break a few eggs to make an omelette).
10. Designing based on your own motives (in-product advertising, etc) rather than on the user's needs.
Moderator hint: a comment is neither "Flamebait" nor "Troll" if it is true.
I have wanted something like that for a long, long time. Somehow the software development world has never seemed to grasp the fact that it isn't the instability of the computer that pisses off the users so bad. It's the fact that when it does crash, you often end up losing everything you've accomplished for the last day, week, month or year. Tell me you haven't heard of or seen cases where a file that someone has been working on for weeks or months has been totally corrupted. It happens. It happens entirely too often. Sure, there's no substitute for backups, but you know you've lost entire files because you just created it that morning and hadn't done your daily backup yet. There are limits to the reasonable usefulness of backups.
If a computer crashed a dozen times a day and then always came back right where it stopped with all open documents fully recoverable, it would merely be an annoyance. Most people wouldn't care that the system was unstable. Those crashes would just give them a chance to stretch their legs for a minute while the computer comes back up. But instead, their computer crashes once every 3 months and they all too often wind up with documents that are completely unrecoverable, or a totally unbootable computer. Half a day's wasted work that must be rebuilt from scratch. That's the kind of thing that makes a guy pick up his keyboard and start beating on his monitor until it falls off his desk. We've all seen the video, and we've all felt exactly like that guy at least once in our computing career.
If someone would just take the time to come up with properly implemented full-data journaling for some common applications, they would make a fortune the likes of which Microsoft has never seen. I don't understand why common data loss is still acceptable. This is the 21st century after all. Computers have been around for half a century. Yet the closest I've seen is Word's auto-save and recover feature, which more often than not seems to fail to recover your file. Many times I've seen it "recover" on line or even nothing from a document that was many pages long. Not cool.
I tried to pitch an idea for application-level journaling on a BeOS developers' mailing list a few years back and got nothing but blank stares. As far as regular users are concerned, it would be the ultimate advancement in desktop computing, yet they (the developers) couldn't conceive any reason you'd want to do such a thing. "Get rid of one of the biggest annoyances of the whole computing experience? Why would we want to do that?"
Oh, well. Maybe in another 30 years, eh?