Dialogue boxes. We all hate them. They tell us we did something wrong. Or that the system has messed up in some way but that the computer is working to get the problem fixed. Or that something has been 'saved successfully'. Sometimes, they even tell us the world is ending.
Dialogue boxes make the user feel frustrated, as it interrupts their 'flow'. Often times, they are unnecessary, and only accomplish the task of making one feel incompetent, dumb, or worse yet, utterly and completely helplesss.
Thinking long and hard whether a dialogue box is truly needed, whether it really helps the user accomplish their goals, is an important step when designing applications. When doing so, please keep in mind that:
1. Asking questions is frustrating to the user. For example, asking, "are you sure?", causes the user to feel doubted by the machine, which is ludicrous! We should always feel smarter than the machine in front of us, we should feel they are working for us, not against us, and that they are making our lives easier, not more complicated.
2. Present the user with choices instead. This gives them empowerment to control what happens. If one of the choices is going to make permanent, drastic changes to an application, then it's definitely a good idea to present that information before the change is confirmed. Otherwise, it's likely not necessary, and considered a bother.