CARVIEW |
February 06, 2007
The Software "Check Engine" Light
Raymond Chen notes that, in his personal experience, users don't read dialogs:
How do I make this error message go away? It appears every time I start the computer.RC: What does this error message say?
User: It says, 'Updates are ready to install.' I've just been clicking the X to make it go away, but it's really annoying.Every time I start my computer, I get this message that says that updates are ready to install. What does it mean?
RC: It means that Microsoft has found a problem that may allow a computer virus to get into your machine, and it's asking for your permission to fix the problem. You should click on it so the problem can be fixed.
User: Oh, that's what it is? I thought it was a virus, so I just kept clicking No.When I start the computer I get this big dialog that talks about Automatic Updates. I've just been hitting Cancel. How do I make it stop popping up?
RC: Did you read what the dialog said?
User: No. I just want it to go away.Sometimes I get the message saying that my program has crashed and would I like to send an error report to Microsoft. Should I do it?
RC: Yes, we study these error reports so we can see how we can fix the problem that caused the crash.
User: Oh, I've just been hitting Cancel because that's what I always do when I see an error message.
RC: Did you read the error message?
User: Why should I? It's just an error message. All it's going to say is 'Operation could not be performed because blah blah blah blah blah.'
He wonders if software should have a Check Engine light:
Automobile manufacturers have learned to consolidate all their error messages into one message called "Check engine". People are conditioned to take the car in to a mechanic when the "Check engine" light goes on, and let the mechanic figure out what is wrong. Can we have a "Check engine" light for computers? Would it be feasible?
It's an interesting concept, insofar as it relieves the users from having to look at dialogs they won't understand anyway. But it seems highly unlikely to me that these users would pay any more attention to a subtle software Check Engine light than they do to the giant, screaming dialogs it's replacing.
And there's another problem with the automobile analogy, too. Unlike a car, computers-- at least the ones connected to the internet-- are perfectly capable of diagnosing and fixing themselves. The examples Raymond provides shouldn't have asked the user anything; they should have quietly gone about their business.
If you need to update, do so. if you need to download and apply security patches in the background, do so. If you need to send crash data, do so. Silently. And do it in the background, when the PC is idle-- without bothering the user.
If you're an advanced user who want to change and control this behavior, or view the status of these activities, you can certainly do so through control panels, options dialogs, and event logs. But the rest of the world doesn't care; they're relying on your software to do the right thing on their behalf without subjecting them to a barrage of questions they'll neither read nor understand.
A software check engine light is a mildly less invasive form of stopping the proceedings with idiocy. Your software should be more considerate than that.
> If you need to update, do so. if you need to download and apply
> security patches in the background, do so. If you need to send crash
> data, do so. Silently.
The thing I hate in MS Windows most of all is its stupid habit of doing something without asking me.
It wants to download a security patch? Hey, I'm playing a MMORPG right now, and I need all of my bandwidth! It wants to apply an update? Hey, don't do it! I want keep an older version as it works faster and is less buggy!
Windows is doing lots of things without asking. If it will do even more of them - one day I will move to smth else at last.
So, doing things "silently" will not solve the problem. We need some other way...
This is believing that software and their manufacturers are always right and trustworthy. Which wouldn't make patches necessary in the first place.
I don't trust software (to do the right thing).
Henry Boehlert on February 8, 2007 01:24 AMIt would be sufficient to link and comment, but ripping off 90% of someone else's article and using that as 70% of your own is a bit, well, rude.
Orville on February 8, 2007 01:36 AM> I'm playing a MMORPG right now, and I need all of my bandwidth
This would fail the "when the PC is idle" test I listed above. That's not Considerate.
> I want keep an older version as it works faster and is less buggy
Really? Even if that older version has a massive security hole?
Jeff Atwood on February 8, 2007 01:37 AMI kind of like that my car tells me exactly which light bulb is out. And it tells me in approximately how many miles my next service is due. And then it starts bugging me when it's about 1000 miles away. It also has an oil level sensor, so if I remember to run the test, it will tell me if the oil is critically low. If the oil is low, it tells me approximately how much to add. It can detect all kinds of error conditions.
Of course, none of those things are critical. I can always ignore the little screen if I want to and just turn the key to start the car and drive away. The screen doesn't beep or get angry at me for ignoring it. It complies with what I want to do and quietly goes back to its normal view (odometer, trip mileage, time).
The car is a 2002 Mercedes C 230, if anyone's curious.
Brendan Dowling on February 8, 2007 01:57 AMPerhaps Windows needs a 'Normal' and 'Geek' install pattern. I don't want updates happening or applications connecting to the Internet automatically - hell, I don't even want processes to run unless I let them (and try stopping that in Windows). However, for my grandparents, everything is set up to take care of itself. And in a work context, I've had Microsoft updates break things I've been working on (although for good reasons).
I guess that for me, it's a question of control. I wouldn't expect to take my car to a mechanic and have him do things without telling me - and I certainly wouldn't expect him to change my music collection, which some updates have done. Other folks might not care, as long as the car goes.
FWIW, I don't think that Microsoft are the worst offender for this, either.
Andy on February 8, 2007 02:00 AMOrville, without the bits or Raymonds post his own argument wouldn't make much sense. It puts it into context. The point of his post is different from Raymonds.
I think there are problems with doing thins automatically. When do you start installing? When they're not doing much. But what if they start doing things? A lot of updates won't really function terribly well half installed.
[ICR] on February 8, 2007 02:14 AMSo many people jump up and down about privacy and lack-of-control when software does something silently. Andy is right, systems need a choice between "Just leave me alone and do it" and "Ask me for permission first" to satisfy geeks and non-geeks. This option would probably be OK at the OS/User Profile level and all apps could just query the OS API to find out how it should behave.
Most people who read your blog will tend to be techno-geeks, and as such the comments will be skewed toward wanting control.
Jason on February 8, 2007 02:20 AMOr maybe I dont want microsoft to lie and call WGA as a needed update, I think the other commenters have a good point, and actually microsoft already has this option in automatic updates, where it can download them and ask to install or ask firs or just do it all.
constantine on February 8, 2007 02:38 AMI remember updating a Windows 2000 machine with service pack 4 and having it fail to boot as a result. If these things are to be done silently then there needs to be a way to undo them. I think Alan Cooper said as much in About Face.
Also, I'd like PCs to have more warning lights for hardware (CPU temperature, fan go/no-go status, so *I* can decide what to do,
have more to report to the person subsequently fixing it, etc.
"Just a moment. Just a moment. I've just picked up a fault in the AE-35 unit." :-)
hgs on February 8, 2007 02:49 AMThe only kind of updates that there should ever be are ones adding functionality and the user should not need to update if he is satisfied with the software as it is, having no need for extra bells and whistles. The security patches and automatic updates, which are needed, because otherwise patches aren't applied often enough, are definitely The Wrong Way.
There have to be better ways to deal with security than constant patching. And I believe there are. A lot could be done by simple process-level security features built into the OS. Possibly sufficient features already exists on Windows and other OSes, but they are not used properly, or at all. It would be a relatively uncomplicated matter to have per application security priviledges, controlled by a system-wide security policy.
And one thing I can't believe is that there are still security holes due to buffer overflows. There have been very good redundant bounds check elimination algorithms for a long time; there's no need to suffer any buffer overflows these days.
Users definitely should not be interrupted and bothered by issues not related to the tasks they are doing. After all, the computer exists to serve the user, not the other way around.
As I understand it you can in fact run automatic updates in completely silent mode where it does the update without asking in the background. I get the feeling that the reason that the dialog prompts for a user response by default is the possible legal implications or at least social backlash against a system which communicates to those Internets without the user knowing about it. If crash reports were sent silently I can almost imagine the Slashdot headline "Micro$oft's Unstable OS Steals Your Documents When It Breaks (Like It Always Does), Without You Knowing".
Honestly I don't have any sympathy for people who assume that a dialog box is meaningless. It may be meaningless to you, but if you make a note of what it says, it might mean something when you try to get it fixed. While there are many who rabidly oppose the use of dialog boxes in any application, they are a fact of life in many applications and ignoring them never helps. Software should "just work" but we aren't quite there yet, so until that happens people might just need to take the time to read what their software is telling them.
Greg Poole on February 8, 2007 04:01 AMThat would be possible only if I can get audit log of changes done to my computer and software and use DRM tools to control access to my private data and documents. Only then I would let someone else to check my computer's engine.
Iggi on February 8, 2007 04:03 AMI agree with the post about 'Normal' and 'Geek' modes. Different people have different needs...
Thomas Bratt on February 8, 2007 04:27 AM"the computer exists to serve the user"
Flaky, you're so wrong. Gates said in the late 70's 'a computer on every desk running MS software'. The computer exists to make loads of money.
----
Also, I'd like PCs to have more warning lights for hardware (CPU temperature, fan go/no-go status, so *I* can decide what to do,
have more to report to the person subsequently fixing it, etc.
----
I recall back in the old days, pc's had error codes which were done in beeps.
If I recall correctly it was something like:
^4 beeps = check underwear, then check manual - this is gonna be a looong night. Usually only the "good" kit had this level of error status.
4 beeps=RAM error,
3 beeps=IDE bus error
2,1 beeps = Normal.
Aye, I probably got the list out a bit but you get the idea. I seem to recall some enterprising company made a post-diag ISA card as well which used an array lights to give detailed errors (again, had to check the manual to divine the true reason).
Nowadays, you're lucky if you get a POST readout..
Brandon on February 8, 2007 04:45 AMActually, an equivalent to the "check engine" light exists on some Linux desktops, an icon that indicates when new updates are available, and downloads them with a click and possibly a dialog asking for the root password. It's a good idea, with one nasty caveat -- most desktops, including most Windows versions, are filled with teensy Useless Status Indicators that are even more ignorable than dialogs. I suspect the people who most need timely updates of their Windows installations are exactly the people who never, ever, under any circumstances touch the icons in their tray area.
Actually, the use and abuse of tray area icons would be a fine subject for a future post. The system tray is almost a good idea, but it seems like every single bit of crapware out there leaves its spoor there.
Anonymous Cowherd on February 8, 2007 05:05 AMI'm definitely one that would like more control, but I've seen plenty of my friends that have no clue. They hate stuff popping up on their screen and just want it to go away. No amount of pleading helps with this; they just aren't gonna read the messages. They don't want to do "maintenance" ; they just want to run their game/office app/whatever.
I definitely think the default should be to automatically download patches. I'm selfish with my time -- I'm tired of helping my friends with the same spyware/malware/virus problems over and over. Make the geeks find the setting and turn it off if they want to.
Brandon Corfman on February 8, 2007 05:27 AMHi
This is classic trying to be nice. Microsoft have listened for years (contrary to what some might believe) That everyone thinks they are too controlling, and that their os 'does stuff' without asking. They have heard the users 'wories' and naively decided to hand some control to the users, by allowing them to choose to download and install etc. Well the users have again proved to be like little children, so yes - take that control away, and install the updates without a word.
Red on February 8, 2007 05:46 AMI'll tell you what is really wrong. Microsoft has trained its users to ignore dialog boxes. I get warnings for mails, when the network is slow, when an update is due, when programs crash, and probably for other items which I've taken to ignore.
Even worse, Microsoft sometimes locks up the screen instead of letting me continue. The natural reaction is to simply cancel the offending dialog box.
On my Mac, email messages show up as a counter on my email icon. When someone wants to chat with me, the icon for the program bounces up and down. When a dialog box does appear, I do take notice. Even better, I can bypass the dialog box and continue my work, and later on take care of what the dialog box wants. In fact, I can even minimize it to get it completely out of the way.
Vista is even worse. My limited experience with it want to make me throttle the whole system. The User Access Control keeps popping up dialog boxes telling me all sorts of things, but it never completely explains exactly why it popped up, and whenever it does pop up, I have to stop what I am doing and either press "Deny" or "Allow" because I can't get around that dialog box.
The "Check Engine Light" analogy is a good example. When the Check Engine Light turns on, I take notice because it rarely is ever on. But, what if that Check Engine Light turns on whenever my car is cold, the windows are dirty, or my son spilled corn chips on the seats? In that case, I'd probably start to ignore it.
When I take my car into the mechanic because my oil level was low, and my engine seized, he'll go on line and tell his friends that drivers are idiots because they don't pay attention to the check engine light.
David on February 8, 2007 05:50 AMSpot on David. I am installing stuff now on Vista. I have had so many Deny/Accept....Install not complete/Use recommended install (or something like that) that I realise what the new marketing message "More secure" means: 'look like your doing something really important and the user will think you really are'. Messages like, "only continue if you know or trust this publisher" are kinda really annoying. Hell, I know the publisher, but now I am in some doubt as to whether this .exe is really OK or not. I am just a dumb user, what do I know about trusting some massive US corporation anyway. The bottom line is that there are even more messages than before.
pasty on February 8, 2007 06:17 AMI work on a large app for a captive corporate user base. We've trained them to ignore messages by putting up SQL reason codes, MQ response codes, Java class names and even stack traces. We're in an intiative to improve the messages and make them truly meaningful, but this post makes me think we shouldn't even bother making them too meaningful. A friend once built a spike system with one error message: "Try again, human."
Jim on February 8, 2007 06:22 AMI can tell you right now being an accomplished mechanic(8 ASE certifications and Master Tech certification) and an engineer the ONLY reason cars have check engine lights is due to federal regulation for emissions. The "check engine" light should be renamed check computer or check emissions system light because this is usually all it keeps tabs on. So if the computer world were to implement a light it would have to be federally mandated, checked (think iCheck!) and would drive the cost up. And for what? Because grandma doesn't want her casserole recipe taken by microsoft and exploited? Or because the "geeks" (like me)can't keep their game cheats safe?
Aaron on February 8, 2007 06:27 AMI'll have to vehemently disagree with you on this one. I want my computer to only do <b>what I tell it to</b>. Software has no place sending error reports, downloading software, or doing <i>anything</i> without my permissions.
dnm on February 8, 2007 06:58 AMThe problem with what you're proposing Jeff is that there are plenty of users out there who know enough to be dangerous and think they are "advanced users" and want full control over this behavior. For example, "I want keep an older version as it works faster and is less buggy!" Um, how do you know if you haven't installed the update yet? This type of scenario could be resolved with a roll back/restore point.
To play devil's advocate, you can't make everyone happy. There are the casual users that really don't know, and there are the "advanced" or "think they're advanced" users who (think they) know better and want control. Sounds like two separate OSs to me. As Raymond points out elsewhere on his blog, so called advance users are only advanced in one or two areas.
And, keep in mind, there are plenty of car owners out there who put black electrical tape over the check engine light "because it's annoying and I know better." Really? So, they already ignore it, thinking it's a nuisance.
And, I don't think this is all Microsoft's fault. Take notification area for instance. Microsoft introduced these and 3rd party vendors went nuts putting every little thing in there. Do you really need the AIM icon in the notification area? Microsoft is guilty of this, too, but IMHO the notification area was ruined by 3rd party vendors. The notification area has become the check engine light that comes on whenever the car is cold and the windows are dirty.
For some reason, that annoying car voice is in my head "Your windows are dirty. Your windows are dirty."
Also, for those of you who like the car that tells you every little thing is wrong, consider the price tag for the 2002 Mercedes C 230 compared with the average car on the road that gets you from point A to point B. It's much more expensive, i.e. you pay a somewhat hefty price for those features. I suppose if I really wanted to have this much control over my PC, I'd be willing to pay for it. But, I would imagine this price tag would only be attractive to those types of so-called advanced users.
Coleman on February 8, 2007 07:00 AMIn many ways the Personal Computer went away with Windows 95 -- certainly there is no such thing now (at least with Windows).
Do you know how many times a day your PC "phones home" to MS or some other vendor, checking for updates? Do you know how many files are written to your PC without your permission? We have the illusion of "personal computing", but we are perhaps a bit more like people in the Matrix than we are aware of.
Certainly the process by which updates and the like are administered is in need of a serious makeover...
Steve on February 8, 2007 07:05 AMI'm sympathetic to the idea that dialog boxes suck, but I cannot endorse the suggestion that my computer should just decide what's best for me, then go off and do it without consulting with me.
Who can rationally trust software makers to that degree?
I already spend too much time FIGHTNIG BACK against automated "what's best for me" actions that programs take. Want to use iTunes, realplayer, quicktime, java, or really ANY modern desktop app? Be prepared to have it install some update scheduler or quicklaunch app into your startup without even asking.
The average user has a process list and system tray that are polluted with bilge they've either used once or never even heard of, all thanks to the computer knowing what's best.
Last time my friend came over he launched iTunes to download a podcast. He must have OKed some dialog box while I wasn't looking, because the presumptuous program took over all of my file associations... and of course reinstalled its updater into my startup that I've already removed more than once.
Do I want it doing that without even asking?
I am for an alternative to the dialog box, but "Just do it" ain't it.
Patrick on February 8, 2007 07:07 AMOne of the other drpartments has a laptop that automatically updates itself with MS patches. The problem is that if the patches require a reboot, it then does so, giving a 5 minute warning. Usually during a meeting. Sigh.
Mike Swaim on February 8, 2007 07:20 AMMike Swaim: "One of the other drpartments has a laptop that automatically updates itself with MS patches. The problem is that if the patches require a reboot, it then does so, giving a 5 minute warning. Usually during a meeting. Sigh."
This can be changed to a higher interval (IIRC, up to 60 minutes) using Group Policy Editor (Windows XP). It's under User Configuration->Administrative Templates->Windows Components->Windows Updates.
KenW on February 8, 2007 07:54 AMI don't intend to be *too* rude, but why don't we try and educate users to actually read the message. Windows is quite good in this respect (at least recently) in telling you exactly why the little box pops up, and what to do to fix it. Granted a lot of dialogs are useless and ill-used (I'm looking at you IE6). But if we as software developers spend effort to make better/easier dialogs, then at least our users read the damn things. It should be a two way street. Because, as so many people have highlighted, a one way street is going to be the wrong street for too many people.
/rant
I have very little tolerance for all those millions of people who are otherwise of normal intelligence, but can't be bothered to read two lines of text on a dialog box because "they don't get computers." Using Windows or OSX is not rocket science. Most of my family is like this and it drives me crazy. They can read well enough to get excellent grades at good colleges, but can't read enough to understand that clicking yes will install the update?
//rant
In any case, there should really be three options: Normal (prompt for confirmation), Advanced (dont' do anything until I tell you to), and Idi^H^H^HSimple (do everything automatically). Thankfully, Windows update already handles all three.
CuRoi on February 8, 2007 07:56 AMUsers *can* be taught to pay attention to error messages. My users read all dialogs that aren't "normal" (eg., ones that say no data is found matching their search criteria). They used to try to tell me what the error message was, but could never remember (and couldn't write it down consistently, either). Now they've been trained to leave the dialog up on their system and call me; I go to their desks and can see what they were doing and read the message myself.
I agree that dialogs are displayed way too often, though. It comes from developers that have bad habits. The developer who I replaced was typical. The user would choose "Run Batch", and a dialog would be displayed to get the necessary information (batch # to process, date to print on checks, etc.). When they clicked "OK" to run the batch, a MessageDlg asked "Are you sure you want to run the batch?".
I pulled out all of that kind of crud. If the user goes to the menu item and chooses something that requires further input, and then provides that input and chooses "OK", I figure they're also smart enough to accidentally choose the wrong menu item and choose "Cancel" on the resulting input window. My users seem to appreciate the fact that I have at least some respect for their intellect. :-)
KenW on February 8, 2007 08:01 AMToo many times, my freeware software has "upgraded" to trial versions, versions with less functionality (to push services), annoying functionality (MSN Messenger Nudges, Winks, one-line ads etc), ugly upgrades (remember when everybody tried to upgrade to XP-style icons and it didn't fit in with your system?) and versions with advertisements. Of course, they never tell you when they will do this.
Windows Media Player 10 removed the ability to back up your media licenses. That means that you have to rely on the music store (and your ability to log in) to let you redownload a license.
I also remember the update to Windows Media DRM pushed out just three days after the exploit as a "critical update". Those two updates made me turn off Automatic Updates. Now I get Windows Defender definition updates every hour - and with several dialogs to go through each time! WGA's value is also dubious (to say the least...)
I also remember the annoying "Restart Now/Restart Later" dialogs - argh.
Some things should be done automatically - for example, crash reports should be collected and sent regularly (seriously, there's no privacy issue) and updates should be automatically downloaded for most computers and installed after the user presses "shut down" (like in XP). Sorry, security isn't /that/ critical.
If only Microsoft etc didn't pull this crap, I could have a while on my computer annoyance-free. Yeah right...
Tomer Chachamu on February 8, 2007 08:05 AMTo the folks against automatic updates... it can't update unless you click "allow" on your firewall... even Windows' automatic updates. Start paying attention to what is trying to access the internet on your machine and half of the problems here wouldn't be.
And besides, if you don't like the behaviour of certain software... the old expression 'vote with your feet' comes to mind: don't use it. I may never watch a real player or quick time video ever again, I won't touch iTunes.
And about people not reading dialog boxes... It's their funeral; if they don't want to read the dialog boxes, that's their prerogative as the owner of the system.
Steve on February 8, 2007 08:07 AMJeff if the examples that were given wouldn't have asked for permission don't you see a lot of people yelling and screaming that Microsoft or whoever is installing stuff without my knowledge and/or permission. I do agree with you that you shouldn't have to ask them for permission on every single error that pops up, even though some of the examples were not errors, but run a standard protocol to resolve the issue keeping the users having the warm and fuzzy feeling.
As for the Check engine light I don't know if it would do anything, but it would be funny to see a Big Yellow Computer icon in the upper right corner just sitting there. My guess is that if something like that would be implemented the users would be calling to complain about the fact that they cannot remove the Icon rather then trying to find out what the icon is representing. The solution that I can come up with is to have some OS setting/registry setting that says whether or not the user wants to be notified of Error messages/System messages or if they just want the computer to handle them quietly. Make the setting have a default of let the computer handle them quietly. That way it allows for the system to potentially work at its peak as well as giving the option for those who want to know everyt little thing that goes on.
Brandon on February 8, 2007 08:10 AMI ignore the check engine light on my car. Because I know what it's telling me: your O2 sensor is going out. I know it's going out. It's been going out for four years. I don't care. My car's O2 sensor only gets me an extra mile or two to the gallon. It's not worth caring about.
Much the same way that since the software has to approve updates with me (and I don't care, because I use a legal copy of Windows), it gets to restart and update when I'm darn good and ready. So it just sits there waiting for me, whining at me once in awhile until I'm either so frustrated I restart, or I'm totally done with what I'm doing and shut down.
Jae on February 8, 2007 08:13 AMTransparent background updates only work when the update is guaranteed to do no damage to the system. No softwre company can provide that guarantee today. Apple released an update that caused external FireWire drives to be erased. Microsoft's Windows XP SP2 update rendered a significant number of Windows XP computers completely inoperable. Every software company has had a 'bad update'. It is inevitable, because you cannot test everything. If perfect updates and software were possible, a significant chunk of EULAs wouldn't be devoted to indemnification.
Warning dialogs were created to give the user an escape hatch out of potentially destructive actions: "Are you sure you want to reformat this disk? All documents on it will be lost." The "The Following Updates Are Available" dialog is such a warning. It just neglects to mention the possible dangers. Removing that warning by default is not a good thing.
The real problem with the Windows Update dialog is not that it exists, it is that it is in two stages. The first stage merely suggests that you might want to, possibly, maybe take a look at the second stage. It is a small speech bubble off to one side, smaller than an MSN 'Joe has just signed on' message. It provides no useful information about what kind of updates are available; a minor point release to Windows Movie Maker is just as important as a patch to prevent the next ILOVEYOU or Code Red.
scott lewis on February 8, 2007 08:18 AMA big issue here is *trust*. Users don't trust dialogs that pop up and tell them to do something anymore. There are no so many emails and popups from www.cit1bank.com and whatnot telling them to "update their account information", that people simply don't trust unsolicited requests from software anymore.
In order for a "check engine" light to work, it LITERALLY has to be a light -- something in hardware, on the monitor, perhaps, that ONLY the OS itself would be able to enable. That way, users would know that the prompt came from the OS, and not spyware.
David Markle on February 8, 2007 08:24 AMA lot of this is already in place:
Windows Automatic Updates can run automatically, but power users can override how they work or block specific update.
Notification icons in that area near the clock that we're not supposed to call the system tray are a lot less annoying than dialogs, and most of them fade away if you don't click on them.
Windows One Care is as close as a Check Engine Light as I can imagine. It runs automatically, allows me to override its behavior, and turns yellow or red when it thinks I should know something. The only shortcoming (which is Jae pointed out) is that it doesn't let me override its behavior and stay green. In Jae's check engine example, this would mean a way to acknowledge the O2 sensor light without disabling the check engine light entirely. That makes it less useful as a visual indicator to power users.
With the exception of UAC, a default Windows / Office machine pretty does what you asked for, doesn't it?
Jon Galloway on February 8, 2007 08:49 AM> It would be sufficient to link and comment, but ripping off 90% of someone else's article and using that as 70% of your own is a bit, well, rude.
Raymond's original post, including title, is 665 words. I quoted 318 words, or 47%. Most of that is the user stories, which I *had* to quote to give the issue context.
My content is 264 words, or 45% of the total.
Jeff Atwood on February 8, 2007 09:09 AM> Now they've been trained to leave the dialog up on their system and call me; I go to their desks and can see what they were doing and read the message myself.
Wy not just have the exceptions report themselves to you automatically, via email or a web service? Why does the user have to go through the rigamarole of calling you to let you know your application failed?
> a default Windows / Office machine pretty does what you asked for, doesn't it
Vista is better in this regard, because automatic updates are more seamless. But the reporting of crashes is still not automatic (and should be).
Jeff Atwood on February 8, 2007 09:18 AMI like the idea of automating everything possible, and certainly you get a lot of dumb dialog boxes in Windows, but even the minimal set you could safely use in the general case is probably too many dialogs.
The problem is that the user _must_ give certain consent, even if they have no idea what they are consenting to, because Microsoft can't afford the alternative. They _have_ to ask about crash data, because crash data may contain arbitrary snippets of confidential information, and they can't just take it without asking. The class-action lawsuit would be huge, the privacy advocates would scream bloody murder, and both would be right. Yet, we hear from people in Microsoft that the crash reports are incredibly useful (at least in the aggregate).
You can't just make these decisions.
A corporate desktop, where the person sitting in front of the machine isn't the owner, could be made decently slick, but for a home machine, you simply can't make it simple enough; the possibility of things containing confidential data really blocks things up. If you could guarantee that the user never does anything important with their machine, you can make something easy, but then you've got a game console.
Jeremy Bowers on February 8, 2007 09:31 AMWell obviously the audience of your blog is the wrong audience for this message, as developers tend to fit the model of "Power User" and like control.
But as Raymod points out, non-power users IGNORE DIALOGS. They just do. We can sit here till we're blue in the face insisting that they should start reading them, but they won't. It's been noted in nearly every modern usability book ever written.
So something better must be done.
Haacked on February 8, 2007 09:36 AM"Wy not just have the exceptions report themselves to you automatically, via email or a web service?"
Does that functionality exist in the Windows API? .NET Framework? Java runtime? The OS itself? Can you route every dialog box/exception thrown to an email address or web service?
If not, then it's a moot point. Might as well say, "Why don't you have the magic IT fairies fly over to your office on wings made from golden fleece and whisper the exception softly in your ear?" ;)
Scott on February 8, 2007 09:36 AMDoggone, wish I could edit my post.
"but for a home machine, you simply can't make it simple enough"
I'd encourage you to read this interview with Alan Kay. https://www.cioinsight.com/print_article2/0,1217,a=200162,00.asp
His argument is that by making the computer simple to use, we have made it less useful. They all have to appeal to everyone and this limits the potential of the computer.
The "check engine light" would be useful for hardware related issues such as defective disk, memory, or other hardware related issues. It could *maybe* be used by giving alerts when hard disk space becomes critical, memory usage approaches limits etc. Make it configurable to make everyone happy.
For software, I'd say your on your own and the "check engine light" would be of no use because of the many different manufacturers and there update schemes.
For recent versions of Windows I always set the auto updates to download the updates, and then I choose what to install.
Seems to work out OK.
Reporting of crashes and other automated logging etc should be configurable, whether defaulted auto or not.
Less dialogs is better. If you do get them, provide a link to the configuration to suppress them. If they don't have that linke or button then bad design. If you are getting a lot of security dialogs that you don't want to see, then you should be able to suppress them easily.
I guess if there wouldn't idiots making malware the OS and the corresponding software would be more steamlined.
Jon Raynor on February 8, 2007 09:45 AMWith softwares, we should do just like we already do with everything else.
For crashes or errors:
Let the thing crash. All the user need to know, is that the application has stopped functioning. If it's not evident that the software has crashed, tell them. Although, most of the time, its pretty self-evident.
If it bugs them, they'll go to the repair shop (or contact them) or even just go to a forum or somthing like that. They (repair-people) then will verify what the problem is (log files!) and repair it.
For security updates, update. That's it.
For functionality updates, just don't do it unless they ask for it.
That's what we do for hardware. Why not do that with softwares?
JF on February 8, 2007 09:53 AM> Can you route every dialog box/exception thrown to an email address or web service?
For *your* application, absolutely you can! Just set up a global exception handler; there are a bunch of nice frameworks out there. I have two on CodeProject for ASP.NET and Windows Forms.
It is profoundly wrong to rely on users to tell you when *your* app has failed.
Jeff Atwood on February 8, 2007 10:12 AMFine article.
It might would be a good idea to let the user to adjust the "level of messages" or the "level of attension" the software wants from him. Say a software product during the first installation will examine the user's expirience and adjust this "level" for him, or do not examing and accept the default "level", so on.
I'v been working with Vista for a few months now. Talking about training users to ignore dialogs!
Running Vista is a never-ending parade of redundant and confusing modal dialogs. They pile on each other, its common to have three or four stacked up in one place.
You know how you click on the little icon to tell windows that you are about to remove your usb memory stick? In Windows 2000 this produced a modal dialog telling you it was ok to remove the stick. XP fixed this, replacing the annoying modal dialog with a warning flag over the notification area that goes away without user intervention. Much better.
Vista changed the icon, for no good reason, but you'll figure it out. Vista leaps backwards 7 years and now displays yet another modal dialog telling you that its ok to remove your device.
Where MS got this idea that modal dialogs should be the central feature of their OS user interface is beyond me.
They really need to refactor Vista to eliminate as many of these modal dialogs as possible, replacing them with some kind of modeless system.
Jim Howard on February 8, 2007 11:18 AMAs others have said, it's a trust/control issue - inexperienced users might not care, but experienced ones tend to get alarmed that there machine is going off talking to the rest of the internet, altering what's on their machine without telling them. It's their machine, not Microsoft's (or Apple's, or 's.
Simon Geard on February 8, 2007 11:53 AMFirst, my congratulations for your website I have discovered few months ago. Since I never missed one news :) (I am french)
I think it can be a clever idea to put some light warning on screen (left or right) like OSD display but smarter. It is more easy for general user to understand such warnings (like in a car) rather than small and confusing icons in a traybar or maddening tip box.
Developing such warnings (like disk low storage, internet disconnection, firewall disabled, sound level cut) is to my my opinion a great idea for ergonomic experiences :)
Why not ?
> My content is 264 words, or 45% of the total.
Don't forget to count the words in your replies. You also comment on people's comments to your original blog post. That should count for something.
Sentax on February 8, 2007 01:01 PM>The Software "Check Engine" Light
I've used software that had a button with a smile face on it. If you clicked the button it said everything is good to go. If the face on the button was a frown then your attention was needed.
I guess you can consider this the "Check Engine" light. Smile = Check Engine light off, Frown = Check Engine light on.
Sentax on February 8, 2007 01:04 PMI don't know if there is a universal, good solution for this. You can automatically do everything by default and hide the preferences behind "advanced" configuration panels. Then people will complain that Microsoft is secretly spying on you and breaking your machine. Or you can not automatically do it, and then people will complain that they have to find all the settings to enable them. Or you could prompt the first time about and then people will complain about getting prompted. Or you could heuristically sort of guess what people want to do (like those "personalized menus") but then everybody will be confused when things start behaving differently when they haven't altered anything. Personally I like to know the first time I have to make a decision, and get an opportunity to configure it right then, or go to the main configuration panel, but then not get prompted afterwards ("[checkbox] Always do X in the future"). But the same people that ignore dialogs will just click cancel on that dialog. Whuddyagunnado?
Aaron H on February 8, 2007 01:11 PMHm...I thought Windows OneCare was the Check Engine light...
Scott Hanselman on February 8, 2007 02:52 PMThank You, all linux geeks for shouting about how bad is sending some data without user's knowing, and all those MS=big brother rants.
See? You made some dialogs happen...
I work in a small IT shop where I do all of the internal programming, but also pitch in on help desk duties. Users often call because they got an error message, but cancelled it immediately without reading it.
I've often thought that it would be a good idea to write an entry to a log with *any* error message text that a program displays, so that a tech can read the error log when a user has cancelled the error message away.
I write a lot of VBScripts and VBA code. In Windows, there is a mechanism for putting messages directly in the event viewer log:
Set WshShell = CreateObject("WScript.Shell")
WshShell.LogEvent 1, "Error 972: Could not invert A-Frame"
WshShell.LogEvent 4, "Information Message: Everything went fine."
I'm going to start adding this for all of my programs whenever I display messages to my users. What I think would be cool would be if they API for displaying message boxes would include a "WRITE TO EVENT VIEWER" parameter as well.
TimothyChenAllen on February 8, 2007 06:58 PMIf you do to many things in the background though, you create another issue. Users get upset that their software is calling home, hugging resources, taking up memory and not being transparent about what is it doing.
Also, I absolutely abhor the "check engine light". I wish the cars would have a small LCD which would display an "error message" that I could google for to see how serious it is. This way I would know if this is something minor that can be fixed by the local gas station mechanic in 15 minutes, or if I need to go to a licensed dealer garage and leave the car there for a day or two.
Personally I like verbose error messages. But then again I'm working in IT, and have an MS in computer science so I guess I might be an exception from the rule here.
Luke on February 8, 2007 07:40 PMI think a lot of peoples gripes with automatic updates could be solved with a centralised scheduler. If the OS provides a mechanism for programs to hook into and monitor updates, and this scheduler is well planned, designed and implimented such that it knows what the best times to update are (come on, have you seen some of the scheduling stuff Microsoft has done in Vista with their memory management?) and this mechanism also allows the user to allow and deny automatic updates per program or with polocies etc. things could work quite well.
By having a centralised point to manage update polocies power users are much aleviated in regaining control (even if it is a misguided control - you really can't stop idiocy, just try and educate) which means that other users can be free to just let things update automatically.
The centralised mechanism could even introduce some form of logging system to soothe the media's fears people are stealing our data.
Of course some developers will decide they know better and write their own, but I think it would work for a lot of cases and greatly improve things.
Getting away from the unanimity of the "no updates unless I say" responses, which are generally coming from the geek end of the gene pool anyway (and fair enough - we geeks are your audience, after all), I just want to take issue with the idea that Microsoft et al need to do anything at all about users who don't read dialog boxes. Me, I doubt that such users exist in the sort of numbers Raymond is assuming. Maybe he has a friendly face, so the world's idiots come to him for advice; maybe he lives in a particularly dumb part of the world where the world's idiots congregate in unusual numbers; I don't know. But I don't believe it's desirable, or even necessary, to cater for morons. If they can't be bothered to read a dialog box that irritates them, and deal with what they see, then why should Raymond, BillG or anyone else go out of their way to coddle them? Let them suffer. Write software for people who deserve it.
Curmudgeonly? Maybe. But it needs to be considered.
Eric TF Bat on February 9, 2007 02:19 AMThese dialogs have their uses. What we do need to get rid of are dialogs that tell me that an operation has completed -- I hate clicking on their OK buttons.
When TortoiseSVN exports what I asked it to export, it tells me it has exported it. Uh, thanks but no thanks. I'd rather this be indicated quietly. Possibly by showing a progress bar and then going away.
When a custom script I have to run at work finishes the routine transformation it performs, it gives me a meaningless OK dialog whether everything is OK or not. Only give me one when there's an actual error, please. Just go away quietly if things are A-OK.
Leo Petr on February 9, 2007 04:08 AM>Wy not just have the exceptions report themselves to you automatically, via email or a web service? Why does the user have to go through the rigamarole of calling you to let you know your application failed?
Well, primarily because the user's desks are about 20 paces or so from my desk. <g> And the mail server is in an office about 15 miles away. So I actually find out about the problem faster, and am at their desk working on it before I'd ever receive an email.
>Does that functionality exist in the Windows API? .NET Framework? Java runtime? The OS itself? Can you route every dialog box/exception thrown to an email address or web service?
Actually, I could do that rather easily. As I mentioned above, though, it's not even worth the effort when the users are in such close proximity.
KenW on February 9, 2007 09:55 AM> I'm playing a MMORPG right now, and I need all of my bandwidth
This would fail the "when the PC is idle" test I listed above. That's
not Considerate.
> I want keep an older version as it works faster and is less buggy
Really? Even if that older version has a massive security hole?
just have it automatically download by default and give power users the option of being prompted. If all else fails windows already has a rollback feature.
Nothing on February 10, 2007 02:47 PM>Windows is doing lots of things without asking.
No it doesn't, what you just said was that you were annoyed by the dialogs when you played. Windows doesn't do squat without asking and people that think so are just ignorant to how things work or have spent too many hours at "i-hate-anything-ms-does-but-still-use-it" -websites.
PL on February 11, 2007 06:11 AMJust do what Apple does. Create a HIG that requires buttons to describe ACTIONS that will or will not be performed, and dialog to desciribe in one or two sentences of bold text what is about to be done. There. Problem solved. It's embarrassing that it takes Microsoft DECADES to figure this out.
DMB on February 11, 2007 11:49 PMThe rollback is the most useful thing - if I'm lazy I just recommend someone use Windows Restore - again, the trouble is a large percentage of people don't explore(pardon the pun) or don't know about it.
Rollback on a folder/app would be even nicer if built into the OS - though user-accounts makes that trickier.
Vista has file-rollback as well which (from the beta) seems like a great thing to me - for recovering accidentally overwritten document changes.
The dialog: multiple summary errors in one dialog helps but most dialogs could be replaced by a notification line/s (ala browsers with popup blockers). If you get lots of lines stacking up you know you should do something! :D But they should clear away after a timeout to an icon (perhaps next to the taskbar application button) - for recall later/and on application reload.
Finding a log file now in most applications is a nightmare - there are logs everywhere on a system and the Event Viewer isn't suitable for the average user. Plus, who reads the whole log? A filtering mechanism on error logs is needed for users.
But all these logs are useful for the developer/admin - useless for the general user who refuses to read even a dialog.
Even the dialog icon is ignored because ALL dialogs are EQUAL (in the eyes of a lot of users). Colour-coded/animated dialogs (using varying brightness/inverse text) that signify the importance might improve support a bit.
(User: "I got a flashing dialog - what do I do?") *grin* But you get my point...at least that helps signify the importance of them to the average user and the admin, much as the BSOD does - although blue was inappropriate.
Skip on February 12, 2007 09:38 AMTimothy, I think Windows also takes the same approach for many things. I've found that trolling through my event viewer periodically is a great way to tune up my computer. :)
I've managed to find network problems, hard drive failures (fun!), CD drive failures, and all sorts of other interesting stuff.
Maybe computers should have "tuneups". :D
Every 6 months, pay someone to remote-assistance into your computer and have them examine your logs...
By the way, I know that 99.9% of the readers of the blog will try to flame me for the previous sentence. I just think that it may be a good approach for many users.
Another Geek on February 18, 2007 01:30 PMI somewhat agree with DMB. Apple has been three steps ahead of Windows for decades. Perhaps someone should notify Bill. If Microsoft didn't have a monopoly with nearly every game programer on earth, this problem would end.
To be honest, I don't see a simple way around the error messages for the next Windows OS without completely redesigning it from the ground up. But that probably wont happen, not as long as they can keep a steady income.
Today on March 2, 2007 09:57 PMOh, my good, so this became a mac vs windows thing too. So, jsut because windows don't have "buttons explaining actions" (although I would argue OK, Cancel is exactly doing that) then mac is three steps ahead ? It's just two ways of doing it and please don't touch my "OK", "Cancel" buttons and garble them to become something with different meanings each time, the mac way is certainly not better or easier to understand.
Windows has always been more of a power os compared to macos and we certainly do not want it dumbed down to mac level.
"Windows has always been more of a power os compared to macos and we certainly do not want it dumbed down to mac level." - clearly you've never heard of Unix. Get your facts straight.
Jo on May 29, 2007 06:51 AMi have given up
alowo agnes,goog on July 16, 2008 01:32 AMContent (c) 2009 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved. |