Carl Tashian

« more ciabatta | Main | lantern festival, forest hills cemetary »

Jul 19 02004 2.32p

Open source usability is indeed a major problem—I think it’s the biggest thing that has kept the Linux desktop out of most hands. With so many coders switching to Mac OS X, we know that even people in the software industry avoid it. It’s a shame that the Linux desktop is not so easy to use, because the community has put so many hours into the development of projects like KDE (which describes itself first as easy to use, right on its front page). I often feel that the community has made a bed which it is now avoiding.

One problem is that open source is largely about cloning commercial software and then adding features. Many developers add one or two features they want for their own use, incorporate their changes back into the source without a thought to the utility of, or excise created by what they’ve done (Luis Buñuel: “Every object conceals another.”).

We don’t need more features. No one wants a system with 34 buttons in the administrative part of its file brower, or 28 options on its main menu, 16 of them being submenus that beg questions like, “What’s the difference between Office and OpenOffice.org?” or “To change my desktop background, do I go to Settings, System, or Utilities?”

People typically have a pretty small set of tasks they ever want to perform with a computer program, and the variety from person to person isn’t that great, so what we need is fewer options. You might propose that we just remove some features, sculpt the software into perfection, and we’ll be all set, right? This is what Frans Englich proposes in a recent article on NewsForge. I think this approach would help, but I don’t think it’s the answer. We can incorporate a lot of options if they’re presented in an organized, hierarchical (some options more strongly emphasized than others, many options hidden away for only the most advanced power-hungry users to find), and intuitively obvious way that is consistent and cuts across the entire system.

Usability starts broad and goes down to the core, within and between software; it is not just the fine patina at the surface. Though sculpting current software down to a simpler form that addresses 90% of the typical user’s goals may help, I think great usability is thoughtfully considered throughout the development cycle.

This is how Apple has been so successful when it comes to usability: they’ve chosen to design and control every level of the experience, not even stopping at the edge of your desk. Apple is practically designing a lifestyle. Their individual compontents are easy to use and consistent with each other, and the interaction between components is clear and consistent. Usability considerations aren’t constrained to one program. Apple’s approach doesn’t just go to the core of software, it goes to the core of all software and hardware in their system and to the global APIs that are available in all software. A thorough style guide means that keyboard shortcuts in one program that are consistent with keyboard shortcuts in another, and so on. So while you may look at a small change in source code and say “this makes my program more (or less) usable”, this is not a strategy for great usability in my opinion.

I do think we can have usability in the open source community. Making incremental changes to individual pieces of software won’t cut it, however. I believe that (yet again) a new Linux desktop/distribution should be formed, with usability as its purpose, and with the following goals:

  • Maintain interface consistency within and between all components. No software should be allowed in without meeting these criteria, and no more than one program of any kind is allowed (unlike today where there are five options for MP3 players, etc.). This kind of consistency is best achieved, in my opinion, by an auteur—someone who provides the central vision, and acts as gatekeeper and high-level decision maker, just as Linus Torvalds has done so successfully with the Linux kernel.
  • Severely limit or reëmphasize the options available to the user. We’ve already got way too many choices in this world. Lets reduce interface excise, hide or remove the least-used options, give greater emphasis to the most-used options.
  • Require all programs to use consistent keyboard shortcuts, preferences, operating system functions (like cut and paste), the same file browser, and so on. Make overarching OS-level decisions about the direct manipulation of data, so that this is consistent across all programs. This isn’t just about drag and drop, it’s also about spell checking, renaming things, etc.
  • Waste no pixels, leave as many as possible for content, use as few as are needed for interface.
  • Prevent crashes by allowing only mature, low-bug software (the Debian approach)
  • Make it comfortable for my grandmother or the hacker next door. Comfort requires the OS to become a part of the person using it, to take on the user’s personality. A new user should be able to quickly settle into the system and feel good using it. After all, the goal is to make the user feel productive doing whatever it is they’re doing, and productivity is just as much an emotion as it is an internal measurement.

There are more items on this list; I don’t know them all. A usable Linux desktop will need a lot of thought before it gets off the ground. I think it will need a clearer statement of the goals, a thorough style guide, and so on. This project could be greatly informed by other style guides and usability books, but it also needs to be tailored to the nature of open source development.

If executed properly, I think the final desktop environment will be far and away more usable than the mess we have today. Now, who wants to write up a vision statement? ;-)

Comments

Jul 20 02004 12.01a
Thomas F. O'Connell #

Part of the problem is that you would need to build at least partial consensus for your design goals. The openness of open source often makes consensus-building a fractious process precisely because so many developers want to be top dog or don’t want to be told how to code.

Also, keep in mind that it’s GNU/Linux. Linux is just the kernel. The part before the ‘/’ is whatever other utilities are involved.

I’ve always preferred GNOME to KDE as far as a desktop environment. But it’s funny. Even as GNOME kept focusing more and more on Nautilus, a file browser, I found myself opening 4 terminals, a web browser (Epiphany), and a mail client (Evolution).

Anyway, based on philosophy, I’m most sympathetic to perputating the work of GNU/GNOME and Debian in order to make progress toward a free software desktop for the 21st century.

Maybe GNU can become GNU’s New Usability….

Jul 24 02004 10.15p
Daniel Hiester #

I agree with you that KDE is a usability disaster. I’m utterly dismayed that KDE was voted the most popular desktop environment at linuxquestions.org’s year-end “best of” survey.

However, you can’t count out Linux without checking out Gnome. They are the reason why I use Linux in the first place. Their usability team has created a set of Human Interface Guidelines that all core Gnome applications must follow. You can tell they think along similar lines as Apple, but they do not blatantly carbon-copy; they do take ownership of these ideas themselves.

As far as browsing the web, checking email, listening to music and chatting in IMs are concerned, Gnome is more of a joy for me to use than Windows (the jury is still out on Panther; I wish Expose could be linked to an extra mouse button instead of F9, but I’ve yet to use that system with a 5-button mouse).

The problem with having too many choices for a single purpose (e.g. 5 mp3 players) lies in the hands of the distributors, not with Linux itself. The principle behind open-source software is that coding your own app is your freedom of speech. That said, I’m generally happy with the Dropline Gnome distro you can download if you’re using Slackware. They uninstall reduntant applications and generally leave you with what you need.

The bottom line is, even my Mom, who does little more than browse the web, check email and play solitaire, can get onto my computer and do just about anything, like FTPing a file to my server, and feel like the Gnome environment is easier to use than Windows, and I think that’s very telling.

Thanks for the post, though. I’m glad to know someone else out there is as nuts about usability as I am. :)

Leave a comment

(required)

(required)