Dumbified GUI Bootscreens Considered Harmful
It's no secret that Linux (and Desktop Open Source in general) suffers from usability problems. That's why it's good that UI curmudgeons such as Matthew Paul Thomas exist to examine desktop environments closely and make curmudgeonly suggestions. Many of Thomas's suggestions are good, but some of them drive me up the wall. Take, for instance, complaint 20 in his criticism of Breezy which addresses the Ubuntu Breezy boot screen:
20. Ubuntu now shows a nice logo and progress meter while starting up. Unfortunately it still displays a lot of technical gibberish underneath the progress meter, even if nothing is going wrong. And if any step of the startup takes longer than about 30 seconds (for example, if you're not connected to the Internet), Ubuntu reverts to full gibberish mode for the remainder of the startup.
This criticism (and its proposed solution) is wrong on so many levels. What Thomas appears to want is a nice logo and progress meter with no "technical gibberish" on display when the system boots up. I am not sure why he wants this. One reason might be that technical gibberish on bootup makes Ubuntu look less "professional" or "polished". Another might be that the technical gibberish scares away users. I hope these are not Thomas's reasons, because none of them have anything to do with usability. They are all marketing reasons.
In fact, there is no usability harm in displaying boot messages on the startup screen, because there is no usability involved. After starting the computer, a user doesn't interact with the computer until the login prompt.
On the other hand, there is significant harm in suggesting that a proper boot screen should consist of a logo, a progress bar and nothing else. The issue has to do with robustness, and how we train our users to help the poor suckers who fix their computers.
First of all, I have ideological issues with using a progress bar to indicate boot process. There are two reasons for this. Firstly, progress bars are devious. Programmers think that progress bars indicate progress -- how much of a procedure has completed. Users think that progress bars indicate time -- how much longer they have to wait until this stupid procedure finishes and they can start using their machines. The two concepts are not the same. In fact, some notoriously bad progress bars (cough hardware detection in Win95 cough) played this trick where they would speed up to 95% completion in two minutes, then spend another ten minutes completing the last 5% of the process. That is stupid and it makes users distrust progress bars.
Progress bars do have a use: when a person does not know how long a process might take, a progress bar can be useful in telling that user how much longer they might expect to wait. That's useless in the context of system bootup, because after the first few times a user has booted into their Ubuntu system they know approximately how long their system takes to boot. Furthermore, a progression of technical gibberish accomplishes much the same task -- over time a user recognises enough of the gibberish to figure out how far their system is in the boot process.
The Ubuntu bootup bar does not make a difference when bootup goes normally. It is when things break that progress bars are far inferior to technical gibberish. Say you are a user who only sees a progress bar on bootup, and your system stops booting. So you call up your local nerd to fix your computer for you:
YOU: Nerd, can you please fix my Ubuntu system for me? It doesn't start any more.
NERD: Sure! Fixing computers for my friends and family gives meaning to my lonely existence, especially when I am not paid for my technical support! Why don't you tell me what's happening?
YOU: The computer doesn't show the login screen.
NERD (patiently): What is showing up on the screen?
YOU: The progress bar stops at 60%.
NERD: Oh. What is the error message?
YOU: There is no message. It just says 60%.
Now your nerd is going to get cranky. Perhaps your nerd is going to make you press weird keys on your keyboard, or make you boot into your system with Knoppix, or who knows what else. The key is that "The progress bar stops at 60%" gives no useful information to your nerd.
Contrast this to the situation Thomas is complaining about: there is a progress bar, but also some gibberish:
YOU: Nerd, can you please fix my Ubuntu system for me? It doesn't start any more.
NERD: Sure! Fixing computers for my friends and family gives meaning to my lonely existence, especially when I am not paid for my technical support! Why don't you tell me what's happening?
YOU: The computer doesn't show the login screen.
NERD (patiently): What is showing up on the screen?
YOU: The progress bar stops at 60%.
NERD: Oh. What is the error message?
YOU: Well, at the bottom of my screen is some technical gibberish that reads "Uniform CD-ROM driver Revision: 3.20" and then "sb: Init: Starting Probe..." . Usually it gets farther than that.
NERD: Hrm. Maybe your sound card detection is hanging. [Starts mumbling nerdly gibberish]
YOU: What?
You may not think you are any better off, but you are, because your nerd now has a clue as to what might be causing the difficulty in your system. This is vitally important: without good debugging information your nerd will not be able to solve your problem.
This matters for a number of reasons. First of all, the bootup process is special. If there are problems on a fully-booted system there is a chance that a nerd can use SSH or VNC or some other three-letter- acronym to access your computer remotely, over an Internet connection. Once the nerd gets remote access it can do pretty much whatever it needs to in order to fix your system. If the problem occurs during bootup, the chances your nerd can connect to your machine are smaller, because the computer might not have booted enough to allow remote connections. If your nerd can be in the same room as your computer then this might not be a big problem, but if you are in Saskatchewan and your nerd is in Quebec, you and your nerd could be stuck doing e-mail or telephone troubleshooting, which is painful for everybody.
This alone explains why showing bootup messages by default -- without someone needing to press or anything else to get to them -- is beneficial. But there is more to the issue than this. By showing bootup messages on startup you get human pattern recognition on your side. I never expect a normal user to understand what any given message means, but I do think most users start to recognise the sequence of messages that flash by during the bootup process. These messages might freak them out at first (which may be why Thomas wants to suppress them) but they soon get used to it. They may even recognise enough of the pattern to recognise when a message is different -- and that is incredibly useful when debugging a bootup problem.
Contrast this to pressing to get to boot messages. Most of the time a user will not press , so most of the time a user will not see those bootup messages. They will not recognise what is normal and what is not -- so when bootup breaks they are in a position of looking at technical gibberish for the first time. How is this better usability than getting them used to the messages over time?
There is a related philosophical argument here as well. I certainly do not expect most computer users to be nerdly. However, I do expect that some small percentage of the population has nerdly tendencies, and as an advocate of Do-It-Yourself software I want to awaken those latent nerdly tendencies as early in life as possible. When Normals see boot messages they might water their plants or go for a coffee; when young impressionable nerds see those messages they might start wondering what the mysterious messages mean. That is the first step towards a life of loneliness and social ostrascism that I (and all those who benefit from the products of nerdly labour) want to encourage.
That does not mean I advocate dumping screens of error messages in every situation. That's what logfiles are for. But again the bootup process is special, because it requires no user interaction, and because it is one of the few situations where accessing logfiles may not be feasible.
I will close with a few case studies. Firstly, boot messages helped me move our Linux project from using the ext2 filesystem to ext3, which has better recovery from errors. A couple of users took our systems home and reported that their systems would not boot. It turns out that they had turned on their computers without plugging in the monitor cables properly. When they saw no output, they powered down their systems, plugged in the cables, and restarted the computer -- only to get "filesystem corrupted: run fsck MANUALLY" technical gibberish. Because they were able to read those messages to me, I knew what was wrong, and was able to deduce what had happened. If they had not had those messages available, I might have dismissed the problem as hardware failure or another kind of fluke.
Because I can't resist an easy target, I'll again bash Microsoft -- namely the bootup screens for Windows 95, 98, ME and possibly XP. These boot screens don't even have progress bars -- instead they have little animations that repeat several times at the bottom of the screen. This is horrible: sometimes the boot process stops and the animations stop, and sometimes the boot process stops and the animations keep going. Furthermore, in the Win9x series there is no good way to see the bootup process during a normal boot -- you have to press at some magic point of the boot process, and then choose to see the messages one at a time. Even this is not that useful. The result? Half the time even the nerds can't figure out why a boot process is failing, and they end up suggesting a fresh install of the operating system. That's NOT A SOLUTION.
Windows 2000 did a little better: along with its animation it displayed information about what step of the boot process was being executed. There are also supposedly Journal Viewers and such that are supposed to help, but you can only see those after the fact, as far as I know.
Mac OS used to do a reasonable job. Instead of displaying textual messages it would display the icon of each extension as it was being loaded. Extensions that failed to load would be covered in big red Xs. This was not a whole lot of information, but it was often enough to debug bootup problems. I don't know whether OS X does this (oddly enough, I have never seen a Mac OS X box boot...) but I hope they have made the situation better.
The moral of the story: Matthew Paul Thomas is wrong, wrong, wrong -- at least with this suggestion. Ubuntu did the correct thing by displaying boot messages along with the polished logo and progress bar. Eliminating that display makes life harder for everybody when stuff goes wrong, and thus oversimplifying the boot display is harmful.
Livejournal URL: http://pnijjar.livejournal.com/12756.html
Mood: booted