“There is a particular form of excise that is so prevalent it deserves special attention. In Chapter 9, we introduced the concept of flow, where the user enters a highly productive mental state by working in harmony with his tools. Flow is a natural state, and people will enter it without much prodding. It takes some effort to break into flow after someone has achieved it. Interruptions like a ringing telephone will do it, as will an error message box. Most interruptions are avoidable; a few aren't. But interrupting a user's flow for no good reason is stopping the proceedings with idiocy and is one of the most disruptive forms of excise.I know that programmers frequently implement error handling strategies without much consideration for the users' experience. After all, they want to find out all about the errors before the user gets the application, so the end-user experience is bug-free. Whilst laudable in its intent, this ignores the fact that often the 'bug' is simply the failure of the application to meet the user's expectations.
Poorly designed software will make assertions that no self-respecting individual would ever make. It states unequivocally, for example, that a file doesn't exist merely because it is too stupid to look for it in the right place, and then implicitly blames you for losing it. A program will cheerfully execute an impossible query that hangs up your system until you decide to reboot. Users view such software behavior as idiocy, and with just cause.”
If we look at web applications we can see that designers have moved away from popup error messages to ones embedded within the page the user is acting upon. Validation warnings that are unobtrusive, but yet noticeable, are perhaps the best example of this. Sometimes a modal dialog box is necessary, but application developers need to be aware that the end-user is often only annoyed by, rather than informed, by the messages our applications give them. It's something I will be thinking about the next time I start coding.