My laptop recently died. Depth-First hasn't been updated lately due in part to the time it's taken to get a working replacement. For my new system, I wanted to build a desktop from components and run Linux on it, which is the OS my old system was running. Now, anyone who has done this knows that assembling the hardware is actually the easy part. Getting the hardware and OS talking takes most of the time, effort, and four-letter words - especially with Linux. I knew I was in for some pain, and I wasn't disappointed. In the process, my appreciation for Software That Just Works was renewed.
For those that might actually want to repeat what I've done, I used a new ASUS A8N-VM motherboard with onboard ethernet, sound, and video. I've been sporadically installing Linux on various systems for almost ten years now, and this is the first time I've bought hardware that came bundled with Linux drivers. Very exciting. Ultimately, this didn't matter because nothing I tried could get these drivers to work under Mandriva 2006, Fedora 4, or Fedora 5. These drivers did work flawlessly under Windows XP. Score one for Software That Just Works.
Fortunately, just as I was considering returning the motherboard and starting all over again, I noticed that Mandriva 2007 was released. I burned some installation CDs and hoped for the best. To my shock, there were no installation errors. But even more surprising was that after booting up, all of my hardware (video, sound, and ethernet) Just Worked. My USB printer's driver was automatically installed, and it Just Worked. I plugged in my laptop hard drive, which I had installed inside a 2.5-inch USB enclosure. It Just Worked. There was just one minor networking issue I had to take care of. But it was actually a problem with IPV6 not being properly handled by webservers.
It's easy to lose sight of the frustrations users face when approaching new software. What seems straightforward to a seasoned developer can be utterly baffling to the uninitiated user. There were several points during my installation tribulations that I seriously considered dropping Linux altogether. But as a longtime user, I'm accustomed to installation problems and know the reward. Most new users aren't nearly that patient. They'll bail at the first sign of trouble with the product you've worked so hard to create. Then they'll look for something else that Just Works. When they find it, they won't look back.
Building Software That Just Works is the best strategy I can think of, whether your goal is to sell your software or just get it noticed. It sounds simple, but is actually very difficult to do . Witness the plethora of Software That Doesn't Even Come Close to Working. Chemical informatics software is no different, an idea that will be explored in future articles.