Interface Elegance in Open-Source Software

Steven Garrity writes:

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.

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, youre 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 Raymonds Homesteading the Noosphere.

When submitted code isnt up to snuff, it isnt 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.

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.

Steven gives examples of three projects: Firefox, Gnome and the Spatioal Nautilus, and Gaim.

Published by

Rajesh Jain

An Entrepreneur based in Mumbai, India.