posted by Richard Spindler on Tue 8th Mar 2005 19:07 UTC

"Usability, Page 2/2"
Stability:
Release early, release often. This is a popular motto for Free Software Developers. However, I do not really like it because it encourages developers to mark unstable software as a release. There is one thing that I consider very, very poor usability, and that is crashy software. It's about reliability. If a program behaves nicely, and doesn't crash on my system, I start to trust this piece of software, and I like to trust my programs. I can then happily recommend this software to friends, and they will be happy too, hopefully.

But if you really want to get your cutting edge software out, I recommend to use CVS as some kind of secondary release mechanism. Encourage your most enthusiastic users to check out from CVS, and they'll happily comply and compile, but without the presumption of stability.

File Formats, Config Files:
One thing that should be considered carefully is the file-format for application data. That includes both, configuration data and user data.

Take, for example, Firefox. I installed the 1.0 Version, imported my Preferences from Mozilla, and after some days, I became aware that some sites were subtly broken. I did some research on the Net and found out that I had to delete my .mozilla file to fix Firefox, because the old preferences file was screwing up something. That's poor usability too. This case actually describes a bug, but the point I am trying to make is, make sure that your file formats and configuration data is at least forward compatible.

Documentation:
Some Words on Documentation: avoid lengthy complicated instructions. Nobody likes to read it. Provide simple examples and provide commented screenshots if the application includes a GUI.

If your software requires lengthy descriptions, rethink your front-end design. Where the front-end includes plain text configuration files and APIs (See Writing Small Software by Felix von Leitner) this of course depends on the type of application.

Possible Solutions

Static Linking:
One common complaint about Linux is that binary packages from one distribution are not compatible with other distributions, and there is a need to create a Technology to circumvent this problem. Well, a solution exists, it's named "static linking". For those unfamiliar with this term, it's a means to include parts of an application normally distributed as shared libraries into the application executable. Some people dislike this solution because of the additional overhead if two programs statically link to the same library. However, there are cases where the tradeoff is insignificant compared to the advantages. With careful selection of libraries to compile into your binary and some serious testing of your binary packages, it is possible to create a program that works well on the vast majority of the standard Linux distributions. Vendors of closed source software do this all the time, and it works surprisingly well. The only thing that's missing in the Open Source World is an awareness of the importance of high quality binary packages.

Testing:
Test your Program on different Machines, Distributions, test whether they import old File formats, whether the preferences file from the previous version screws it up. Test your binaries, if you really can't make them work on a specific Distribution, provide a note on your Download Page.

Website:
Keep your Website up to date. If you're too lazy, provide yourself with an easy to use web-based tool to manage your project homepage. I'd recommend a wiki based System for this, for example PmWiki. Make sure that you provide a decent selection of screenshots at every new release, I love screenshots, and so do a lot of other people I suppose.

Free Software Advantages:
There are of course areas where Free and Open Source Software provides a better usability then others. One such example Is that most applications are available for multiple platforms. I appreciate it actually very much to have all my commonly used applications ready whenever I have to work on a win32-based machine. I recommend everybody to recognize this as a key-superiority of Free Software and encourage everyone to provide win32 binaries of your applications.

Conculsion

Why should you care about Usability? Because it improves the quality of the product. If you do not care for quality, maybe you should ask yourself why do you actually publish software. A severe usability problem should be rated as important as for example a memory-leek in your program, it's a simple "Must fix it"!

Some Links of possible Interest
HighQuality-Apps-HOWTO
Software-Release-Practice-HOWTO

About the Author:
Richard Spindler is a computer-science student, usability, security and free-software advocate. Homepage:http://ggseq.sourceforge.net/


If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.
Table of contents
  1. "Usability, Page 1/2"
  2. "Usability, Page 2/2"
e p (0)    132 Comment(s)