Best viewed with Firefox, Safari, Internet Explorer 5 and up, or Netscape 6 and up.


graphic

Software Usability

Things software developers should do right rather than wrong.

After almost 30 years of software engineering experience, I'm now on the other side of the fence: my business is Macintosh training and support.

I now see how normal people think. As software engineers, we don't think like others — many of us never realize this. I don't want to hear that these problems give me job security. It's that kind of attitude that causes them in the first place.

I may even name a few names here. If you're unhappy finding yourself here, then fix your software. Change your ways.

Installers That Don't: MacOS X has been out since March 2001, so it's high time people get their installers working properly. Many installers simply fail when trying to install for Classic (e.g. some Epson printer drivers).

Other installers don't have a clue about administrator privileges.

Even dumber are the installers that ask for the administrator password, then fail some distance into the install process.

For a while, Palm Desktop was in the latter category. It only worked properly when you were logged in as the administrator. Authorizing didn't work for non-admin users. Bzzzt. Fix it.

When the installer fails after getting started, what is the state of the system? Have all files been installed? Some? None? A failed partial install can be a terrible situation to fix.

Why Does This Happen? I see two major reasons: First, many developers don't want to write an installer, so they buy one from a third party, like VISE from MindVision. (I think little is MindVision''s fault: I expect they fix bugs quickly.) But do you as a software vendor (e.g. Epson) use the latest version of the installer? Take the extra time to check that you have a good installer. Make sure your installer scripts are right. Occasionally, there will be cases where the shipped product contains a buggy installer. So tell us on the web site, and help us get through the process.

Second, not enough configurations are tested. I know it's impossible to test every possible configuration, but there are some simple tests that would work. Start with a clean system install and test the installer. Make a non-admin user for the test. Try several versions of the OS, to ensure that everything looks normal. Trying a reinstall is absolutely essential; people do this all the time, and they sometimes have removed some of the files.

Software development doesn't end when you hand something off to the folks responsible for packaging it for distribution. Installer failures are the cause of lots of hardware being returned to retailers, and thence back to the manufacturer. If you want to improve your company's bottom line, make sure your product's software installs properly on most systems.

Nobody wants to make this better because it isn't leading-edge science. It isn't interesting. It isn't prestigious. It isn't cool. Don't simply throw the product to a summer intern and say "Do the Installer." Make the installer as important as the product, because it must deal with a large number of system configurations and installation options.

Don't limit testing to software professionals. They immediately realize "Oh, I know what I did." The instant that happens, it indicates the need to inform the user about the error in detail, so that a support professional can effect repairs. Don't simply shrug it off and continue testing. Report this situation as a bug that needs fixing. I'm sure that if Steve Jobs' mother runs into problems, people will fix things immediately or be cleaning out their desks.

Invisible Commands: I've seen several examples of programs that simply hide commands and settings when you're not in the right mode. Microsoft Word 98, for example, has a Style Area that can be shown when in the Normal View mode. Unfortunately, the preference to change the width of the Style Area (and make it invisible by using a width of zero) is completely missing from the Preferences dialog unless you're currently in Normal View.

Why couldn't they simply gray-out the field? Don't blame it on Microsoft: they don't have a lock on doing this. (This has been fixed in Office X, and probably in an earlier version.)

Moral: If the user can't do an operation in this mode, gray it out. It's very useful to know that something is possible, even if it can't be done at this time.

Multi-Purpose Buttons: I'm sick and tired of buttons that change meaning based on what mode you're in. You've seen it in iTunes and many audio applications: The Play button changes to a Pause button when the audio is playing. Then it changes back to a Play button when you stop playback.

In most cases, there's plenty of room to have separate buttons.

People often confuse a button with an indicator. "Does that mean I click there to play, or does it mean it should be playing?"

User Interface From Jupiter: The HotBurn CD-burning software from IOMega is a spectacular example of a user interface from Jupiter. What are you guys thinking? Were you thinking? If you can't make a user interface follow the Macintosh style, at least make it look like Windows. Those are the two predominant styles on this planet: use one or both of them. If you like alien-style "skins" on programs, put them on your own personal programs: don't inflict them on others.


Valid XHTML 1.0!