Fact: Warning and Confirmation Dialogs Do *NOT* Work
Confirmation dialogs are not a “safety net”. They do not make people stop and think. They do not warn people about dangerous actions. The reason is simple, people will unconsciously form the habit of dismissing them because, through hundreds of repetitions, they have been trained to hit “OK” automatically.
People form habits, and they perform then automatically. When I leave my apartment I close the front door and lock it. I don’t close the door, then decide to get my key out and lock it. I do it all on autopilot. Shutting and locking the door is one continues action, not two distinct actions.
Habits can be very useful — I never worry if I’ve locked my door or not, and I’ve never come home to find it unlocked. It goes without saying that bad habits cause problems. What is important to realize is that people will form habits when you expose them to a repetitive task, and there is no way to stop this. Always following action A with action B trains people to perform A and B every time. They become inseparable, and automatic.
One police officer gave another example of learning to do the wrong thing. He took it upon himself to practice disarming an attacker. At every opportunity, he would have his wife, a friend or a partner hold a pistol on him so he could practice snatching it away. He would snatch the gun, hand it back and repeat several more times. One day he and his partner responded to an unwanted man in a convenience store. He went down one isle, while his partner went down another. At the end of the first aisle, he was taken by surprise when the suspect stepped around the corner and pointed a revolver at him. In the blink of an eye, the officer snatched the gun away, shocking the gunman with his speed and finesse. No doubt this criminal was surprised and confused even more when the officer handed the gun right back to him, just as he had practiced hundreds of times before. Fortunately for this officer, his partner came around the corner and shot the subject.
What happened here is that because the officer always practiced handing the gun back after a disarm, it became a habit, and he did it without thinking, even though it was clearly the wrong thing to do. When users click “OK” after doing an operation for a few dozen times, they will start to do it out of habit. Their muscle memory will “hand the gun to the bad guy” by clicking “yes”, even though their conscious mind is screaming at them not to do it.
The point to all this is that the ubiquitous confirmation/warning/”are you sure?” dialogs provably do not work.
This is the dialog I get wheneve I empty the trash on my computer. Every time it comes up, I hit enter to confirm. If you look at Apple’s documentation, they will tell you that the command to empty the trash is command + shift + delete, but they are wrong. The command is command + shift + delete + hit enter to dismiss the dialog that they have trained the operator to ignore. The first dozen times I emptied the trash, the dialog made me pause and consider what I was doing (the first few times I even read it). The next thousand times, it meant nothing because I was trained to dismiss it reflexively. I have accidentally deleted files, and the dialog did not stop me. I was not even aware of it until after I had closed it.
The solution is to let users undo common destructive actions. You can not warn them that they are about to break something, but you can let them unbreak it. If MacOSX let me undo deleting my work, then the problem would be solved. Actually, MacOS X 10.5 Tiger’s does just this.
If you think your program does something special that can’t be undone, you are almost certainly wrong. Apple did not need to invent a time machine just to let me undo deleting a few megabytes of pictures and text — that level of engineering was to address a larger, more general, issue. It’s nearly a decade into the 21st century, computers now come with hard disks measured in terabytes, so much ram that we need 64 bit machines to see it all, and multi-core 3 GHz processors with 128 bit vector units. Compare the Mac Pro of today with the Original “Mac Pro” Today there is enough space to temporarily store the information needed to make any operation invertible. Exceptions to this rule are very rare.
If you can’t undo something, it’s probably because the software maker didn’t want to devote the engineering resources to make undo work. In their defense, there is only so much that can be done. Sometimes trading undo for improving a more commonly used feature is the best option given limited developers and unreasonable deadlines. Unfortunately, most of the time they don’t understand the need for undo, and why their warning dialogs are not just sub-opimal, but totally ineffective.
Even an undo that mostly works, and the occasional warning, is infinitely better then unvarying warning dialogs. This is because the warnings are no longer repetitive. If Mac OS X let me undo the routine deletion of small files, and only warned me when I was deleting something (like that Twilight Zone marathon I recorded) which couldn’t be “remembered” for a few minutes, then the confirmation dialog would mean something. This is because I wouldn’t be exposed to it often enough to form the habit of automatically dismissing it. Of course, someone in video-production who routinely works with huge files would be constantly exposed to this warning. Ultimately the best answer to any destructive operation is still undo.
The important thing to remember is that it is simply impossible for confirmation dialogs to work if the user is exposed to them repeatedly, and that undo is the best solution.