Dialogs are everywhere- those little popup boxes that give us an inside peek as to what the computer is up to. They’re often necessary (aren’t you glad there’s an ‘are you sure’ box when you’ve accidentally chosen to format your hard drive?), but sometimes they can be taken to extremes.
Broadly speaking, we can divide dialogs into two classes – those that require a choice, and the single choice ones (such as the ‘OK’ dialog). When a choice is necessary, a dialog is often a good option – the program dutifully waits until the client chooses, guaranteeing that nothing can happen without user intervention.
However, there are other cases that come to mind. What if the computer can figure out the next step, and the dialog is redundant? Then it actually impedes the client’s work. This is the situation with the single button dialog; the computer knows you have only one choice, yet insists you stop and act upon it, like a red light in the middle of a deserted highway.
From a programmer’s perspective, the OK dialog is actually a crutch. For instance, I can code a ‘file saved’ dialog with one line of code, but it takes quite a bit more to visibly lock the display during the save, show a progress bar, unlock the display, and display a status message at the bottom afterwards. Because of this ease of use, don’t expect dialogs to go away too soon.
Although getting rid of all single button dialogs is not reasonable, we can reduce them and make them more intuitive. One technique I’m hoping to use in a future program is a large status display side by side with the program – as you work, responses are presented, but work-flow is not interrupted. You get necessary information, but no intervention is required. Whether I’m advertising it in the near future or not will tell you if it worked out…
Another technique I’m trying in a current release is a dialog box that closes after a five second delay (you can also close it normally with the OK button). While the timing could interfere with longer messages, by closing itself I feel the client is less irritated by the interruption. It’s not perfect, but perhaps it is a start, and I’d appreciate it if any readers could try the program and give me feedback. It’s called ‘Bible Puzzles for Windows’, and even if you aren’t religiously inclined, the program might be worth a trial download just to play with. Among other things, I’ve created ‘stretchy’ windows – dragging them full screen makes the font huge (perfect for kids), while dragging it smaller makes the text more ‘adult’ sized.
In software a programmer needs to be aware of dialogs, and what they have to accomplish. While a handy crutch for programming, the goal of good software must be to minimize them and avoid interrupting the client’s work-flow whenever possible.