Please remove error message. Thanks.



  • @dhromed said:

    @TheRider said:

     So, how do we get around this dialog blindness syndrome?
     

    The issue, I think, is not the dialog form; it's the [message-pleaseconfirm] form. It's getting facts when you're not expecting them; answers to questions you haven't asked or didn't know you had to ask. You can't learn anything that way ...

     

    Hmm, what about using XIU's idea and asking questions? Instead of the usual confirmation dialog you'd have "<Application> could not save your your preferences. To continue, please complete the following sentence: My preferences were [saved] [not saved] [What?] are Preferences?" If the user is inattentive, he'll click "saved" and won't be able to continue. Feel free to make him endure a 5-Minute multimedia lecture about the importance of reading dialogs.



  •  The purpose of the dialog is to let the user know that something unexpected has occurred. In the case of of the "I'm not installing DirectX 8.1" message the developer assumes that the user expects the application to install DirectX and lets him know that it doesn't and why. Of course, this is not valuable if the user couldn't care less (i.e. the developer's assumption about the expectation turns out to be false in most cases). In case of the "Preferences not Saved" dialog, the user does expect that the preferences are saved because the button was clicked; the program breaks that expectation and tells the user about it. It is analogous to the situation when you tell an underling to perform a task and want to get a report when he can't do it instead of being surprised to find he didn't when it's too late. Of course if you don't listen to the people who work for you, you deserve what you get ...

    Maybe we should handle it HAL-9000 style: a soft female voice: "Dave, I am terribly sorry, but I could not save your preferences. This unexpected system malfunction is no cause for panic. Trust me." 



  • @CodeSimian said:

    2) Users shouldn't have to care whether a device is mechanical or electrical.  The whole point is that internal complexity should be hidden, regardless of the degree of that complexity.

     

    The point is that it is easy to hide complexity when the user task is simple. The user task associated with a car is "get in, drive, get out" with "drive" meaning "accelerate, brake, turn, use lights". Anything else is just added complexity, and indeed using the air condictioning, the multimedia center or (especially) the satnav in a modern car can be  much more complex and harder to manage than driving itself. 

    If you sell software based on features, you make software that can be adapted to doing many different tasks instead of just doing a simple  task, and therefore it will have much complexity that will seem unnecessary to a user who wants to accomplish a simple task.

    Mechanical devices can't easily acquire  the complexity of software, so there are natural limits to the diversity of tasks that a mechanical device can be used for, which makes them easier for users to learn. (The leatherman/swiss army knife is really just a simple collection of simple tools, not a complex tool).



  • @CodeSimian said:

    Lots of applications assume that files are writable and disk space is plentiful.

     

    I've had Steam assume the opposite: when it couldn't complete the login, it popped up a message about the disk being full, and covered it with another popup claiming a connection error, when in fact it lacked access to some of its local data because it wasn't running as admin (and it closed the lower popup when I closed the upper one, luckily I got a glimpse of it and moved the upper dialog when it happened again). In fact, I've seen many programs (including some that only run on XP or better) claim a full disk when they simply lack write privileges. Says a lot about QA, really.



  • @mendel said:

    HAL-9000 style: a soft female voice: "Dave, ...
     

    HAL 9000 had a male voice.

    Starfleet employs female computers.

    Duh. Every geek knows that.



  • @mendel said:

    Mechanical devices can't easily acquire  the complexity of software, so there are natural limits to the diversity of tasks that a mechanical device can be used for, which makes them easier for users to learn. (The leatherman/swiss army knife is really just a simple collection of simple tools, not a complex tool).
     

    Point taken.  But obviously the complexity of computers is still an issue that needs to be addressed.  Look at the popularity of Human-Computer Interaction academic programs in recent years.  Hopefully it is more than a fad.



  • @jaywalker said:

    @alegr said:

    The only reason to fail "Save Preferences" is "access denied". This happens when an illiterate programmer uses WriteProfileInt (which is completely old stype) or HKEY_LOCAL_MACHINE/Software/<your company name>.

     

    Not quite. In fact, they want their users to be able to launch the application on any workstation and have access to their preferences. Therefore, registry or ini files were ruled out, and we had to store the preferences in a database table. The error message came when the database server failed. (For the record, it turned out the table was not created correctly on the test environment.)

    By the way, storing stuff in a text file may be old style, but I fail to see why it would be worse than storing them in a binary registry.

    How about using a login script to map a home directory on a server, and then use WritePrivateProfile*. No need to be fancy with a database. Of course, if all you have is MySQL, then every problem is SELECT.

     



  • @dhromed said:

    @mendel said:

    HAL-9000 style: a soft female voice: "Dave, ...
     

    Starfleet employs female computers.

    Wouldn't really call them "soft", though. They always struck me as decidedly snippy. 



  • @Arenzael said:

    It is my experience that users have developed an uncanny ability to totally ignore error messages. Even if they go to the trouble of taking a screen capture or quoting the message to you verbatim, they don't even realize what they are reading. I put instructions in some of my custom HTTP error headers and 9 times out of 10 when someone hits one they tell me about it, I ask them if they actually followed the instructions, and they say "what instructions?". 

    I'm sorry, are you expecting users to dig through HTTP headers whenever they see an error message? I'm surprised even one out of ten is finding the instructions, then -- maybe one in ten will know what an HTTP header is, much less be reading them whenever anything goes wrong that they themselves didn't develop for!



  • @mendel said:

    Hmm, what about using XIU's idea and asking questions? Instead of the usual confirmation dialog you'd have "<Application> could not save your your preferences. To continue, please complete the following sentence: My preferences were [saved] [not saved] [What?] are Preferences?" If the user is inattentive, he'll click "saved" and won't be able to continue. Feel free to make him endure a 5-Minute multimedia lecture about the importance of reading dialogs.
     

     Great idea... but once the user learns that he/she can pull out the power plug, to cancel the 5-minute lecture, it will all for nothing.

    Therefor I propose that the computer will directly simulate the learning neurons in the users brain, with pain of course that's the only way they will ever learn, so that the next time the user sees a pop-up he will read it.



  • @DaveK said:

    @mendel said:

    @DaveK said:

    @medialint said:

     

    I see that a lot on forums ...

     

    It's called "lurking for a while before you post".  Nothing wrong with or even surprising about that really.

     

    Well, I believe it's called "not counting the first post correctly". Not surprising,  but wrong indeed.

     

    It was entirely true.  It's the number of posts he had so far when he wrote that one.  It can't refer to itself because the new post is committed and the counter incremented in one atomic database transaction.

    Wow, I'm almost on-topic there.

     

    Huh? Every other forum manages this just fine, I imagine it goes somewhat like this:

    1. Add the post to the posts table.
    2. Update the thread table.
    3. Add 1 to the post count in the users table.
    4. Redirect to view the thread
    5. Fetch all posts and user info in the thread.


  • @mendel said:

    .... Instead of the usual confirmation dialog you'd have "<Application> could not save your your preferences. To continue, please complete the following sentence: My preferences were [saved] [not saved] [What?] are Preferences?" If the user is inattentive, he'll click "saved" and won't be able to continue. ....
    No, if he is stupid like the report he send in, I think he will call the technical support to ask why there are 3 button and which one you should select.



  • @Bifi said:

    Great idea... but once the user learns that he/she can pull out the power plug, to cancel the 5-minute lecture, it will all for nothing.
     

    Modal Message Box on next application startup:

    Your multimedia presentation was unexpectedly cancelled. View presentation now?

    [Yes] [OK] [Continue] [What?]

     



  • @Cap'n Steve said:

    @DaveK said:

    It was entirely true.  It's the number of posts he had so far when he wrote that one.  It can't refer to itself because the new post is committed and the counter incremented in one atomic database transaction.

    Huh? Every other forum manages this just fine, I imagine it goes somewhat like this:

    1. Add the post to the posts table.
    2. Update the thread table.
    3. Add 1 to the post count in the users table.
    4. Redirect to view the thread
    5. Fetch all posts and user info in the thread.

     

    And another quick reader pulls the thread between steps 2 and 3 and sees a post count of 0 exactly because it's not a single atomic transaction.



  • @jetcitywoman said:

    I work on computer aided dispatching systems

    Hmm... I wonder if our JMS/RMS interfaces with your CAD system. It would be a small world indeed if it did.



  • @mendel said:

    @Cap'n Steve said:

    @DaveK said:

    It was entirely true.  It's the number of posts he had so far when he wrote that one.  It can't refer to itself because the new post is committed and the counter incremented in one atomic database transaction.

    Huh? Every other forum manages this just fine, I imagine it goes somewhat like this:

    1. Add the post to the posts table.
    2. Update the thread table.
    3. Add 1 to the post count in the users table.
    4. Redirect to view the thread
    5. Fetch all posts and user info in the thread.

     

    And another quick reader pulls the thread between steps 2 and 3 and sees a post count of 0 exactly because it's not a single atomic transaction.

    That's possible, but it's not what's happening here. Whenever I post, my post count is one less than it should be until I refresh. (And you could just update the thread table last to avoid the whole problem.)



  • @dhromed said:

    @mendel said:

    HAL-9000 style: a soft female voice: "Dave, ...
     

    HAL 9000 had a male voice.

    Then Chandra's ground-based SAL-9000 from the movie 2010. (Just looked it up on IMDB, never new that was Candice Bergen.)

    The idea is "HAL-9000 style" -- that is, neutral toned but human sounding, not obviously recognizable as the product of text-to-speech software/hardware as Joshua from WarGames or GlaDOS from Portal.



  • @Cap'n Steve said:

    Whenever I post, my post count is one less than it should be until I refresh.

    Pfeh, that's nothing. Most times I post, my entire post doesn't show up until I refresh.

    The forum software is still the real WTF. 



  • @mendel said:

    The user task associated with a car is "get in, drive, get out" with "drive" meaning "accelerate, brake, turn, use lights". Anything else is just added complexity,
     

    Like changing gears (and/or using the clutch)? So many people can't drive a manual tranmission, including my wife... I'd never owned a auto car before we married, now we own two! 



  • @Zemm said:

    Like changing gears (and/or using the clutch)? So many people can't drive a manual tranmission

    Gears? Half the people on the roads cannot operate their turning signals. 



  •  @Cap'n Steve said:

    Add 1 to the post count in the users table.


    CREATE VIEW UserPosts  AS

    SELECT user_id, COUNT(*) AS num_posts

    FROM posts 

    GROUP BY user_id 



  • Consider that the "interface" for driving a car hasn't changed significantly in about 100 years.  You can jump into pretty much any car ever made and operate it.  Even when voice controls, HUD systems and even "driverless" cars are available, the same interface will most likely still be available.

    My wife's van has the gear selector (auto) on the steering column.  My car has the shifter in the center console.  Yes, sometimes when I get in her van my hand flails around for a minute between the front seats looking for the shifter or I stomp on the floorboard looking for the clutch.  But "muscle memory" takes over and I don't have to consciously think about driving the car - it just happens.  I've been driving for more than 20 years, and I've actually realized after my commute home that I don't even remember a single conscious thought specifically about driving the entire way.  My subconscious knows where it needs to go and how to get there, and my consciousness spends its time pondering world hunger, the current weather or a pretty girl on the sidewalk.  Dangerous, but true and fairly common among all drivers.

    Contrast this with computers, where the interface varies from OS to OS and program to program.  There is not necessarily any consistency even from one version of a program to the next.  XP to Vista is not a huge leap, but there are enough differences that non-techies get confused or overwhelmed.  Office 2003 to 2007 is a much bigger leap, as the UI has changed entirely.  (And don't even try to explain to a non-technical person the difference between "Vista" and "Office 2007" - in their minds, they are synonymous.)  Until you get used to the new layout, you have to consciously think about how to perform an action.  And just about the time you get it ingrained into muscle memory, they'll release a new version and change it again.



  • @GalacticCowboy said:

    I've actually realized after my commute home that I don't even remember a single conscious thought specifically about driving the entire way. 
     

    <font size="-1">"Cocaine is a hell of a drug!" -- Rick James</font>



  • Argh, quoting isnt' working for me again. Anyway:

    "... (And don't even try to explain to a non-technical person the difference between "Vista" and "Office 2007" - in their minds, they are synonymous.) ..."

    Heck, I have customers who complain about the "computer" being "down" and a little research proves that it was a problem with A) the keyboard, B) that one user's client pc, C) an external interface like a pager system, D) one particular application, etc. It's really fun when Chicken Little scares the whole room full of co-workers so they ALL refuse to use anything computer related until I fix it. I have to have the patience of Job, I tellya....



  • @Zemm said:

    @mendel said:

    The user task associated with a car is "get in, drive, get out" with "drive" meaning "accelerate, brake, turn, use lights". Anything else is just added complexity,
     

    Like changing gears (and/or using the clutch)?

     

    Well, gears are a mechanic that the user uses to make the machine do what he wants. Used to be you had to start the car with a hand crank, pull  the choke etc., but all of that was easily automatable because we know the user just wants to get in and go. So the car actually gets better by removing the features "hand crank" and "choke" for the user, reducing complexity. In other words, less bloat.



  • @alegr said:

    How about using a login script to map a home directory on a server, and then use WritePrivateProfile*. No need to be fancy with a database.

    That would technically have been a possibility. However, it wasn't an acceptable option: they love their database, so the more stuff they store in there, the happier they are.

    Anyway, I said in the OP I had added a preferences dialog to an application. That wasn't the whole truth. I had added a preferences dialog to two applications. Yesterday, the same person finally got around to testing the second application. Which, naturally, also stored its preferences in the database. I'll let you guess what were the first and second problem ticket I received. *facepalms*



  • Computers still require conscious thought to operate correctly.  Everything else, from your car to the blender really don't. 

    Another major difference is that your computer wants to have a "dialog" with you; whereas the other things just do what they are told with the only feedback being either complete failure or success.  In other words, the car starts or it doesn't; the blender blends or it doesn't.

    Combine that with extremely short attention spans (TV commercials) and overwhelmed people (Cellphones, IM, Twitter *shudder*) and you have a situation where the person just wants to do a quick task and move on.  Anything that tries to sidetrack them (like a dialog) will be utterly and completely ignored unless it means total failure.  Hell, people ignore the red check engine light on cars until the car no longer functions.

    Once we, as programmers and designers, really grok that then figuring out how to work with the user will become much easier.

    So, IMHO, the solution is to get rid of all of these dialog boxes and warnings completely.  If some action the user takes doesn't work, just blow up and send an email to the support department for them.  Support should be proactive and actually let the user know, in very plain terms, when the problem is fixed and to provide that fix with no effort on the users part.

    Chris.

     



  • @jaywalker said:

    Problem ticket #1:

    Description: I do such-and-such. I click the "Save preferences" button. I quit the application, then launch it again. The preferences entered in the previous session are lost.

    Action requested: Keep the preferences between sessions.

     

    Problem ticket #2:

    Description: I do such-and-such. I click the "Save preferences" button. An error message "Could not save preferences" pops up.

    Action requested: Remove the error message.

     

    This reminds me of the problem ticket I once received while managing a development team. It went something like this:

    Description: Defect management software is down, unable to record defects and problems.

    Of course the testers had to wait until after the defect management software was up and running to file that defect report. By which time it was pointless to raise it (except to make the stats look good).



  • @PhillS said:

    On some Firefox dialogs (i.e. when you want to try and install an extension) there's a countdown so that you can't click OK / Cancel before a few seconds have passed. Doesn't guarantee that they'll read the message, but at least it's something.
     

    This was actually implemented as a security feature to get around a different exploit.  Suppose you setup a site with a phony CAPTCHA on it.  Type the following in the text box: "this is a perfectly reasonable request".

    Lots of users will look down at their keyboard while typing.  So use Javascript to open InstallTrojan.exe as soon as he starts typing.  The user doesn't see the dialog box, and hits the spacebar, which incidentally clicks the "ok" button.  Oops.



  • @vt_mruhlin said:

    @PhillS said:

    On some Firefox dialogs (i.e. when you want to try and install an extension) there's a countdown so that you can't click OK / Cancel before a few seconds have passed. Doesn't guarantee that they'll read the message, but at least it's something.
     

    This was actually implemented as a security feature to get around a different exploit.  Suppose you setup a site with a phony CAPTCHA on it.  Type the following in the text box: "this is a perfectly reasonable request".

    Lots of users will look down at their keyboard while typing.  So use Javascript to open InstallTrojan.exe as soon as he starts typing.  The user doesn't see the dialog box, and hits the spacebar, which incidentally clicks the "ok" button.  Oops.

    I always wondered why that was there. Is it just me or is that a pretty bizarre way to make it more secure? Why didn't they just do something like make sure the focus doesn't default to the install button?


Log in to reply