The Software "Check Engine" Light

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).

I 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.

Well 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.

“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?” :wink:

Doggone, 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. http://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.

With 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?

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.

Fine 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.

First, my congratulations for your website I have discovered few months ago. Since I never missed one news :slight_smile: (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 :slight_smile:
Why not ?

I 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.

These 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.

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.

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.

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.

Just 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.

The 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! :smiley: 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.

Timothy, 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. :slight_smile:

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”. :smiley:
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.

I 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.