A modal dialog box is the software designer making a claim that the software cannot do anything else until the user makes a decision. Upon closer examination, this claim is almost never justified. It’s usually a case of developer arrogance: developers assuming that because they have to care about some edge case in the software control flow, the user should have to care about it too.
There’s a particularly egregious example in Thunderbird 7.0 which I’ve seen a lot of lately because I’ve been composing a lot of emails offline.
I’ll be on the train or something, happily offline, typing an email in Thunderbird for later sending, and suddenly I’m interrupted by this:
Email composition, interrupted. Train of thought, destroyed. Input window, blocked. I cannot continue until I’ve processed what the software is asking me and made a decision.
Alright, Thunderbird, what’s the problem? Oh, you couldn’t save my draft to my mail server? Gee, I wonder why. Maybe because I’m not connected to the internet. There’s no reason I would expect you to be able to save a draft right now.
The correct behavior would be for Thunderbird to keep checking, silently, for an internet connection, and to save the draft to the server as soon as a connection becomes available again. But there’s no button for that, so I click “Cancel”.
Argh! Another one! What is it this time?
…An error message telling me my draft could not be saved. Thunderbird, I just told you to stop trying to save my draft. Why are you using an error message to report that you’re doing as I told you? That’s not an error, that’s the expected result of the button I just clicked. Why are you telling me anything at all? Why are you putting another dialog box in my way instead of just letting me get back to my email?
Jef Raskin used to call these “Monolog boxes” — they’re like dialog boxes except there’s no dialogue because the software isn’t asking me for any information. It’s just complaining to me and then making me click a button to acknowledge that I heard its complaint.
So that’s a modal dialog box followed by a modal monolog box just to tell me something I already knew, which is that I’m offline so of course drafts can’t be saved. And this pointless ritual recurs every ten minutes or so when Thunderbird tries to save my draft. If I’m composing multiple emails at the same time, I have to dismiss these pointless dialogs for every composition window!
The way to fix this interface is quite simple. There’s no reason to interrupt the user to report on the status of saving the draft. Thunderbird should allow me to keep typing my email while it displays a discreet warning message — off in the corner of the window, perhaps — to the effect of “This draft has not been backed up.” Even that much is arguably unnecessary, because the right thing to do in this case is obvious: back up the draft to my hard drive, and then sync it to my email server when an internet connection becomes available again. This can be done without any user input at all.
When the right thing to do is obvious, software should just quietly do it. It shouldn’t interrupt me to ask my permission or complain about problems.
December 7, 2011 at 8:29 pm
I use Evolution, myself. It’s a little better in this regard – it doesn’t use modal popups, but the notifications it gives when network connectivity is lost are still rather intrusive.
Personally, I don’t see why my mail reader needs to tell me about that kind of thing at all. Managing network connections is NetworkManager’s job, not Evolution’s.
December 7, 2011 at 8:49 pm
how about the dialog that asks for NNTP server credentials without telling you which news account it applies to? and yes, it does this over and over too.
December 7, 2011 at 8:56 pm
a) I agree, but b) Write the email in a text editor?
December 7, 2011 at 9:35 pm
Is Thunderbird in offline mode when this happens? I’m just sort of surprised because I do a lot of offline mail writing in TB (3 hours of commuting every day, sometimes with, sometimes without wifi in the train, which is being rolled out) and I’ve never seen any of these dialogs.
December 7, 2011 at 10:00 pm
Never seen these either, but I agree with the tone of the piece. I’m going to show it to my colleagues tomorrow since our software behaves in exactly the same way.
Love the term “monologue box”
December 7, 2011 at 10:05 pm
I usually see this when I have network issues. The message that bugs me is something like “cannot save message to sent items.”
I agree that the message should not be so intrusive. As you have suggested it could be saved to the hard drive and synchronized when the connection stops misbehaving.
December 7, 2011 at 10:46 pm
Aki said:
> Write the email in a text editor?
If my only goal was to reduce my own aggravation, sure. But I’m also trying to identify areas for improvement in our products so I “eat my own dogfood” as much as possible.
December 7, 2011 at 11:02 pm
“When the right thing to do is obvious, software should just quietly do it”
But you’re saying it’s obvious in 2011, as if someone just added that now. I haven’t checked the history of this particular dialog, but much of the Thunderbird UI is still around from the Netscape/Mozilla suite days, and with the development resources Thunderbird has, change does not happen quickly.
The obvious solution is to keep your drafts and sent email in a local folder instead (which is what everyone used to do before they had 5GB IMAP boxes…)
December 7, 2011 at 11:27 pm
And, by the way, Thunderbird 7 is insecure and unsupported – you should upgrade to at least Thunderbird 8…
December 7, 2011 at 11:34 pm
“When the right thing to do is obvious, software should just quietly do it. It shouldn’t interrupt me to ask my permission or complain about problems.”
My parent have a microwave with an amusing misfeature along these lines. To set a timer, you must touch the TIMER button, enter the duration, and then hit START.
If you just enter a duration and then hit TIMER, it pops up a message telling you the correct way to set a timer… the software knows exactly what you are trying to do, yet refuses to do it!
December 8, 2011 at 12:09 am
I brought this up on Yammer during the email apocalypse. I ended up filing bug 707827.
December 8, 2011 at 12:52 am
I think I need a little practise searching bugzilla, as I can’t believe nobody has filed this but the closed I’ve found is https://bugzilla.mozilla.org/show_bug.cgi?id=147519 (which is the same thing, but with a 2002 attitude to modal dialogs).
Aki said:
> Write the email in a text editor?
Thunderbird has a message editor. It’s designed for the purpose of writing email should be able to beat any text editor hands down.
December 8, 2011 at 8:28 am
Yeah, these are very irritating. As far as I know, they pop up when you’re offline but TB is not in offline mode (and therefore still thinks you’re happily online?). Sometimes, TB does detect when you go offline (or online) but not always. So one obvious thing to do would be to fix that.
Even so, I guess the dialogue/monologue boxes should be gotten rid off as well.
December 8, 2011 at 8:30 am
Thing is, Thunderbird is stuck in the 90s as far as usability. Look at Sparrow, Gmail, even mail.app, those are the current standards… Thunderbird doesn’t even support compose-in-a-tab even though Mozilla popularized tabs almost a decade ago.
I suspect Thunderbird is dead, but nobody at Mozilla wants to admit it. It stopped evolving (despite numerous version number increments) when the original dev team left Mozilla a few years back.
December 9, 2011 at 12:55 am
There are several older bugs along similar lines… the closest I can find are:
https://bugzilla.mozilla.org/show_bug.cgi?id=670801 and
https://bugzilla.mozilla.org/show_bug.cgi?id=678949 .
https://bugzilla.mozilla.org/show_bug.cgi?id=678947 is a more general case of “bad” error messages when TB thinks it’s online but can’t connect (as Raf mentioned).
There are probably more filed…
December 11, 2011 at 12:35 am
Even when you’re online, using imap folders for drafts is a bad idea (hey, now your trash has 300 different drafts of the same email. oops).
Drafts for imap accounts should always be stored in Local Folders. I thought this was the default; if you’ve got it set up otherwise, just go to Account Settings- Copies and Folders and FIX IT FIX IT FIX IT FIX IT FIX IT FIX IT.
FIX IT FIX IT FIX IT.
If this isn’t already the default that needs to be fixed too.
December 12, 2011 at 4:02 pm
[…] OK Cancel Some days you wonder if all the good UX people have been fired, or are launching their own stealth startups: Dear Thunderbird: I know you can’t save my draft; please stop complaining about it […]
January 21, 2012 at 5:05 pm
I still get these dialogs even though I am fully connected to the internet. I suspect this is because of Thunderbird logging into the incoming IMAP server that my webhost provides, and then trying to save the draft to my ISP’s outgoing SMTP account. Since many website hosts do not provide an outgoing SMTP account, I must use my ISP’s SMTP account for outgoing mail.
I wish Thunderbird would get a little smarter and stop griping about which server to save the draft, and just login to the proper one, and do it.
February 24, 2012 at 7:41 pm
[…] Dear Thunderbird: I know you can’t save my draft; please stop complaining about it (jonoscript.wordpress.com) […]
March 8, 2012 at 8:45 pm
To tell Mozilla Thunderbird to save drafts of messages you are composing periodically in the background:
Select Tools | Options… (or Thunderbird | Preferences… on a Mac) from the menu.
Go to the Composing category.
Select the General tab.
Make sure Auto save every __ minutes is checked.
Enter the desired frequency for saving (three minutes is usually reasonable).
Close the preferences window.
April 28, 2012 at 2:42 pm
> It’s usually a case of developer arrogance:
It is also a sign of developer laziness and of a developer failing to think “how would I want this to work if I were using it just like this”.
The laziness factor comes from the fact that almost all GUI libraries/frameworks come with a built in modal dialog call as a single ready to go item. Just call function “modal_dialog” with parameters x,y,z, and things just work.
Almost no GUI libs/frameworks come with any type of non-modal, unobtrusive notification framework ready made and ready to go.
So what does the lazy developer do…. He/She could build an unobtrusive notification system, or just use the ready made modal dialog. The lazy opt for “just use the ready made modal dialog”. With the result that they irritate the user to no end.
The failure to think through the interaction is somewhat interrelated to lazy developer syndrome. Thinking through the interaction, and workout out a better way takes effort. Or the lazy developer could just be lazy, and use the already built, ready to go “modal_dialog” function call. And so the lazy go with the ready made call.