The Software "Check Engine" Light


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.

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

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

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

I’ll have to vehemently disagree with you on this one. I want my computer to only do bwhat I tell it to/b. Software has no place sending error reports, downloading software, or doing ianything/i without my permissions.

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.

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

In 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…

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

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.

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

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

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

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?

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.

Users 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. :slight_smile:

Too 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…

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

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

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

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

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.