Open Source software is regularly criticized, often fairly, for lacking in ease-of-use and polish. When a developer wants a new feature – he can add it to the software, and if it gets checked-in by the project owners, it will be there for all to use. The obvious fault with this model is the now well known scourge of “creeping featuritis” – when too many features and options begin to overwhelm and overshadow the core functionality of the software.
The Mozilla browser and suite were a high-profile example of the ills of featuritis. While the software did everything you could possibly want it to, people still seemed to prefer other software packages that did less.
In a well run software project (several of which I fancy myself a part of), any additional feature must be proved valuable before it is incorporated. Even if a patch is already written to add a new feature, there are plenty of reasons not to accept it. More code means more potential bugs and more management. Additional user interface features can detract from other more important features.
Learning to Say “No”
One of the most important acts of a software project manager is to say “no”. No, this patch introduces more code than it should. No, this feature will confuse more people than it will help. No, you’re ugly and stupid (sometimes the manager has a bad day).
The open source software model has dealt with the importance of saying “no” quite well in the realm of code and patches. Projects have a limited set of people with the power to commit code to the project. Anyone can submit a patch, but only the anointed few can accept it. These anointed few are usually determined by right of having founded the project, inherited the project from the founder, or through perceived merit. For more on the issue of project ownership in free software, see Eric Raymond’s Homesteading the Noosphere.
When submitted code isn’t up to snuff, it isn’t accepted (ideally). The practice of saying “no” to patches in open source software is understood and accepted. Now, some projects seem to be learning the value of saying no to ideas and features that will negatively affect the interface and experience of using the software.
Living Examples: Firefox
In discussion about the usability of open source software, the Firefox web browser is sometimes cited as an exception. Out from under the girth of the Mozilla project, this small and simple browser emerged to become one of the more popular open source products and projects. The developers of Firefox leveraged the long and proud history of saying “no” to code patches and applied it to the interface and functionality as well.
The resulting browser provides a better browsing experience than it’s ancestor, Mozilla Navigator, despite having far fewer features and functions. Smart default settings and an overall better understanding of the experience of using the application by the developers helped make it better for everyone.
Living Examples: Gnome and the Spatial Nautilus
If you think “Gnome and the Spatial Nautilus” sounds like a line from a novel that Douglas Adams and J.R.R. Tolkien might be collaborating on in the afterlife, please bear with me. Gnome is a group of projects that provide a desktop environment on Linux. Nautilus is the name of the file manager in Gnome, like Explorer in Windows and Finder on the Mac.
The “spatial” browsing metaphor a concept for browsing and managing files and directories of which the details are not important for this essay (to learn more about spatial browsing, see John Siracusa’s seminal article, About the Finder…). Suffice to say, the Gnome project has implemented spatial browsing in Nautilus in their latest release, and a lot of people really don’t like it.
Using the spatial browsing metaphor can take some getting used to, and many people who are used to another metaphor (or no solid metaphor at all) are understandably quite resistant to this new model. A fundamental and controversial shift like this is one I would not have expected an open source project to be able to pull off. While a closed corporation has a hierarchy of power, where one person can make a decision for all, consequences be damned, I was skeptical that such a move could happen in the looser structure of the Gnome project.
I was wrong. The developers of Nautilus debated and then declared their bold intent to “go spatial”. There has been much support, and much resistance. However, regardless of whether they were right (which will likely be proven over time), they deserve credit for making such a strong, clear, and decisive move.
Living Examples: Hunting for Preferences in Gaim
A third and final example of this pattern of interface elegance in open source software comes from a recent discussion on the development mailing list of the Gaim instant messaging client. Gaim is an open source messaging client that works with a variety of protocols (AIM/ICQ, MSN, Yahoo, Jabber, etc.).
Sean Egan, lead developer on the Gaim project, has posted his intent to dramatically simplify the “Preferences” in the application. He lists many preferences that can simply be replaced by a good default, and others that are just plain irrelevant. Rather than getting bigger and fancier with each release, the project seems to get simpler and more elegant.
Killing the Myth of the “Average User” and the “Power User”
Rather than aspiring to do everything imaginable, we are better off aspiring to do everything we might actually want our software to do in practice. While it may be that I’m attracted to projects that tend towards elegance in interface and design, I suspect that the examples I’ve cited here are not exceptions. Rather, I see them as part of a larger trend in open source software – one where simplicity and elegance in interface design is held in the same respect as elegance in code and engineering has been all along.
A kernel hacker, who we might all consider to be a “power user” may not be a power user when he just wants to burn a CD for his road trip. A database administrator, another typical “power user” may just want to chat with his friends, not perform an orchestra of preferences and settings in a chat application. We are all experts in some area of software and beginners in others (and our experience is constantly changing).
Rather than adding more and more features for the mythical “power user”, or swing to the other end of the spectrum and dumb-down the interface for the mythical “average user”, smart developers are learning that good defaults and elegant interface design makes software better for everyone to use, regardless of their level of experience.
- John Gruber cited Firefox and Camino as exceptional in their usability as open source projects in his critical reply to Eric Raymond’s essay, The Luxury of Ignorance. The reasons for the exceptional nature of Firefox and Camino are further discussed by Matthew Thomas.