Open source software security

Skin Deep is Good Sometimes

30 November -0001

Interestingly, an old debate is resurfacing in the Linux community with the recent posting on Mark Shuttleworth’s blog. For those that don’t know, Mr. Shuttleworth is the luminary behind Ubuntu (and the many other *buntu’s) Linux. His company, Canonical, foots the bill for the development of a rather revolutionary new distribution. It is available completely free, and you can even order a free CD sent to you without charge. Their motto at Ubuntu is “it should just work” and by and large their distribution doesn’t disappoint. It is probably one of the best constructed distributions I have ever installed. This is no mean feat. Many Linux companies produce two versions of their distribution - the free version, and the commercial version. The idea is that the free version generates interest and sales of their commercial version. The problem with this model is that often the free versions are buggy and difficult to work with, and serve merely as hooks to shelling out for the commercial version (a la “you wouldn’t be having this problem if you paid for it” alerts). I have found this to be particularly so with the latest Mandriva 2007 Free release, but have also run into it with Fedora. I digress, however.

So Ubuntu is totally free, and it is already very beautiful, but Mr. Shuttleworth’s call to make it “gorgeous” should be a wake up call to anyone who isn’t already aware. Software projects that interact with user interfaces live and die on appearance. I have witnessed the most brilliant applications fall flat because they looked unappealing, and conversely I’ve seen useless products sail on the power of their cosmetic appearance. Granted, software without any substance won’t last long, but you would be surprised at how much mileage a pretty interface will get a project.

There are many examples of successful FOSS (Free Open Source Software) projects that have amazing UI (user interface) teams. Several online projects come to mind right away. I’m not sure why this trend hasn’t trickled down into the Linux distribution community. Perhaps it is because that community traces its roots back to unix. Some of Open Source’s greatest success stories - Linux, Sendmail, Apache, Samba - don’t actually have any user interface. These are software systems that are invisible to the end user. They do things like serve web pages, transport e-mail, and build a basis upon which you can create user interface applications. Since these projects served as the initial momentum for Open Source, perhaps their processes came to dominate the process of developing new OS software. These projects all depended on a high level of technical accuracy and functionality, rather than interface. Many of them used simple text files or command line interfaces to interact with operators. This was the norm. Perhaps these systems’ neglect of UI became the standard adopted by other OS projects.

My other suspicion is that software developers are rarely objective about the look and feel of their projects. Since developers are so focused on the code and functionality they are often blinded to the interface. Anyone who has ever cheered silently for a successful unit test knows that when you see the software function correctly it makes you, as the developer, happy. What we often fail to realize is that the end user approaches the software from a completely different perspective.

Even when software is explicitly developed to end user specifications I have seen this happen. The client asks for a system with a set list of functionality. Over a long period of time a development team labors to create software that matches each of the clients’ requests and eventually produces an elegant solution that meets and or exceeds every requirement. Bright eyed and beaming the development team then presents their paragon of software design to the users - and are met with complete disinterest. The clients will grudgingly admit that the software does meet their specs, but they won’t exhibit any of the enthusiasm the development team expects.

The explanation for this puzzling behavior is almost always that the user interface is completely un-engaging. The clients see a flat, tasteless, and uninspiring interface that evokes all the joy and artistic elegance of a legal pad. Because the interface does not inspire engagement the software itself suffers. Users must be trained to use the system because the interface doesn’t encourage exploration. The software is ugly, and its lack of aesthetic appeal will actually discourage its use. The client will look for alternative solutions and the development team will be left wondering why their efforts failed so miserably.

The solution, of course, is often outside of the purview of software developers. The biggest industry to overcome this obstacle is web development. Designers have long been an integral part of the audience and development of web sites. Because much of online application development grew out of web site development, most online firms have been exposed to design teams, and seen the success that attractive design can bring. Online application developers seem to have discovered earlier than other software developers, that having an attractive interface is critical to a projects success. People will overlook all sorts of bugs and shortcomings in order to experience an attractive interface.

At some point this lesson must trickle down to the Linux distribution developers. Desktop environments must have an attractive, unified look and feel. Widgets should all follow the same pattern in order to create a smooth, integrated feeling. Many of Apple OS X’s greatest accomplishments are subtle, but extremely effective. You can observe the complete consistency of the interface very easily by simply installing KDE or Gnome and altering your window appearance to use OS X themed buttons. While the windows suddenly look a little bit like OS X, the entire experience is suddenly a little jarring and none of the elegance of OS X’s theme is actually detectable.

Until distribution developers begin utilizing the services of good design teams, and allowing them to craft the desktop experience from the top down Linux will appear clunky and unattractive to users. End users won’t be inspired, and may very well be repulsed. Providing a good user experience is like cleaning up an office space before putting people to work in that space. A well designed workspace encourages efficiency and actually adds to the enjoyment of users working in that space. This has to be a unified experience as well. Workers moving from one aesthetic to another with every mouse click will become disoriented and uneasy.

I am sure there is an entire community of designers and artist who would be more than happy to contribute to open source. The broad appeal of widespread recognition of their work would likely be motivation enough for many designers. The chance to get involved at a critical period of Open Source development is there too. Until distributions begin investing in their appearance, however, they will always face major hurdles to adoption.

I think Mr. Shuttleworth is definitely on to something. It is no wonder that Ubuntu is so popular. Just compare screen shots of Ubuntu to any other distribution and you can easily see why people like it. It’s not very different from any other Linux distribution under the hood - but the presentation is miles apart.