The Principle of Least Astonishment suggests that a system should operate as a user would expect it to, as much as possible. In other words, it should never "astonish" the user with unexpected behavior.
In your experience as the "astonishee," what types of systems are the worst offenders, and if you were the project manager, how would you correct the problem?
Bonus if your answer describes how you'd retrain the developers!
The original Macintosh computer did not have a button to eject the diskette. Instead, you were supposed to ... drag the diskette's icon to the trash.
Hijacked focus — an astonishing misuse of multithreading.
iTunes is an example. I close iTunes and start typing in another program. After a delay, iTunes puts up a little window that says "Saving iTunes library." Besides being totally pointless, it steals the focus from what I'm doing. So in frustration I press Alt+Tab to get back to what I was doing. But if the offending window has disappeared in the meantime, then I actually Alt+Tab away from the window I want, meaning that at this point one or two more Alt+Tabs are required to get back, but you can't tell, because iTunes is now completely invisible... and so on, ad nauseam.
It's even worse when the window that pops up presents a dialog with a choice, and keyboard shortcuts, because I can inadvertently select something I didn't want, or indeed know that I'd chosen.
The entire OS X UI. I see an Excel window, but when I click Opt-S I get an error because Finder was the (INVISIBLE!!!!) active application. Or I click on Firefox in the Dock, and then I can't find my window because I actually had two Ffx windows open and the Dock only shows me the top one. Or I need to move the left edge of a window and I first have to make it smaller, move it, and then make it bigger again. Or when "Maximize" only makes the window as big as the window thinks it should be. Or when I sort by date in Finder and the file I just edited is half-way down the list surrounded by files with week-old dates. Or when I open up finder for the umpteenth time and I have seven skinny columns that I have to resize AGAIN so I can see the whole filename. Or when I look at my clear keyboard full of the crumbs of the person who had the Mac before me and think "Are Apple engineers allowed to eat near their computers? Yuck!" Or when I hit the "End" key and it just shows me the end of the file, without even moving the insertion point. Or when I double-click on the title bar and the damn window disappears instead of getting bigger. (That one isn't really Apple's fault though, it's just my habits.)
Or when I complain about the Mac on the Internet and all the fanboys scurry out of their animation studios to tell me that I clearly don't understand why all of these annoyances are because the Mac is just better.
(I'm not even sure this post is still on-topic, but boy did it feel GOOD!)
Copying a large set of files in Windows and getting an error part way through. A dialog pops up telling me something failed, then the whole copy operation dies. So which files got copied and which didn't? How am I supposed to recover from this?
Worse is when you do a move.
I found this cool community-driven website once. I went to sign up, but it wouldn't let me, instead demanding that I go off and get something called an OpenID.
I left, completely baffled.
Having to press Start
to stop the computer. Then having to choose Shut Down
to restart or put it to sleep.
It's so commonplace we don't realize how astonishing it is.
sysstart stop
. (I'm too lazy to rename it to syscontrol or some such.) - Jon Ericson
Alt + F4
the Desktop or Taskbar. From a command prompt you can even shutdown.exe
. - Hugh Allen
Outlook takes Ctr-F to mean forward rather than find as all other Microsoft applications do. (F4 is find in Outlook).
<PgDn>
? I agree that in Windows you should obey their conventions but in *nix <C-f>
is usually easy shortcut to page down. - progo
In Windows XP, when you connect to a wireless network that's password protected, you have to enter the password into a password field, so you can't see what you're actually typing (very fun when entering a 26 digit hex password for a WEP network.) Then, to make things even worse, you have to enter the same password again! Why do I have to do this twice??? I'm entering a password, not changing it!!!
Hyperlinks which you can't click unless JavaScript is enabled!
I'm sick of "Prev/Next" links which do nothing if you click on them. I'm sick of "page X of Y" links which mock me for having JavaScript disabled. I'm tired of Web forms with form buttons which don't do anything without JavaScript.
Many times they do this for an "enhanced" experience I don't want embedding tracking information which is unreliable anyway. Yes, it will likely cost the companies more money to develop sites which work fine without JavaScript and I can understand that, but breaking hyperlinks? That's f'ing ridiculous.
Well... when an unexpected behavior fails to astonish the user because it does not manage to display itself... that's astonishing ;)
When attempting to perform a search in Windows explorer under Windows XP you are presented with a dog and a completely broken search feature (a metaphor perhaps?).
You then carefully click your way to enable "proper search", but before you can get to it you have to wait for the dog to turn around and waggle its ass at you.
That is pretty astonishing to me.
There are some applications out there that can't seem to stick to the OK-Cancel-Apply rules. Once you realize that pressing OK didn't save your changes, it throws your whole system of beliefs into question. I've watched as people press apply and then OK in my apps, and have told them they don't need to do that. They assure me that's not the case.
How about the Windows "Use the web service to find the right program to open this file."
It's bad enough that it's in there, but what makes it so much worse, is that it's the DEFAULT!
When Windows Automatic Update asks if you'd like to restart now or restart later. And then keeps asking every few minutes. I think to most users selecting "Later" means "at a time that I will determine" not "possibly in a few minutes, why don't you check back then?"
net stop wuauserv
is faster to type - bdonlan
Focus-stealing dialog boxes from the non-foreground application. If you're in the middle of typing something you can trigger one of the dialog box buttons before your brain even has a chance to register.
The worst has to be the Windows Automatic Updates background install. Once the updates have finished installing after a non-deterministic period of time, you get a dialog prompting you to restart now or later. The number of times I've accidentally rebooted my machine in the middle of a complex task...
I only recently learned (on OSNews) that in MS Windows, one can select multiple windows (with CTRL) in the taskbar and have them tiled horizontally or vertically on the screen. I was looking for that feature for a long time (and it was there all the time from Win 95 or so) and I am missing it a lot in Linux (KDE nor Gnome can do this).
So, for me, unadvertised existing features of programs are the most astonishing (on the other hand, bugs aren't).
I can't remember the app, but I'd already spent quite a bit of time entering a lot of information into a form when I accidentally hit the Escape key. The app thought I wanted to cancel my actions and displayed a dialog worded something like: "You are about to cancel this activity. Do you want to continue?"
Would you have pressed the "OK" or "Cancel" button?
Note: the dialog was modal, so copying my work to the clipboard was impossible.
The dialog box you get when saving an Excel spreadsheet as a CSV file. It took me nearly 2 years to get used to hitting "No".
Mysql. Repeatedly.
For example by default string comparison is case-insensitive. Constraints are not enforced by default, even with InnoDB. "Grant all" does not grant all rights and so on...
Yes, Im new to mysql with years of experience of other databases, but mysql forces me to learn "new things" almost every day.
Everytime I open Lotus Notes 6.5 I'm astonished. There's a UI design violation round every corner too numerous to list here.
When your software does have an "unexpected behavior", it is bad enough... But when the developer did not respect a "professional language" policy, it starts to become embarrassing.
As a project leader, I would include in code review the control of all GUI displayed messages, and not just about typos.
Bonus to Olaf [1] (see comments): he has correctly recognized the eclipse CVS dialog Box [2] ;)
[1] http://stackoverflow.com/users/13447/olafPoor performance is a huge source of astonishment for me. Applications that become non-responsive on seemingly trivial operations and even slow operating system-level tasks drive me batty.
The windows LAN icon in the taskbar is by default nice and visible when you're connected. Let's say you need to disable then re-enable the connection (networks problems, whatever), so you double click it, which brings up a dialog. You disable the connection - and the dialog and the icon disappear. Very annoying. Yes I know you can force it to remain there all the time, but it's a pain when you're working on other people's PCs
Underlining text on a web page that's not a link. Grrrr.
This is an old question, but I'll add my 2 cents anyway.
Even in the latest version of Windows (I've got 64-bit Server 2008 SP2), it's still not possible to drag taskbar items to rearrange them in an order of my choosing. I'm stuck with them in the order in which they opened unless I install an (excellent) third-party app: taskbar shuffle [1].
Considering the lengths Microsoft go to to allow me to customise every other minute detail of my operating system, it beggars belief that this feature is not yet standard.
[1] http://nerdcave.webs.com/For a C++ developer, I was most astonished when I ran my program on another machine for the first time. It immediately said:
"This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem."
The application configuration is incorrect? That's funny, I don't remember writing code to show that message box. How do I even begin to diagnose the cause?
It turns out this message means "The Visual C++ runtime DLL is not installed. Please install version 9 of VCREDIST.EXE from microsoft.com or, if you are the developer, link statically to the CRT library."
Often developers will test their application on their computer, in their environment.
But they might forget to make some tests in a "real" environment, which can leads to... some surprises!
So as a project leader, I would train them to properly setup clean testing configurations, for avoiding having that kind of "System Check" displayed in front of a customer!
My husband uses some inhouse stuff. He has to enter a bunch of data on a form, including some long mixed alphanumeric strings, similar to GUIDS, something really easy to enter incorrectly. I don't think there is a copy/paste option. He presses SUBMIT.
If there is an error, then a bright red screen comes up and says there is an error in input. It doesn't say what the error is, what field, or show the incorrect value. Then, it goes back to the original form, with ALL fields emptied, so that the hapless user can re-enter all of those fields again.
Correcting the problem would be easy: give a nicer error message on the offending fields (after submit, if fields are related to each other), and don't clear out anything.
How to retrain the programmers? I'd suggest using a rack, because torture does seem appropriate.
I was surprised (and annoyed) when an electronic teller wanted me to enter the dollar amount of my transaction before asking which account I wanted to use.
Could've been avoided by asking the developers' parents (or anyone not involved with the project) to use the machine before it went live. I explained the problem to the bank manager, who agreed.
I was further astonished to find that, the very next time I visited that machine, it asked for the account before the dollar amount. I'm guessing the project manager has an account with that bank. :-)
When you use a Master password for Firefox (3.6), a dialog box will pop up requesting your master password prior to automatically using any stored passwords.
This is great, except for one tiny little thing - it always has a flashing caret, even when it doesn't have focus.
This has meant that I have been bitten several times by looking at my screen, noticing the FF master password requires input (because the caret is flashing), and typed my password into, say, an active MSN conversation. The first time, I actually sent it to a colleague (because I type my password pretty quickly).
I can't think of a general concept that might describe this UI failure, except maybe don't flash at me if you don't want me to put something inside you
Applications that move the mouse to 'help' you.
Office 2007
The top answer about Macs not have Floppy eject buttons reminded me of one design that was clearly the most astonishing for me. It was actually a hardware design, but it was on a computer, so I think it counts.
It was on one model of Macs put out in the mid-1990s, which I can only assume was designed specifically to annoy PC users.
Like all Macs, it didn't have a floppy eject button. It did however, have a button on the case. It was thin and protruding and right next to the floppy, so it look exactly like a floppy eject button.
It was, however, the power button.
You go to eject your disk, and suddenly the power shuts off!
On a keyboard with German layout, you hold down the right "Alt" key (which is the first key right to the space bar, mind you) and press "Q" if you want to enter an "@" sign.
Now, I have lost track of the number of web forms that I had to fill out twice (or even thrice!) since I got my first MacBook Pro last summer. Whenever I get down to the "your email" field, my browser window will just disappear while I type in my address...
Could be that you must come from Germany and be switching from Windows to Mac to truly imagine what that feels like.
Windows Updates that restart your machine at 3 AM by default.
Annoys me to no end, especially because my wife blames me and asks me why the hell did I restart her computer without asking with all that useful IE windows opened that she did not save links for.
Yes, I know how to configure it, but I would prefer applications not restarting my computer without by permission by default.
How's this for an error message:
In windows it is quite hard to write an application that jumps to the foreground and takes focus. Instead the applications icon will flash on the taskbar, something that is both nice and useful. But. Some applications still manage to pop up and take focus, usually when I am very focused on a task. I have noe idea how many colleagues have received parts of my code as response in Msn messenger for example. A horribly annoying feature!
I was astonished by the language in this infamous debian bug [1].
It amazed me more as I read the arguments in the post for why this should/should not be dealt with as a critical patch or just leave it.
[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477454Just today I needed to clear the Event Log on a Windows machine: from the Start Menu
, open the Event Log Viewer
, right-click Application Logs
, click Clear
from the context menu, click Yes
on the confirmation dialog ... and then choose a file name!?
Whoops — the "confirmation dialog" didn't ask whether I wanted to clear the log; it asked if I wanted to save the log.
No more clicking in my sleep!
Websites that complain about which browser the visitor is using. Developers to read " Viewable With Any Browser [1]".
[1] http://www.anybrowser.org/campaign/index.htmlWhoever thought a generic user would be able to figure out how functionality parcels out into menus that are variously named
/Preferences
/Quick Preferences
/Advanced (various)
/Appearance
/Administrative Tools
/Accessories
/Computer Management
/Control Panel
/Properties
/Details
/Folder Options (and to set file extension handlers?)
/System
/Start
/Set Program Access and Defaults
etc. etc.
Various MSC files you need to "Run...", all free from intuitive names:
gpedit.msc
compmgmt.msc
dsa.msc
domain.msc
dssite.msc
lusrmgr.msc
secpol.msc
From experience working in tech support. The worst offenders are programs that unintentionally "hide" important information from the average user.
One example: Microsoft Outlook with Exchange being in offline mode or not connected.
I don't know how many times I've gotten calls from people wanting to know why the last email they'd received was xx days ago. While anyone who's used Outlook for a period of time knows that there is a status bar in the lower right and that multiple ways to see if you're connected, new users don't. I've run across other applications like this but can't think of them off the top of my head.
Visual Studio (even 2010) In Memory Save. Sorry, but Saving something to Memory, is not Saving anything at all. If I modify something and want to Save it, I really really want it to be persisted to something outside of the program. Just get rid of this "feature" and don't ask me this question again.
Along the lines of UI stealing
If the window doesn't have focus, it shouldn't have a blinking caret. I have multiple monitors with multiple windows open. If something pops up with a blinking caret, then I fully expect whatever I type to show up in that box.
My MS keyboard has buttons like "calculator" When I specifically press that button I want it to come up front and center and allow me to start entering numbers. Vista, for all it's failings, worked just fine in this manner. 7? well, they went overboard with a complete lack of focus.
If I AM TYPING, then don't erase what I just typed. IE 7/8 I'm looking at you. When I start IE and start typing in the address bar, if I'm not fast enough, the browser will wipe out the URL I just entered.
If I AM NOT TYPING, go ahead and show that security warning dialog so that I can "approve" the install that I already "approved".
Other things:
I don't need to click Next on 8 screens worth of crap to install something. I think running the installer, clicking a simple "Install Now" button or whatever should be a sufficient deal. Having a Splash screen, terms agreement, are you sure, here's what we are going to install, are you really sure, click next to actually install the program, etc.. screens are way too many. Just install it already.
As others have said: ambiguous error messages. Either give me the real details or have a little button to press which will give me the details. Telling me to contact the system administrator (which is usually me) is unhelpful. And by details I don't give a crap about error -201001203. I do care about "Have your administrator give you XYZ rights to perform this action."
One more - in IE if you save a complete web page (using Save As->Web Page, Complete), you get both the html file itself - say index.html
- as well as a folder called something like index_files
.
Now, later on you decide you only want the html document, so you casually delete the index_files
folder in Explorer. Only, wtf?! The index.html
file disappears!
Yes this really happens. You delete a folder, and what looks like a totally separate file gets deleted along with it. I cannot think of any justification for this behaviour, and it's the only time I've ever seen something like it happen, ever.
From memory the same situation occurs if you save a Word 2007 document as HTML.
Web forms that allow submission from a multi-line <textarea>
field by pressing enter/return. This is totally unexpected behavior and there's never any warning.
At some point, Stack Overflow implemented this. It wasn't always the case. In the past, blank lines would be converted to a space. It was astonishing then (especially as the comment form's subset of Markdown isn't the same as the question/answer form's implementation), but it's much more astonishing now.
Before going out I programmed DVB Viewer [1] to record a show for me, then to save CPU (and tuner card wear) I de-selected "Playback" on the View menu (the program is in TV-viewing mode by default). When I returned home I found the recorded file (for a 1-hour show) was 8 bytes long. So apparently "Playback" is necessary for recording, and if you have a scheduled recording and disable playback, the program won't warn you :-/
EDIT: I may have unfairly criticised DVB Viewer - the real problem seems to be with the drivers for one of my tuner cards - a Compro Videomate. Despite them being signed by M$ WHQL, it doesn't seem to play nicely with third-party (ie. non-Compro) software, and like most OEM-written software, the bundled PVR program isn't very good. It seems to assume that all video material is frame-based (eg. shot on film), not field-based (interlaced video) - it doesn't know how to do "bob" deinterlacing. It also has a poor UI, only works with their tuner hardware, doesn't support hardware MPEG decoding, and sometimes the audio falls out of synch :(
[1] http://www.dvbviewer.com/en/index.phpThis will end your Windows Session.
umm... duh, kind of why I clicked "Exit Windows", guys... thanks.
I joined this digg-like site after being a passive user for a year or so. I felt that I wanted to contribute. So I started to comment and vote on submissions and in discussions. Then suddenly, I seemed to be ignored. No one answered any of my comments. I googled a little and discovered that there was something called a zero point ban. It can be detected by logging out and see your comments disappear just to reappear when logging in.
So I deleted my comments and my user and went back to being passive. I thought, why should I contribute content to some business when I got treated that way?
Edit: Just to clarify why this is relevant to this thread. I could not figure out -why- I was banned and I did not get any notification about it. This was very unintuitive.
Edit2: Looking again at the question; As a project manager I would have the programmers make the banning algorithms able to distinguish between a human and a bot. Also let the user have a way to detect which rule violation caused the ban and encourage a change in behavior, preferably in a positive, friendly way.
I have fond (?) memories of the Mac equivalent of the Blue Screen of Death, that would come up on early versions of Macintosh computers.
It would show a small bomb icon, and say that your computer was seriously messed up, and then it would give you two buttons. "Restart" or "Resume".
Everyone, as they mourned their lost term paper, always hoped and prayed that, for some weird and unknowable reason, the "Resume" button would work just this one time. And it never, ever, did. It would just freeze the computer and the user would be forced to restart.
Usually happens when using other people's computers: Clicking a link in a browser opens Adobe PDF reader.
This says more about me at the time, than the software, but back in '92, I found the entire mac OS astonishing.
I needed to change the name of a file. I was completely command line driven back then, so here was my reasoning:
1) Deep in side the bowels of the machine, there are bits.
2) A file is represented by an Inode, which somehow has the name associated with it.
2a) I need to change the name associated with this Inode.
3) There will be code to do this.
3a) This code will probably be a program somewhere.
3b) This is a mac, so the code is either in the menu bar, or in the System Folder.
Needless to say, I spent 30-45 minutes searching the menus and the System Folder to no avail. I eventually went to the college help-desk person (A non-computer person, I'm sure) who said "If you click on the icon, you'll get a little 'I' cursor and ..." at which point my jaw dropped. The concept of changing the pixels on the screen would never have ocured to me. I knew TOO MUCH about computers to figure it out...
The ATM that tells me to enter the amount of my withdrawal "in multiples of $20". So if I want to take out $100, do I press 1-0-0 or do I press 5?
My favourite example is when renaming some files on Windows XP. I open a folder, click a file name, hit F2 to rename and press Enter. I get a message saying that the file is currently in use. I think when you click certain files like videos, explorer starts reading metadata and so on, meaning that when you try to rename it, the file is in use by Windows Explorer - the very same app you're trying to rename with!!
Another annoyance: unsharing a file or folder takes forever on Vista (as do most simple operations like moving/deleting). And even with sharing totally disabled, loads of my files get the sharing icon on them. I can apparently still share/unshare things!
Bonus bug: if you rename a folder that contains a shared folder, Windows warns you that the shared folder will no longer be shared if you continue. If you Continue Anyway, but the rename fails, you then get an error message and the folder name does not change. However, the shared folder still becomes unshared.
Over the years, the behavior of the browser's back button has so violated the Principle of Least Astonishment that now I'm pleasantly astonished whenever it does what it's supposed to!
At least it seems to work correctly on this site!
In Windows, if I right-click 'Start' button and choose 'Search', the 'Look In' by default will have 'Start Menu' in it.
Maybe it's just me, but what are the chances a user starts search just to find something in Start Menu? I would expect something like 'Local Hard Drives' at least.
Paint Shop Pro (ver. 8 and 9 I believe) had this serious flaw that would secretly bite users. When doing long operations you can press the ESC key and cancel that operation. If you do that any time during your current session and then save your image, your save would be silently canceled by that escape key press being remembered.
To the user it wouldn't show up until they next went to work on the image and it would be missing the work that they had been doing. You would chock it up to forgetting to save and then a few weeks later it would happen again.
The problem was around for quite a while before it was fixed.
The problem existed because of lack of testing. At the end of the day there needs to be a test plan with real people doing real tasks. I believe that no matter how small the task is to test there are always key tasks that should be tested every time. On a product like PSP at a minimum you should be able to save an image and reopen it without losing data and that obviously wasn't tested at the same time as the ESC key.
Automatic installations that restart the computer without asking the user, or that start without asking the user, or that choose options without letting the user change them.
I'm surprised nobody mentioned java InputStream
's long skip(long n)
.
As you might expect from the definition, it's supposed to skip n bytes from the stream.
But the trick is that the method also returns the number of bites it skipped: it may decide not to skip full amount of bites requested.
For example, if you call BufferedInputStream#skip and stream already has some data buffered, it will skip only amount of data buffered and won't try to obtain additional data.
So, almost always the correct way to use this method, instead of
input.skip(n);
, will be like this:
while (n > 0) {
long skipped = input.skip(n);
if (skipped == 0) {
// no more data, do whatever's appropriate
break;
}
n -= skipped;
}
Please contact your System Administrator...
old school but ....
When MS hijacked the CTRL ALT DEL combination so that given the PC the three finger salute no longer rebooted it.
Passwords like 'K=w{Ie;a...'
It seems perfectly natural to most now to use obscure combinations of numbers and letters and characters to create 'secure' passwords now but why...
Are we being conditioned to practice memorizing random obscure gibberish? [1]
Why can't the whole model of passwords be changed to passphrases like:
The possibilities are endless... phrases are much easier for us to remember and encrypted passwords get exponentially harder to crack the longer they get.
Of course, there's always the downside that; you could probably hack most programmers system if you used a dictionary of Monty Python quotes.
[1] http://proliberty.com/observer//20080703.htmBeing required to navigate no less than 8 screens after deciding to purchase something at a major ecomm I used to work for. Upsells, asking you for information that was listed in your user log-in like your zipcode just in case you wanted to buy local (maybe that should have been established first?) and then reverification of just about everything you'd ever entered as your user log-in info again "just in case" something changed.
On the stackoverflow website they hide selected comments from a conversation, so every time I start reading comments I end up having to click show all comments because the conversation doesn't make sense.
Sometimes I get thrown off even then, when it was actually just a user writing a seemingly unrelated comment and I get paranoid about the hiding feature. I start reading everything over with show all just to discover it still doesn't make sense.
After all, comments might just have been deleted and some people just don't make sense...
Toolbars that only accept clicks when the application has focus, but that show hover effects even when the application doesn't have focus.
I don't mind the first click being ignored if the app isn't focused. What I mind is the hover effect lying to me.
I deal with these applications every day (the Delphi IDE comes to mind), and it still astonishes me every time I have to click an invitingly-hilit toolbar button twice before it does anything.
Yet another: You turn off click wheel iPods (my specific experience is with the nano g2) by holding down the play button.
This was astonishing to me, in that they take a button that fundamentally means start playing music and change it to mean stop working if you hold it down. One is a positive action, and one is a negative.
What's weirder though, is that the same hold-down-play action doesn't turn it back on again. Take an inert iPod and press Play, and nothing happens. You thinks to yourself, "self, maybe holding down the button that means 'play music' will make some music play", but - to your astonishment - it doesn't. You hold down Menu to turn it on.
So now there is another source of astonishment - there are separate off and on buttons. Now I have to remember which is which, and I screw up about 50% of the time (and get annoyed whenever I do) because there is no logical mapping from which button does what.
I don't think there is any justification for separate on/off buttons - its usually pretty easy to tell which state an iPod is in by checking for the presence of dope beats. If I knew holding down Menu turns it on, I would probably guess it would turn it off again too.
Now I just pull the headphones out.
I use (Comes pre installed with the desktop I use) Real Tek Audio Manager. Everytime I plugin a headphone I get this annoying popup that comes into focus.
The moment i unplug the headphone, I get a pop up in the taskbar saying "A Jack Has been unplugged", which I usually end up reading as "A Jackass has been unplugged"
My problem is why the double standards between, plug and unplug
Startup Splash screens that are desktop modal and block all my work and take forever to start up.
Splash Screens in general.
Some users are astonished about the inner workings of an application regardless of how un-astonishing it is. They might be geniuses in their fields, but when it comes to computers, it's all black magic.
The first time I worked on a C++ project started by a namespace-happy programmer. I kept getting error messages saying the function or whatever I was using couldn't be found, when it was right there. It took me a little while to start interpreting that as a namespace issue, and it took me a while to get used to checking the namespaces when I saw such a message.
Now, I don't know that g++ should have had a reference to not existing in available namespaces, but it would have saved me a good many frustrated minutes.
... and similar Visual Studio messages. You can select the 'add file' command, spend a few minutes looking for the files you need and carefully selecting them, and only at the very last step you are told that you cannot do this. Please go check out and repeat all your actions.
I mean, how about checking if I can perform the operation in the first place?
This says more about me at the time, than the software, but back in '92, I found the entire mac OS astonishing.
I needed to change the name of a file. I was completely command line driven back then, so here was my reasoning:
1) Deep in side the bowels of the machine, there are bits.
2) A file is represented by an Inode, which somehow has the name associated with it.
2a) I need to change the name associated with this Inode.
3) There will be code to do this.
3a) This code will probably be a program somewhere.
3b) This is a mac, so the code is either in the menu bar, or in the System Folder.
Needless to say, I spent 30-45 minutes searching the menus and the System Folder to no avail. I eventually went to the college help-desk person (A non-computer person, I'm sure) who said "If you click on the icon, you'll get a little 'I' cursor and ..." at which point my jaw dropped. The concept of changing the pixels on the screen would never have ocured to me. I knew TOO MUCH about computers to figure it out...
If the user is doing data entry from handwritten forms, nothing is more annoying than trying to enter data where the form has the fields in one order and the screen has it in another, especially when they swap first and last names. It causes a lot of data entry errors too. If the data entry will be done from a paper form, the developers need to always put the fields in the order on the form.
Defaults that should be set in the application but are not. For instance, in Clarity (pretty much the worst user interface I've ever used by far), when a new project is created, the project creator has to remeber to create a top loevel discussion or nobody assigned to the project can put in discussion items. Why doesn't it do this automatically, what persentage of projects would you assume would need a discussion vice those that don't? Fine give the option to not create one but do create it by default. I've wasted so much time tracking down the manger to add a discussion item. Not only that, it doesn't automatically add the person who submitted the request for the project to the project when it is created. Can't we assume the person who wanted the project done, is likely to need to be able too see progress on the project?
Finale Music Composition Software by Coda.
I haven't used it in over a decade, so it's probably much better now, but the original version that ran on Windows 3.1 had an absolutely baffling UI. OH... MY... GOD...! As an example, in many/most dialogs, there were text labels (sometimes just an asterisk) that you were supposed to click on for some vital function.
Visual Studio 6 (pre patch) would occasionally silently fail to "save all"... Next time you come back all your work is gone!
The GUI part of OSX lacks a way to automatically merge directories. Instead it just replaces the old directories with the new ones.
If I've got a music folder with Singles, Mixes and Albums (with directories in them) and want to copy those to a location where those folders already exist (say an external HD) I have to manually do the copying all of the files.
Repeat for every folder you want to merge. Windows does this correctly btw. And I know I can use the commandline to do this.
I think programs that don't behave like they are supposed to are not just astonishing but very annoying. Also the small annoyances might be small, but to me fixing them would be most important, because they affect the usage of the software. For example Windows XP and Word have small bugs and usage issues. When I use a lot those softwares, the issues are always there. And I don't like aggressive usage of tooltips. Those tooltips get all the time in the way.
As a Visual C++ developer, the most common error message I get from VC++ is the following:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
It's astonishing because the message has nothing to do with the problem--and because you'd expect a compiler to have reasonable error messages by the time it reaches version 9.0. To add to the confusion, it's often followed by a long series of other errors.
This error is usually the result of a function declaration:
int FooBar(const ABC& gah, const DEF& brr) {
...
So what does it mean? It means that one of the types or names you used was not understood. For example, you might have forgotten the header file that defines ABC or DEF.
"We are unable to find iTunes on your computer"
..as a web page from a link you just clicked on. Thanks for that. I'm not surprised that you can't find it on my Linux machine, but looking for it in the first place seems odd. I'd rather you just showed me the page of how much it would cost to buy the music track I clicked on a link to, if I were to use a computer with iTunes.
And this guy here thinks it's Anti-Web:
http://www.codinghorror.com/blog/archives/001149.html
;)
rdesktop on ubuntu which, if being open in full-screen, had sent all input to remote machine without ability to return to local session.
http://ubuntuforums.org/showthread.php?t=341575
And I am also astonished by StackOverflow's preview window with its peculiar displaying of underscores
A couple of days ago, I was trying to use a tax software to file my tax report or whatever ..
I had a slip that I had to enter, the slip is essentially boxes with number, all boxes were empty except for one box which had a number. The corresponding slip on the tax application had all boxes enabled, except for the only box that I need to fill; it was disabled!
Having no clue how to fix it, I gave up on the application.
In the reverse vein, I recall that most BIOS setup screens, when you go to exit, regardless of whether you chose "Save and Exit" and "Exit without Saving", will always ask you "Are You Sure?" To me, this feels like the developer treating me like an idiot, assuming any action I make is wrong. If many users are accidentally hitting "Exit", that would indicate the UI is bad, not the the users are dumb.
An error message like this:
The image is too large: Too many bytes
Thanks for this usefull piece of information...
I just answered a question here on SO, and when I clicked Post Your Answer
I was directed to a page that told me the question didn't exist. Seems the OP had deleted and re-entered it while I was answering.
But, then, I often talk to myself....
Creaky old but still popular language called IDL made by ITT-VIS (formerly RSI). Back in 1979 or thereabouts, it was normal for an "integer" to be 16 bit. Still is today, if you use IDL. All integer variable by default are 16 bit. It is easy to forget when writing a "for" loop or stash the size of an array into a variable - and get bad, weird bugs. A few taxpayer dollars wasted (indirectly) as i puzzled over some of these bugs. Must remember to write "0L" not "0" in a lot of places. After several years, i'm still at times astonished by "bugs" until i remember this "feature".
Localized user interfaces, where you can't get to the File menu by clicking Alt+F, or it is on the other side of the screen with terms that seem strange and unnatural, even if you DO speak that language.
Pressing on the volume dial on my car radio, resulting in it changing functionality in a why that is irreversible by the driver (who can not watch the radio while clicking it over and over).
Hitting F5 in Textpad lets me do a text search (Ctrl+F doesn't work). Hitting F5 in SQL Server Management Studio, after working for twenty minutes in Textpad, causes me to update the wrong database, instead of searching for text in my script file.
When I was using Windows, how many times I wanted to kill myself when I double clicked on the "My Network" icon and the window just goes into a "Not responsive" state. Close it, and your whole desktop is gone.
This problem has been here for years. I wonder why they wouldn't fix it...
I drive on a parkway, and park on a driveway.