If you run any version of Windows with auto-update enabled then you are familiar with this little box:
Use it as reminder of something you should never do.
What’s wrong it? Computer will close whatever you had open and reboot and unless you are at your machine to see this dialog your open apps are gone. Even if you see it your options are to Postpone or Restart right now. In essence you have no choice. Your computer is taken over by software dictator.
I have backup scheduled in the middle of the night. Of course, the Windows updates get installed when computer wakes up from sleep to perform backup, and since that function in Windows does not anticipate that there might be no human seeing Windows Update message, it reboots the machine and interrupts the backup in the middle. Many times I have lost all state I had in open apps until I had this turned off.
The only remotely acceptable option for that Windows Update dialog would be if your desktop and all open apps are returned to exact same state as before reboot. But, they are not.
Contrast that with how Mac OS X handles the OS updates. It does not show any dialog whatsoever. It does not stop your work-flow. The Update icon in dock-bar starts bouncing to let you know something is up and when you click it, you see this (note that icon in dock stops bouncing and just sits there after certain time interval):
And you are free to ignore it as much as you want. You can keep it open for weeks until you decide that updates can be installed and machine rebooted. This design is not taking over your machine and breaking your work-flow to install an update which in no way is what you need right that moment.
On Windows, its race to disarm the reboot ticking bomb.
Software should never be designed so it forces the user to do anything out of the context of his current work-flow.What I mean by that is following; Showing Yes/No/Cancel message box that asks user to save data when application is being closed is in context. It is direct response to user action. Showing Software Update dialog when an application is started is completely unacceptable since it is not what user wants to do. It is not in context of his intent.
When you are not in control of your machine you gets frustrated. There is one more decision to make, one more interruption to take which drives all of us nuts. And because of that we label software and even whole operating systems as hard to use, frustrating and just not pleasant.
This design point is easily overlooked. I’ve made more mistakes like this than I can count. But its contribution to pleasing, easy to use software is huge. Keep it in mind.