Free Software and Baseball Analogies

We have been crazy busy over the last few months and since fourth quarter is historically our busiest time, I don’t expect it to get any less hectic any time soon. I expect blogging to be very sporadic and out of chronological order (as I’ll get to things as I think about them) so Faulkner fans rejoice.

On second thought, true Faulkner fans would run away screaming and have nightmares at the mere thought of comparing my writing abilities with that of the venerable author, so scratch that.

[Re-reading this, I’m not happy with it, so stop reading and go watch Auto-tune the News. I’m going to post it anyway since it will help me get back in the groove.]

We had training at OpenNMS headquarters this week. This will be the last training of the year, as the next one would need to be scheduled in November or December and rarely do people like to travel during the holidays (although I always end up in Chicago for some reason). Look for training to return in January.

It was great. We had six incredibly smart, amazingly handsome people in for the week. Two of them came all the way from Chile, and one guy rode his Ducati from Pittsburgh. It was fun, and the guys from Chile had replaced Netcool with OpenNMS, so that was even better.

In other news, I’m in Portland (Oregon) for the weekend working with a client, and while I was traveling yesterday I came across a post by Terry Hancock called “Is free software major league or minor?

It’s worth reading.

Open source and free software detractors often try to paint the community as a bunch of zealots who hold ideals over practicality with no room for compromise, and while it is true that there are some notable examples of such behavior, the vast majority of free software users prefer open software over proprietary programs but use a combination of both.

Hancock points out that on one hand we in the community state that open source is just as good as expensive “major league” software, but when we are called on the carpet for a lack of documentation or usability, etc., we cry “but we’re just volunteers” and take a “minor league” stance. Which is it?

Obviously, I liked this article. Hancock had me at:

“Free Software” and “Open Source Software” is the exact same artifact, no matter who is promoting it, nor on what advantages of it they promote.

which is something I’ve been saying for some time now.

I can’t improve on his post but I would like to add a couple of thoughts.

The first is that open source software often gets rid of the cruft associated with proprietary software. In terms of the major league analogy, does one need a huge stadium with luxury skyboxes, designer uniforms and a private team jet to play great baseball? One of the reasons that open source software tends to be more stripped down than commercial software is that we tend to focus on what is important from a functional standpoint versus what looks good. Since open source software is not “sold”, there is no need to make it all bright and shiny.

But at what point in time does this focus on the basics start to impact usability in a meaningful way? To return to the baseball analogy, you can strip away the stadium but you can’t, say, remove the pitcher’s mound.

When it comes to usability, Apple products are hard to beat. They are also experts at controlling the user experience.

They spend lots of money on the little details. I can’t find the post now, but apparently the message displayed while emptying the trash changed from Leopard to Snow Leopard. It was a small change, along the lines of “This action will delete your Trash items permanently” to “This action will permanently delete your Trash items” but it serves as an example of the level of detail they track.

Since Apple customers pay a premium for their products, there is an expectation for this attention to detail. But the “user experience” doesn’t necessarily mean “usability”. While I’m impressed with the changed text in the example above, it doesn’t do a thing to improve usability (there are a number of other features in OS X that do, however).

With OpenNMS, we really need to focus a more on usability. While large changes in the webapp are not coming in the next few months, one of the things that is holding up the release of 1.8 is that it won’t be released without greatly improved documentation. The second most frequent comment we get in our training classes is “I didn’t know OpenNMS could do that” (with the most frequent being “This class is great!”).

The second thought I had comes back to this concept of freedom in free software. Open source is free software (and those that tell you differently are selling something – probably software). However, as Hancock illustrates, people who focus on “open” tend to be more concerned with how open source software can be used to solve problems than those who focus on “free” – who tend to be more concerned with freedom as an ethical issue.

I am more in the “open” camp, but like others I do get concerned about freedom when it extends beyond the realm of code. I don’t care that I can’t have access to the code that runs my microwave oven, but I get a little more concerned when it comes to the code that runs my car. Not because I plan to hack that code, but as cars become more and more dependent on their computer systems it could become impossible to work on the car without access to the software. Plus, this software could be collecting data that I might want kept private. I think it is important to focus on freedom in software since control of software is becoming synonymous with the control of information.

Last weekend at the Atlanta Linux Fest, Jeff’s wife teased me about my old LG phone. I got it over 3 years ago with Sprint. It’s not a bad phone but it is a little dated. The problem is that I can’t decide what phone to get next.

I have an iPod Touch and so the iPhone is a contender. The augmented reality stuff is really cool, and it was only possible because Apple created a phone with a solid SDK, a video camera and a compass. But working on the pre-alpha OpenNMS iPhone showed me what a royal pain it is to develop an open source application on that platform.

Chris Dibona was kind enough to send me a G1 handset. Even though it is open, the only way I could find to sync my contacts was through my GMail account. Now I like Google as a company, but I don’t want anyone to have access to my contact list. Even Apple, as far as I know, lets me keep that information private. So I gave the phone to Ben so he can make an Android OpenNMS app. I’m still waiting on some of the newer Android phones to come out as possible contenders.

The question I’ve been asking myself is: how open and free does my phone have to be? Is it like a microwave – something that can easily be replaced or has substitutes, or is it something I must have to control my information. I’m not sure.

Perhaps the whole idea of using a game analogy to describe what’s going on is a FAIL. People keep talking about open source “winning”. Lots of people find open source software useful and it is a viable alternative to proprietary software in many cases, so it has “won”. I also think it has “won” by delaying, if not preventing, those who would control all of our information. Anyone with hardware and an internet connection can get a web server running and to send mail. But has it replaced all proprietary software? No.

My guess is that we need a better goal than “winning”. For example, while I want OpenNMS to replace OpenView and Tivoli everywhere, my first goal for OpenNMS is to make it easier for first time users to get it installed and know what it can do. When we have achieved that goal I want to make the configuration files easier to modify. Each step is an improvement, each step brings us closer to the “major league” and in such a fashion that we can deal with the pragmatic need to pay for it all.

Eventually, if we do it right, people will see that they should choose OpenNMS, not because it is cheaper or that it is open source, but because it is, quite simply, better.

As Sun Tzu said:

For to win one hundred victories in one hundred battles is not the acme of skill. To subdue the enemy without fighting is the acme of skill.