The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Are you kind?

How are your messages designed?


A) Please close x first.
B) Close x first.

What do you think is more appropriate for a piece of software?
Bug hunter
Thursday, June 05, 2008
A-and-a-half: "You need to close X first".  It's not saying "please", but it's moved from imperative to declarative.
Richie Hindle Send private email
Thursday, June 05, 2008
This will close X, continue?
Thursday, June 05, 2008
I am invariably kind.  At times I'm actually verbose -- you can tell, can't you.

My programs say things like "I'm sorry, I can't proceed until you close x.  Close x | Cancel ".  They take the point of view that if something's not obvious, it's because the program didn't MAKE it obvious.  That's not always the case, of course, but that's how the program responds.

I also give feedback both for positive AND negative -- unlike the Unix 'standard', where if the program is silent it must have worked.  I've been burned too many times where the program DIDN'T work and was STILL silent.
Thursday, June 05, 2008
"X is closed"
control freak
Thursday, June 05, 2008
>I also give feedback both for positive AND negative
Unix tools are meant to be used as inputs to other tools so any extra output is a pain.

Even on gui desktop apps it depends on your market.
In an email program for non technical users then a box saying "email was sent to" is a good idea, but a compiler that popped up a message after processing each file would cause coronaries!
Martin Send private email
Thursday, June 05, 2008
>>>My programs say things like "I'm sorry, I can't proceed until you close x.  Close x | Cancel ". <<<

Ghaak!!  I (a human using a machine) can't stand messages like that.  Who is "I"?  Don't be wordy trying to be chatty.  Put your message writing effort in to clear messages that explain what the problem is or what the options are.

>>> They take the point of view that if something's not obvious, it's because the program didn't MAKE it obvious.<<<

That makes sense.  So make the situation obvious.  None of this "I'm sorry" stuff.  "You" are not "sorry".  "You" are a computer and in 2008 computers do not have enough AI capability to know what "sorry" means.
Thursday, June 05, 2008
"I'm sorry Dave, I'm afraid I can't do that."
quant dev Send private email
Thursday, June 05, 2008
I don't think a message like "I'm sorry, Dave, I can't do X" is kind.  I think it's patronizing.
Robert Rossney Send private email
Thursday, June 05, 2008
This conversation can serve no purpose anymore. Goodbye.
quant dev Send private email
Thursday, June 05, 2008
A study once showed that users reviewed programs more favorably that were overly polite with their message.

Then agian, does it matter?  Its not like your users will read any of your program's messages anyway.

Thursday, June 05, 2008
Microsoft's current "this program has crashed" message in Windows XP says something like "We're sorry, there's been a problem and Program X has to close.  You can send an error report blah blah etc..."

It's quite wordy, but it's a heck of a lot more polite than what you used to get.  I'm in favor of it; the old terse messages made it sound like a program crash was the user's fault, or worse.

(I'm reminded of a somewhat elderly lady I spoke to back when I did PC repair.  She was anxiously asking me about the "illegal operation error" she'd gotten.  I explained that it meant something you can't logically do, like divide by zero.  She was relieved to hear that; she'd been afraid the cops were about to show up at her door.  True story.)
Kyralessa Send private email
Thursday, June 05, 2008
Use kind messages.

Remember, the application is conveying *your* message to the user.  Treat them with respect - just as you would your friends and colleagues.

Alternatively, ask a business user/analyst to provide the text for the message.
UK Techie Guy
Friday, June 06, 2008
I think it's a difficult situation to resolve. If the error message says "You need to close X before continuing", it makes the error message personal. And I know several people who are likely to get very annoyed and shout "If it needs to be closed Mr. Smarty-Pants-Computer, why don't you close it yourself! Who's meant to be the servant here?".

This is particularly important to think about if the message could be the result of a bug. A message like "You have entered an invalid email address. Please try again." should only be used if you're sure that you will never tell a user their email address is invalid if it actually is a valid email address. Even though the message tries to be kind (personal, transitive, please), it ends up accusing the user of incompetence, where it's most likely that the programmer is the one who is incompetent. Perhaps a message like "This system doesn't understand your email address. Please enter a different email address, or contact Foobardyne to have us fix this problem." or perhaps allowing them to say "Use this address anyway".

Being kind is definitely far harder than just using different grammar or sprinkling some please and thank yous.

Things like the Microsoft Word autocorrect can be viewed as an attempt to be kind - although it can get very annoying when writing a document full of IUnknowns. (And yes, I do know there's an option I can change to deal with that).

I'd say that automatically saving changes so that a power failure or session time out doesn't lose what I've been working on is kind. And making it easy for me to get back the data I had when you autosaved after I changed a bunch of things I now regret.

In fact, the kindness I'm talking about above is probably more important than the wording of your messages. And given that most users ignore messages, not displaying a message in the first place is probably the kindest thing you can do.
Rambling Old Timer Send private email
Friday, June 06, 2008
+1: "And given that most users ignore messages, not displaying a message in the first place is probably the kindest thing you can do."
Users get annoyed with too much messages.  I once worked for a company where a message popped up when you wanted to do obvious things. 
When you closed the app you would get "Do you want to exit the system?”…
And when you wanted to delete something you'd get "Click yes to confirm delete", and if you did click yes you'd get a "You are about to delete something, do you want to continue?" and if you said yes again, you'd get "Are you sure?"...  (Really!)
It was so freakin annoying.  (Deleting scared the living daylights out of the poor users.)
Sufficed to say, don't pop messages unless you absolutely have to.  Keep it short.  Don’t do sweet.  If the user needs a message to continue doing his work, don’t ask them “please”.  It’s like saying “please wash your hands after you went to the toilet”  It’s not a favour being done.  It’s not something the user is doing for you or for the software, but for him/her self.  Why “please” if clearly the one benefitting from doing something will be the user?
Friday, June 06, 2008
'I don't think a message like "I'm sorry, Dave, I can't do X" is kind.  I think it's patronizing.'

That HAL, eh? He was a one!
John Topley Send private email
Friday, June 06, 2008
Thanks for all your replies up to this point. They've shown that this is indeed a very interesting topic.

My two-liner should only give a general idea so that it allows a bunch of different reactions. It's not exactly that phrase I need suggestions for, so please go on...
Bug hunter
Friday, June 06, 2008
Dim F as Fact
Dim A, B, C as Action

"F happened. Do you want to do A, B or C?

[ Do A ]

[ Do B ]

[ Do C ]

[ Cancel ]"
Daniel_DL Send private email
Friday, June 06, 2008
I'm with those who say "keep it short."  It drives me nuts when I have to read through a huge message to learn that I should have ...

As another has said, if the message is too verbose people won't read it.  Which could be disastrous for them, but here is the kicker: THAT IS YOUR FAULT as a developer.  You didn't explain the problem in a way that users would read the message.

If something is important enough that you have to inform the user, do them a favor and keep the message as short as possible to describe the problem accurately in words they will understand and to give them a reasonable course of action.  And make sure you don't simply restate what has already been said.

This applies to more than just error messages.  How many times have you seen this in a setup wizard?

_ Use XVE*MrgEnRgyFlacmte registration

New user trying to set up his software: "What's XVE*MrgEnRgyFlacmte, and why should I register it?  Hmmm. Better press F1 before I enable/disable this ..."  F1

FOO Help System
_ Use XVE*MrgEnRgyFlacmte registration

With this choice, you choose to enable or disable registration of XVE*MrgEnRgyFlacmte in your system.

You can:
 - Enable XVE*MrgEnRgyFlacmte registration
 - Disable XVE*MrgEnRgyFlacmte registration

The user isn't choosing help to find out whether he can put an X in the box, he's choosing help to:

1. Understand what XVE*MrgEnRgyFlacmte is, and why one might want to register it - or not.
2. Understand how the application might use it.
3. Understand the ramifications to him of enabling it or disabling it in the application.
Karl Perry Send private email
Saturday, June 07, 2008
Karl, that means that the developer was on leave, and the technical writer couldn't figure it out either.
Saturday, June 07, 2008
Being kind is subtle, difficult but does not need to be wordy or patronising. In fact it can take a lot of discussion & feedback to get a message that satisfies everybody, including people who are not native English speakers. That meets the marketing people desire to not offend, but keeping the messages relatively unique (so we can figure out what happened remotely, after the advent), and descriptive so that the user can figure out what went wrong.

For instance the classic 'illegal operation' or 'access violation' are terrible examples of wording as the general public do not understand the context. I tend to avoid pop-up error/warning dialogs in my designs as much as possible, but if I have messages then I try to use works like 'Error: Incorrect file format' rather than the previous 'Bad file'. 

My personal favourite at the moment is EditPad Lite; if an error occurs it gives an error message that reads something like 'Bummer, an error has occurred!'. I actually like it, although I wouldn't personally put something like that in my commercial application
Grant Black Send private email
Wednesday, June 11, 2008
I like a exit confirmation message box if there is state that might be lost.  One Flash game that I am playing suffers from this (or I do).  I find that I use save way more than I need to.

I do not like overly "friendly" programs.  There is no person there.


Gene Wirchenko
Gene Wirchenko Send private email
Thursday, June 12, 2008
I agree there is no person there.

How should the program refer to itself?  Use "passive voice" all the time?  Blame the user?

"I have a problem, I need to know xyz to continue."
"There is a problem.  Please enter xyz."
"xyz is missing.  Unable to continue."

I find people tend to find it "natural" to treat the program as a tool that can communicate with them.  Most tools can't talk, nor ask for additional input, so the issue doesn't arise there.

But treating the computer+application as a "person" (okay, a really single-minded, limited "person") seems like a natural thing to do.

Having said that, I usually resort to passive voice in these situations.  There IS a tendency for people to WANT the application to be smarter than it is, and using "I" feeds that tendency.
Friday, June 13, 2008
Probably the middle of the three, maybe the third.


Gene Wirchenko
Gene Wirchenko Send private email
Friday, June 13, 2008

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz