Little things make the initial install experience painful
Hi. I'm working as a member of the MIT Student Information Processing
Board (http://www.mit.edu/sipb/) on a project to make Debian
available to MIT's incoming freshman in a relatively convenient and
easy to use package. We believe that Debian may work better for some
students than the institute-supplied Redhat Athena.
As part of our project, we've been examining the user experience of
the Debian install; we want to give incoming students a good first
impression of Debian so they'll continue to use it. We're using PGI
to build our installer, but many of the concerns raised are not
specific to PGI.
But before I describe our experience, I want to respond to some common
criticisms of similar mail I've seen in the past. Some people have
argued that Debian is not for novice users; it's not worth making
Debian easy to use at the expense of developers. I personally
subscribe to bdale's idea of the universal OS so I actually don't buy
this argument. But let's pretend it's true for a bit and see whether
these sorts of usability problems are something we care about. If you
actually believe that the only users of Debian should be the current
Debian developers, then you can mostly ignore most usability issues.
However, for me, implicit in the Social Contract's declaration that
our priorities are our users and free software is the assumption that
we do try to have users. If we're having more users than just
developers, then presumably people will use Debian for the first
time. It's important that this first experience be positive; if you
look at how people identify with brands/products, the first impression
is critical. If it is not good enough, then someone is very unlikely
to deal with your product ever agin.
I believe that current and incoming MIT students--especially students
familiar with programming--tend to be relatively near the high end of
the curve for initial user clue. If the system is intimidating,
frustrating or impossible to use for the MIT community, then there is
a reasonable likelihoo that we have some problems worth fixing.
I'm not proposing that these problems are serious enough for aj's why
woody sucks list; if Geoff and I had gotten around to doing this
install walk through two months ago, I'd argue we should be fixing
these issues for woody. However, I think we'd all like to see woody
get released and as it has dragged on, the threshold for what we're
willing to accept has increased.
So why am I sending this rant? Two reasons spring to mind. First, if
other people agree these issues really are grating and annoy initial
users, I'd like to see them get fixed for 3.0.1. Second, I'd like to
bring initial user experience to the attention of all developers; I
want people to be thinking hard about how their packages and our
entire operating system feel to install and use for the first time.
And now for the rant:
--- Begin Message ---
This is a woody install report using boot-floppies 3.0.23 on an Athena
cluster machine during the wee hours of 6/13. '*' denotes a possible
First try: installer hangs while initially installing packages from
the net before the reboot, apparently because http.us.debian.org is
having trouble, although it pings happily. User is presented with a
frozen progress bar or a blank blue screen depending on whether a
connection was ever made. Ctrl-C works to start over, although this
isn't mentioned anywhere. So:
* A useful error message needs to be displayed if there are problems
retreiving packages, whether this happens at the beginning before the
package list has been retreived and the progress dialog box drawn, or
later as in the case of a timeout retreiving a package. Ideally the
installer would suggest mirrors in these cases.
Next try: we're rocking and rolling with a different host.
* tasksel is confused. There are five reasonable task groups with a
total of 16 tasks, and then a task named 'junk' with several times
that, including some that seem to duplicate other tasks (what's the
difference between 'Development/C and C++' and 'junk/Development in
* I press spacebar and am kicked me out of tasksel -- I'm not sure
why; presumably I mispositioned the cursor. I have no chance to go
back. Either tasksel should ask for confirmation of the selected
tasks, or the 'Run dselect?' dialog that comes next should have an
option to go back to tasksel.
(I wasn't done with tasksel, so I can't report what tasks I'm
I let the installer run dselect. I still find dselect an impossibly
confusing program, but I suppose this isn't getting fixed for woody.
I don't change anything in dselect. (I think.) apt tells me that the
only packing named 'task-*' that I am installing is
task-devel-common, somehow, for future reference.
* apt-get should not ask 'Do you want to continue? [Y/n]' of me at
this point, in my opinion. It's not really clear to the user why they
are being asked this question; were I to say no, I would be sad, and the
install would presumably proceed without giving me an opportunity to go
back and change my answer.
(sadly apt has not decided to install cvs. I will have to repeat this
exercise another night to document the ridiculous repository questions.)
* Lynx asks for a "default URL." What is Lynx? The dialog should at
least explain that I am configuring a web browser.
* Esound asks if I have sound hardware installed. That is a little
lame, because it seems like it should know, and if I don't already
know how esd works, I'm afraid of what will happen if I get the answer
wrong, and unclear what exactly this question controls. But that is
not the big problem -- the big problem is that there is a paragraph of
text above this question that talks about spawning esd, applications
assuming things, and decreases in performance that IMO is too
confusing to be in a default install. Also the last two sentences ("If
you do not have any sound hardware installed, choose no. If you have
sound hardware, you should probably answer yes. Do you have sound
hardware installed?") are redundant and confusing.
* gnuplot mumbles about ordinary users, security hazards, setuid root,
and SVGA console graphics. If I had to explain what this meant to my
brother, an incoming freshman who is excited about running Linux, it
would take at least 15 minutes and involve history lessons. For the
purposes of this install gnuplot should assume a reasonable default.
* ppp and pcmcia are removed and whine about directories not being
empty. Unfortunate but cosmetic.
* libopenldap-runtime loses ("trying to overwrite '/usr/share/man/
man5/ldapsearchprefs.conf.5.gz' which is also in package libldap2").
"Some errors occurred while unpacking. I'm going to configure the
packages that were installed. This may result in duplicate errors or
errors caused by missing dependencies. This is OK, only the errors
above this message are important. Please fix them and run [I]nstall
again Press enter to continue." First, the packages are broken.
Second, the error message on unpack lossage needs to be rewritten to
be simpler and clear in the context of initial installation (eg, the
user shouldn't have to figure out what a "missing dependency" is, and
there is no [I]nstall option that the user has seen or has the
opportunity to rerun.) Third, we need a semicolon after 'OK' and a
period after 'again.' Zeroth, I am going to assume on blind faith
that there is a good reason to install LDAP.
Installer now gives a vague explanation of what happened ('packages
failed to install') and gives an option to rerun the install, speaking
of the implications. This helps somewhat but the message above is
still inappropriate in the context of the install.
* Electing to retry the install boots me all the way back to tasksel!
This was not what I was expecting at all. If this is intended
behavior, fix 'retry install' dialog to explain what is about to
* Nothing is checked in tasksel this time! "What is that supposed to
mean?" Where did my selections go? If I press Finish, will all of the
software on the machine be removed? The user needs to be warned, or
better, tasksel needs to be changed to show previously selected tasks
apt eventually tries to install some more packages and we're back on
* Netbase wants to know what IP addresses are local, advising the new
user that "ranges should be specified in CIDR-style" and making
references to class C networks and dotted quads. Even if I can follow
these instructions about the proper syntax to use, why would I have
any idea what it means for an IP address to be local? (Even having
some clue about routing I am not really sure what is being asked. Am I
configuring loopback? What's with the example in 192.168 then? Or is
'local' the opposite of 'behind a gateway'? Then where do I specify
the interface it is local to? What are you going to do with this
information?) I really suspect that a user who cannot accept the
default of "127.0.0.1/8" has larger problems on his hands, and the
question should not be asked.
* Netbase asks "What remote interfaces does this host have?" and
suggests "eth0 eth1 ppp0". I already told the installer I didn't want
ppp, and AFAIK cluster machines have only one ethernet
adaptor. Moreover a new user may not know what a "remote interface" is
-- does it have something to do with networking? -- or even
necessarily that host is a synonmy for computer, and certainly would
not know off the top of her head how interfaces are named under Linux.
And as an experienced user, I don't have any idea what netbase is
planning to do with this information, or how it will affect later
* gpm says:
Configuring gpm (mouse event server):
Current configuration: -m /dev/psaux -t ps2 -Rms3
Do you want to change anything (Y/n)?
Unacceptable. It is not even clear the user is being asked to
configure the mouse. Making Y the default adds insult to injury.
* "Please wait while I search for ispell dictionaries..  american
 british Select the number of the default dictionary " -- The
user needs to be told he is selecting the default spellchecking
dictionary, and this should be fine.
We lose on the ldap problem and go back through the install dialog
box loop again. A few more packages get installed.
* libpaper asks for the default paper name. This is fairly benign
except that the user is forced to read about libpaper and software
libraries. It'd be nice to clean up this text.
* All told I have to go through the 'be told about ldap lossage,
decline tasksel, decline dselect, tell apt yes, be told about ldap
lossage' SIX TIMES before things stabilize and all the packages that
can get installed are installed. apt should be more clever about
doing everything that can be done in the face of broken packages.
In the end I am forced to say 'no' to the retry question, giving
the installer permission to leave my system in a 'broken state'.
* exim tries to configure mail. This is confusing but that is unlikely
to change soon, though the text could probably be rewritten so the
user doesn't have to have a priori knowledge of SMTP. However exim's
blurb about your choices scrolls off the screen somewhat because it is
too long. The user does not know to use shift-pageup to scroll back
and is confused.
Then I get a login prompt! Oops, no X for me. I put to you that if I,
as someone who has installed Linux at least a dozen times in his life,
can accidently fail to install X -- and realize this only to his
surprise at the end of the install process -- then neophytes are
Hope this is useful to you; feedback on how to be more useful next
time is welcomed.
Sleep time for me now--
--- End Message ---