Tip dialogs

Andy Waddington on Cave Surveying surveys at pennine.demon.co.uk
Thu Oct 14 00:22:24 BST 2004


On Wednesday 2004-10-13 18:51, Olly Betts typed:

> If you're installing a piece of software for a new user, you're doing
> them a disservice by disabling such dialogs on their behalf.

I phrased that badly. A "user" is a name used to identify a particular
set of configurations to a computer when I log on. I didn't mean a real
person - if they can't install software for themselves, they shouldn't
be using it. I'm talking about the first time I run a piece of software
when I'm using a machine with a new ID.

> Well if your first action on seeing such a dialog is to instantly
> disable it so you never see one again, I'm not suprised you've never
> seen a useful tip.

Missing context. I specifically said "at the time it appeared". I have
indeed gone browsing for the file with all the "tips" in, and read them
(a bit like reading a manual :) and found useful things there. Its
just that the tip you need never appears at a useful time, because the
program throwing them at you has no context. Its a bit like finding
you have a flat tyre and want to know where the relevant tools are
in the hire car - and finding a handy assistant popping up and saying
"turn the filler cap anticlockwise to put fuel in !!"

> Nonsense.  Applications can keep persistent state on disk - the
> application can have a good idea what you're about to do because
> it can know what you did last time you ran the program.

But they are so irritating from day zero that you turn them off. And
the context I am talking about is _always_ the first time I run a
program - it has not inherited any state from a previous installation
because there was no option to do so.

If you want to maintain state, have tips off by default and keep track
of how many hours the user has played with the program, and which
features they have discovered. Then, after maybe 20 or 30 hours, if
the learning curve appears flatter than some "norm" you have established
from some other heuristic, offer tips on unused features. Or maybe
when a program is first installed, as part of some other dialogue,
allow an option to enable or disable tips.

> It's really not 
> that hard to suppress tips for features a user clearly knows how to use
> - it just requires a bit of thought.  If there are no appropriate tips
> left, the dialog can quietly disable itself.

It is typically for a program that I've been using for years, but that has
no context because it has just been installed on this machine, or for
this identity, that has no heuristic as to my knowledge of it. These tips
are always on by default and are just one more thing to get rid of
before you can start using it. If the program got some experience
of whether I knew what I was doing before offering tips, it might be
a little easier to tolerate...

> Just because you've seen something done badly doesn't necessarily
> mean it can't be done well.

OK, I can accept that. So show me the first program I've ever seen that
does it well.

> I don't read manuals if I can avoid it.  Life's too short and there
> are better things to do - manuals are often jargon ridden (or poorly
> written in other ways), or assume too much, or too little.

Just because you've seen something done badly doesn't necessarily
mean it can't be done well. Last time I read the manual for survex,
I thought it was getting to be a useful one.

> And even 
> if I read the manual from cover to cover before ever loading the
> application, I wouldn't be able to take in every detail.

The idea is for the manual to be there when you want to ask a "how
do I do X" sort of question. If you find you can use the application
without using the manual, then you don't need to. But you don't
need tips either. Make the manual tell you how to turn on "optional"
tips, not have to turn them off on first encounter. Otherwise it is
a form of "opt out" spam, which we all hate, rather than an "opt-in"
mailing list, with which we can cope ...

> I generally expect to be able to pick up a GUI application and apply my
> familiarity with its purpose, with other applications, and with the
> operating system to understand how to use it.

Exactly - and random tips that appear to assume you can't do that are
not helping your productivity or temper.

> For example, I know how to write a letter given pen and paper.  If I
> can't work out how to write a letter in a word processor without reading
> the manual, something is very wrong with the design on that word
> processor.

Which covers about 95% of such products. Maybe they should have a
a box pop up saying "Did you know you could do this faster and better
with a pen and paper ? [ tick here] Don't tell me the f****ing obvious in 
future."

> Just because someone isn't
> technically minded ...
> doesn't make them stupid (or ignorant in the negative way you mean it).

It quite possibly does make them the sort of person I would prefer not to
have surveying caves. The end result of a cave survey is something that
future cavers need to be confident that they can rely on. It does not
serve cave surveying to make the software so easy to use that its very
ease of use engenders an inapproporiate false sense of confidence in
the quality of the survey. One of the failings of modern software seems
to be the cultivation of an attitude that "I can do this without understanding
what I'm doing". If the output is something visually obvious like a letter
on a word processor, then this may not be damaging. But if the output
is a set of arcane numbers representing the structure of a cave, or a set
of firewall rules, it is not an attitude that is especially sensible.

> Your attitude risks people not reporting problems because they think
> they'll be ridiculed or ignored.

There is a trade-off here, I'll admit. You risk losing some feedback if
people pick up the idea that the software is not aimed at them. But
luckily, my feedback is not being targeted at the users who might
take such an attitude, it is being aimed at the developers, who will
no doubt have their own opinions, and with any luck, feedback from
other users.

> Even a problem report which turns out to be a user misunderstanding
> is productive.  If one user has misunderstood something, others will
> too.  If there's a way to eliminate or reduce the possibility of
> misunderstanding then everyone wins.

But equally, you don't want a program that suffers from so much interface
bloat that new users can't get very simple jobs done. Your example of
the word processor is just perfect. I've been obliged to use a number
of these, and the majority make it easier to write the letter using pen
and paper rather than learn the interface - even with a manual and a
help file, apparently simple things can seem almost impossible to do.
Adding helpful tips doesn't address the problem that these programs
suffer, it just adds to the frustration.

I'm not against tips at all costs. Just dead against ones that are on
by default when you first use a program. Which can be often. Not
everyone has a single user identity, on a single OS installation. When
I install a new version of some software, I tend to do it on a new
distro. If there is some way to inherit all my old settings from an old
installation of the program, which would include the "tips" setting,
then that would be an ideal solution. Many installation systems
offer a choice between a no-brain default installation and "expert"
mode in which you can do a lot of configuration at installation time.
Maybe this would be a way forward to allow both naïve users and
experienced ones to get the system they want.

So, say I install survex on this system, under my current user, I'd
like an install option to say "inherit all the relevant settings from
version 0.95 of this software installed for user "surveys" on the
system rooted at /mnt/Mandrake8.2" for example. Then, like doing
a "make oldconfig" for a new kernel, the install script would adopt
all the settings (from /etc/mypackage.rc, or /usr/share/apps/mypackage
or ~/.mypackagerc or whereever) that are unchanged in the new version,
and either adopt sensible defaults based on those settings, or ask for
new options that weren't in the old release. One of these might be an
option to disable tips, to enable tips for features not previously used,
or for all tips.

Its a "get out of my way" attitude to using software, which is becoming
the modern idiom. You don't mind doing configuration when you are
installing software, but it is an immense irritation if it is suddenly thrust
in front of you when you just want to get on and use it.

Andy




More information about the Survex mailing list