Designing Linux for the Masses
Kelly McNeill sent in a pointer to this article by Todd Burgess. Here's a quote from it: "The concept of Linux for the Masses is an honorable goal but one that must not be taken too lightly. The purpose of this article is to point out several of the current limitations in Linux and what should be done to create a usable system." You might want to hit the links at the bottom of the article and check out some of Todd's earlier writing on the subject of Linux usability. You may not agree with him, but his opinions are always backed by sound thinking and are well worth reading.
Sigh. No matter how well thought out and well written this article is, it is still the same self-negating, point-missing argument that should have been put to rest many years ago. If implementation is irrelevant to users then, by definition, choice of operating system is also irrelevant. Computers and operating systems are tools, people. Accountants don't use operating systems - they use spreadsheets and accounting systems. Secretaries don't use operating systems - they use word processors, PBX systems etc. No "average user" can be expected to use the tools they are given without three important things; training, training and training. Users have jobs to do and these jobs generally have nothing to do with computers or operating systems. Users can be trained to perform their jobs efficiently whatever platform, operating system or application is available. For example, someone hands me a screwdriver saying "This is the most advanced screwdriver in existence - it has been painstakingly tested and developed to the be easiest, most consistent screwdriver on the market. Now, go fix my car!" Gee, where do I start? However, train me how to fix a car and I will probably be able to do it with a sturdy knife rather than the super-screwdriver. (BTW, I am not a mechanic and it shows :-) So, my point. All you talented people out there hacking Linux software - keep on doing what you do best. Sure, try to design good user interfaces and help users as much as possible but keep in mind that your software exists to solve problems. Users who need your solution can be trained to use it. (I really need to cut down my coffee intake :-)
I'm glad that articles like this are being written; the issue of usability is one that Linux geeks have ignored for too long and are still mostly ignorant about.
An operating system is good if it helps you get a job done with as few problems as possible. Stability and efficiency count, and Linux shines at this. However, usability is just as important, that's why KDE and GNOME have been created, and they both still have a long way to go. There's little point in stability and efficiency if the user can't get to it because they're first required to learn 100 different arcane interfaces and commands.
The author is right with his assertion that interface design shouldn't be left to the programmers of applications, as they tend to design from the inside looking out as opposed to the user's point of view, from the outside looking in. Not only that, but interfaces need to be tested, and this is done by exposure to users unfamiliar with the program. If the users have trouble understanding the interface and can't use the program properly, 99% of the time it's the fault of the interface, not the users.
There's a horrible attitude that's quite pervasive in the threads above and it's one of pointless elitism: that Linux should be for geeks only, if you make it easier to use then you get more and stupider users and you lose configurability and the ability to do the complex things you can do now. And it's all utter crap:
a) If you really want to use an OS that hardly anyone else is using, there are loads out there: Plan 9, RiscOS, OS/2 etc. They all have lots of good points. Just don't expect much of an application or support base and don't expect much progress. If you want to be part of a minority, you pay the price.
b) Everyone reading this had to learn Linux at some point. Would you rather spend more or less time learning how to do something? (Personally, I'd rather spend less time learning and more time doing)
c) Unix has already progressed in terms of usability from when it started; there are applications in common use that greatly simplify necessary Unix tasks, and they purely exist because of usability needs. If you don't think usability is a major issue, try replacing your favourite text editor with ed or pico. It's just as powerful, but it's a hell of a lot less usable. The fact is that most of the "we don't need usability" idiots depend far more on usability improvements than they think.
d) Decent computing power should be available to everyone. We believe that Linux has that power. If it's held back by bad usability, there's no point railing against Microsoft, because we're not providing a usable alternative. (And do you want the less tech-able of your family using Microsoft forever? I bet you get pretty sick of the support calls...)
I disagree with the author's assertion that all feedback from programmers should be rejected; programmers are users too, and you're not going to get feedback on a C++ IDE's usability from your average secretary. All feedback should be counted and considered.
However, the author makes a very good point about hardware - why the hell does the average need to know what hardware is in the machine? Why do I need to mount drives manually or know which graphics card I have? This is all stuff that the computer should be detecting and taking care of for me. It just gets in the way.
Usability is vital if Linux is to prosper. Fortunately, there are more and more projects happening that will contribute to Linux's usability and friendliness. Let's all assist where we can and ditch the childish elitism.
Let me tell you a story. I was recently at a pretty young woman's house, um, helping her with her computer which she'd managed to foul up again. While I was there, I decided to reinstall some drivers. So I opened her CD-ROM drive and what should I find but the Internet Startup Kit that her ISP had given her. No big deal, but she was terrified. "Don't I need to play that CD to use the Internet?"
Yeah yeah, she's not stupid, just ignorant. But this is the type of user most people are. They know as little about computers as I know about the inner workings of an internal combustion engine.
You want a user-friendly computer? Make a Palm Pilot with a big screen. Press a button and you're in 'email' mode. Press another button and you're in 'web' mode. Anything more than the minimum function set necessary to do the job at hand (e.g. email/web) is wasted on the average user.
Believe me, I deal with average users every day. They may not be stupid, but they definitely do not have the time or inclination to learn how to use these admittedly esoteric gadgets. Today's desktop interfaces are an expression of contempt towards the end user.
First let me say that I agree wholeheartedly with the author's underlying goal of creating a "system your mother could use". I do, however, have a lot of concerns about the approach being advocated.
My most important concern is that, while the author seems to know there are many different groups of user, he proceeds to outline a scheme that caters only to those who are most technically naive.
He seems to be advocating eliminating all the diversity and choice than exists in Linux at the moment, in order to simplify the lives of the one group that doesn't use Linux, hasn't heard of Linux, and doesn't care what OS they use. In the process following his scheme (getting rid of all but one distribution, all but one window manager, all but one toolkit, and every single command line shell) everone else, all the people currently using Linux, all the people who actually care and keep the community alive, would be alienated. Even if it were possible to do this, which obviously it isn't, would it really be worth it ?
My point it this: linux is not designed poorly - it is designed for technical people, and only technical people are going to care enough to keep it alive.
I have no problem at all with a "Linux for the Masses" like the author proposes existing (although I don't really see who wants a warmed over Windows clone). Its the idea that all other Linux systems must be sacrificed and the entire existing user community alienated, to attract the people who care least , that I find disturbing.
On a somewhat more minor point, 'usability' means a lot more than UI design, and is not that easy to disentangle from implementation issues. Some of the worst systems I've seem had their UI developed separately by a 'user centered' individual who unfortunately had not understanding of the application domain. Users are not all the same - probably the only person who can do UI design well is someone who understands the application from the user's perspective, not someone who just thinks they understand 'users'. Oddly enough, that person is sometimes the programmer.
Now for some pickiness. Windows is really a pretty poor example of how to do UI design. Most Mac applications, and lots of NeXT ones are much better. The point of window managers is to manage windows, not to read mail, therefore to demonstarte a window manger you show a picture of lots of windows. Seems kind of obvious - even the author's typical user (who seems much stupider than anyone I've ever met, if he gets information overload from looking at 10 pictures on the same screen) should be able to deal with that.