Click here to Skip to main content
Click here to Skip to main content

Defense against the dreaded Klingon Battlecruiser

By , 15 Apr 2004
 

Sample Image

Introduction

This article provides an intelligent solution to a phenomenon known as the Klingon battle cruiser. To illustrate, create an empty document in VC++, then type "something" in it. Good. The Battle cruiser is coming near. Ok, just type CTRL-F4 on the keyboard and - voila! There's one right there.

In essence, KBC (Klingon Battlecruiser) is an annoying message box. All kinds of users with all kinds of computer background have to face numerous message boxes dozens of time every day.

Most users "dismiss" the message box automatically, as a reflex. Why read it?

It turns out that a study (sorry - I have no formal references) has shown that a lot of good folks out there reject the KBC on site, w/o reading it.

Background

I am writing an application that is used in the context of a security system. Users can put in a lot of work and the application offers a BACKUP - RESTORE command that interfaces with the underlying SQL SERVER database engine.

My boss, who happens to be the industry Guru, is one of the greatest KBC fighters. He never, ever reads any phrase with more than two words. He dismisses dialog boxes so quickly, he could win Olympic medals.

What was bound to occur has occurred. He "accidentally" restored a database instead of backing it up. Result: 1 day of work lost. It could have been worse.

Earlier this week, he went to some clients, setting up their systems using his laptop and backed-up client 1 database on top of client 2 backup. This time, the loss was closer to 4 hours. Lucky.

Then he figures that if he makes that sort of mistakes, others are bound to do the same.

Hence this article, describing a simple way to replace "easy" MessageBox(), that too easily dismissed.

Using the pattern

Sample Image

Basically, the proposed design pattern replaces the "easy to dismiss" message box with a modal dialog box that not only provides messagebox like buttons, but that contains an extra confirmation edit control.

Once invoked, it will return "IDOK" if - and only if the operator has typed the confirmation in the edit control. The idea is that to know what to type, the user has to go through the text first. Only by carefully reading the text will the user learn what the "confirmation word" is.

Points of Interest

What this Graphic User Interface design pattern suggests, is that simple message boxes are often not enough to allow an application user to confirm dangerous operations.

Application users with all kinds of computer literacy skills have learned to dismiss most message boxes as trivial, unimportant. They automatically hit ENTER or click on the leftmost choice without reading.

The modal dialog box with edit control does not register with the brain as a message box. It draws attention. The user is more likely to read the text and, more importantly, think about the consequences before confirming their action.

History

First release of this article in April 2004.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Bamaco2
Technical Lead
Canada Canada
Member
No Biography provided

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralRe: Use clear buttonsmemberThomas Freudenberg15 Apr '04 - 22:52 
Patje wrote:
In this case it would be better to use the following buttons:
- Save as Excel 2000 file
- Save as Excel 4 file
- Cancel

 
I' convinced the user would read:
- Save bla bla bla
- Save bla bla bla
- Cancel
 
Regards
Thomas
 

Disclaimer:
Because of heavy processing requirements, we are currently using some of your unused brain capacity for backup processing. Please ignore any hallucinations, voices or unusual dreams you may experience. Please avoid concentration-intensive tasks until further notice. Thank you.

GeneralRe: Use clear buttonsmemberPatje16 Apr '04 - 0:05 
Of course, you are right.
In my enthousiasm I moved the problem of the long text to the buttons.
Providing the possible formats as a separate combo box (with an appropriate default value) would be much better.
 
Enjoy life, this is not a rehearsal !!!


GeneralRe: Use clear buttonsmembercompiler16 Apr '04 - 5:18 
Or, maybe the solution is to leave the file in the original format unless the user has modified it in an incompatible way (e.g. added objects not backward compatible). Alas, most desktop applications use object serialization semantics that make this difficult or impossible.
 
Once again, it's the software's limitations not the users' actions that define the real problem.
GeneralRe: Use clear buttonsmemberMartin Friedrich16 Apr '04 - 5:53 
Patje wrote:
The problem is often not that the text in the message box is too long, but rather that the labels on the buttons are unclear.
In your example the message box contains "Save changes to Text1", but what the user sees is "bla bla bla". Then he presses the Yes button because that is in most cases the most obvious choice.
Instead of using Yes, No and Cancel, try to use more descriptive button labels, like: Save, Discard, Cancel. Now the user doesn't have to read the whole message box anymore, only the buttons.

 
From my experience it is not the button or dialog text that annoys the user, it is the appearence of the dialog per se and thus the break in his workflow. What I found to be quite effective is:
 
1) set the least destructive option as default button - most users tend to "machine gun" the CR-key
 
2) if the user selects the option from 1) notify him about the effects of his choice (for example, cancellation)
 
3) another way I ran into a few weeks ago: force a short delay (e.g. 5 secs) before enabling all buttons that dismiss the dialog. This might tip the user into reading button labels etc.
 

Bye,
Martin Friedrich

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web03 | 2.6.130523.1 | Last Updated 16 Apr 2004
Article Copyright 2004 by Bamaco2
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid