Linux/UNIX Usability Research
st. augustine writes "A group of researchers at the University of
Michigan School of Information has started a
project called the Linux/UNIX Independent Group for Usability Information.
Their goal: "to couple the power of UNIX with user
interfaces that are consciously designed to
allow novices to become experts without
removing any of the existing functionality."
They look serious.
" Check out the Salon article that ran earlier today-they're mentioned in there as well. I've actually talked with those folks as well-they're smart cookies.
Unix has always had that "other group" - average users. Problem is they have been powerless, and limited by systems administration. Typical unix users have been administered to in large corporations and government agencies which place a premium on control and security, which are not the goals of these users but of the organizatgions. Granted, sysadmin is needed in large systems and is implicit even in small ones, but not in the sense of what "sysadmin" means in the unix world today. Linux and GNU are trying to change that.
First, Linux is not unix. It is built on design principles which allow unix like functionality, but that's it. Linux achieves the same kind of system as unix but with different code, which is free, unlike unix which is controlled by commercial consortiums.
Unix has always been linked too much to the world of corporate big iron like IBM mainframes. Unix programmers and sysadmins think they are a cut above IBM mainframers, but are they? There is also another side to unix, which is that much of the work involved in creating and enhancing unix was done in academic settings in a semi-open environment. For example, the work at Berkeley and MIT. However, the lofty idealism of the people who have really done the work in creating and extendinhg unix (who most certainly have not been sysadmins) have been despised and rejected by the comercial unix world of petty careerism in which end users are often held in contempt by mediocre technicians who think they are God's gift to technology.
There is a difference between unix sysadmin and computer science and creativity. Sysadmin has become a career path which has too much defined the nature of unix and has perversely influenced how Linux is preceived. Sysadmin has little to do with programming, software development, or artistic and scientific creativity or even understanding how systems work. It is or has become simply one thing - a career path. Its rules are intentionally arcane to limit the number of people who can gain admittance and keep their salaries high. Learning these rules has almost nothing to do with intelligence, but only with having "mentors" who will accept the apprentice into the fold. It is a sham.
It is a tragedy that Linux is saddled with this legacy which makes it almlost impossible to market Linux to average users who generally are just as intelligent, and oftem much, much more intelligent, than sysadmins. People who want to use computers should not need to be sysadmins as defined by unix sysadmin careerism, but all to often they need those skills. So, they teach themselves or just move on to a more usable system.
Yes, it is the right thing. Linux is for users, average users. That is what its creator wants, and what almost every one of the really great programmers who have helped in the evolution of Linux wants.
Making Linux more usable for people who are not narrow specialists in system administration will not in any way affect the underlying system or its power and flexibility. Nor will it remove from Linux the tools needed by professional programmers and sysadminis to use Linux at a different level. To imply that making Linux more usable for "average users" will somehow diminish Linux shows a profound lack of intelligence.
First thing, this has to be some of the most intelligent commentary I've seen on /. in a while, wonder how long it'll last? Now to rant.
Hmm...pretty, simple GUI's for average newbies like me, without diminishing power for all the experts and hackers. I wonder why all the experts think that ANY of their tools which they took so long to learn and master will be obsoleted. Grasp the concept of "Free," people. If a person wants to make a customized version of (insert free/free-ish OS here) to cater to a specific group (dumbed down for digital appliances, balls-out-bleeding-edge-everything-included for the hardcore geeks, and everything in between)
Then again, Linux is only a kernel, I actually wonder what's stopping people from using customized versions of the kernel (see? I spelled it right!) and maybe glibc and throwing a native GUI on top. Wouldn't it just be another shell? As in, just another way to mediate between the user and all that other stuff? Ego? Sloth? Fear of being reviled by everyone? Come on, give me a reason! It would take a lot of work but it could be done! Your CLI shells would stil work, just that the NATIVE interface would be GUI-ish. NeXT/Apple did it, Be may be trying to do it.
Besides, isn't GNU Not Unix anyway? Who says we have to adhere to EVERY SINGLE guideline that Our Heralded Forefathers laid down? I'm not saying discard all the old stuff, but adapt it for different situations. I'm pretty sure that with enough serious thought this LUIGUI (I love that acronym) can figure out how to translate the old CLI commands into shiny pretty point and click, without losing their famed "it just works" power and functionality.
Oh, and finally, not wanting to know how exactly things work, at least initially, doth not ALWAYS make one "clueless." Many people just want to get their work done. They can learn about their tools later, not TOO much later, but later. Is that so wrong?
Where I think the LUIGUI people could best serve Linux OSS developers is in providing peer review for user interfaces. I was thinking of tackling a Linux project with GUI this summer, but I'm no expert on user-interface design. Getting reviewed by the people at LUIGUI could really help me and others put that necessary 'polish' on an app before it is released to the public. Without that polish, people won't start using the app.
Well, them's my thoughts anyhow.
Real software usability goes deeper than just interactions with GUI dialogs and so on. For experts, Linux is much more usable than the consumer OS's because it is much more stable, more transparent (less things are hidden under the candy shell of the GUI), and has a broader collection of powerful tools. The challenge is going to be preserving this kind of usability while also making Linux more accessible to non-expert users.
One argument that's often made is that Linux suits the needs of expert users because it was designed by expert users. Since we are people who don't mind learning how things really work, and prefer the tools to be powerful once we do learn them, that's reflected in what we build. The argument usually goes on to say that since we don't want pretty but shallow, easy to learn but limited tools, we will never end up building these things for Linux novices.
This argument misses one important point, in my opinion. Even if you accept that the intellectual challenge of building usable software isn't by itself enough to keep the effort going, this argument pretty much assumes that the world is split up into hacker types and lots of isolated people who don't understand their computers. But this is not the full story. Many, many Linux people are sysadmins for a large number of not-so-computer-savvy users. Let me tell you something, Linux people in Windows sysadmin jobs hate having to do several fresh reinstalls of Windows per day per few hundred machines just because the registry gets wedged and there's no way to figure out how to fix it. Many of them would like nothing better than to have Linux become a viable desktop system so they'd be able to at least work with systems they don't hate.
It may well be that these hardy souls turn out to be the vast army that works to make free software usable. Once Linux starts going into the desktop in sysadminned environments, the channels are in place to collect user feedback, and also to do something about it. If such-and-such feature is confusing to users, then the admins will hear about it. It's probably easier in many cases to just fix it than keep dealing with the problem reports, and certainly a hell of a lot more fun.
Don't underestimate the dramatic strides already made in usability by the Linux community. When I first started working with Linux about six years ago, the usual way to install new software was to check the README, edit the Makefile, more often than not fix a few #includes or function prototypes, then run a series of make commands. These days we have RPM packages and so on, but we also have ./configure; make. To me, the autoconf system is a classic example of "deep usability" as opposed to the surface kind.
In summary, I think we're just going to keep on going until we get there.
LILO boot: linux init=/usr/bin/emacs
For me, this isn't a question, but an answer, and the wrong one at that. Let me explain.
Right now, linux is only really useful to hackers/programmers/geeks. The reason is, only hackers, programmers, and geeks use it. There is right now a push underway to add another group - the average user. But are we certain we want to traverse this path?
Microsoft has shown that when you combine simplicity with stupidity, you get unstable programs and operating systems. The users demand more and more - they don't care whether code looks beautiful, they care about themes and cool sounds and new mouse pointers and talking paper clips. What's the net result? Software engineering.
Software engineering is built on one principal - "build it to spec". The spec in this case is, make it easy enough for a dummy to use. Well, it does that. It's also woefully unstable.
Now, the UNIX heritage is a different story. It's Computer science. An idea is presented, evaluated by it's peers, and brought to implementation if it's agreed it's the best solution at the time. The net result is - progress is slower, but the foundation is much more stable. You have a powerful set of versatile utilities you can use for a variety of tasks - grep, awk, named pipes. Software engineering, however, does not have "versatility" listed in the spec, nor should it - it's built to order. One goal, one purpose, one solution.
Before we invite the average user into the fold, we should ask ourselves - are we being impatient? Let's show them what computer science can do, and avoid computer engineering.
--
Linux needs to evolve into an OS that is usable by the masses if it is to become anything beyond a novelty item. As it stands, Linux has become popular for the very reason that it can perform competitively with MS, Apple and other UNIX varients on certain levels. It needs to make the next step and become a reliable, trusted foundation that general software can be built upon.
It's not a matter of competing with MS. That is a small part of the big picture. Linux and other open/free source products means creating software that people can rely upon to do work. If you're into Linux just for the anti-MS nature of the movement, then you're a little misguided. Creating good software for people to use means creating software for everybody. Just because someone didn't contribute code to gcc doesn't mean they can't benefit from it. The same goes for Linux in general. The light at the end of the tunnel is a simple, effective, reliable system. Why should just hackers/programmers/geeks be the only ones to benefit from Linux? If we keep Linux only as a toy for the few people who are willing to put up with its eccentricities, we condemn Linux to become yet another footnote in computer history.
Right now Linux hasn't won too many people over. Large companies are reacting because they don't want to get left out just in case. Making "ease-of-use" an issue with Linux may promote more general usage from those who are computer-savvy, but not inclined to work with non-proprietary software or have had bad experiences with UNIX. The more general usage, the more companies will be enticed to promote Linux as a viable option. The more companies, the more acceptance and, voila, a world where good, thoughly tested, useful software is the norm.
Hey, what can I say? I'm allowed to be overly optomistic once in while...
-S. Louie
"I may be Love's bitch, but at least I'm man enough to admit it."
Equally mythical, IMO (but no moreso) is the idea that anything can be made easy with the right UI. There is, I will readily admit, no excuse for making cryptic software. However some things are, in fact, complicated, and at some point, that complexity must be made visible to the user. If not, then one gets million-deep menus, brain-damaged wizards, and the like, as you attempt to express complicated concepts, in a simple "language".
Setting up your modem to dial your ISP so you can surf the web, shouldn't require any understanding of TCP/IP, routing, etc. Or indeed, be any more complicated than using the web. Optimizing your multi-homed machine to efficiently route http requests over your IP tunnel, will require that knowledge, no matter how hard you work to conceal it, and it should at that point be assumed that the user has that knowledge....
As simple as possible, but no easier.
Computer science has always appealed to me because I like things that blend elements of different disciplines into useful things. CompSci itself is a great blend of science, engineering, and mathematics in varying proportions depending on the problem you're looking at. The main products of computer science are abstract though, things like algorithms, proofs and theory...not operating systems or wordprocessors.
:)
Software engineering applies principles from computer science to the problem of building real software, which is implemented by programmers. Scientists, engineers and programmers all have a hand in the software business, the way an engineer might take ideas from chemistry and physics to design a good bridge which is built by construction workers.
Computer science isn't really interested in creating actual software products (as well it shouldn't be). Saying that "computer engineers" should step aside and let computer scientists do their thing is like telling a civil engineer to take a hike so physicists can show them how to build an overpass. Well, that's not what they do (I just imagined a white-haired physicist in a lab coat mixing cement and cracked up..
I don't think it's fair to blame all of the problems of software completely on software engineering. I think the engineering principles get throw out the window a lot when companies decide they don't want to bother with it anymore. Also, engineering can have versatility if it's decided that versatility is wanted in a project...it's all part of defining the "spec". Bad marketing-driven design can lead to bad specs that include talking paperclips and the like, but good design with clear goals can lead to good specs and good products.
Again, computer science, software engineering and programming are all interrelated, and good software is the result of mixing the best of each. Unfairly denying any one of the three leads to bad software.
-- John Truong