Thursday, May 17, 2007

The Unspoken Morality of Open Source

It has long been my opinion that open source is fueled by an unstoppable economic phenomenon - downward price pressure as a direct result of the growth of the internet (and thus growth of collaborating developers) and the ensuing commoditization of software features. One of my central beliefs is that, all else being equal, being more open can be used as a competitive advantage. This is why I've always thought open source is very much entrenched in modern computing and will only grow from here. In a competitive market, one of the ways to differentiate yourself from the competition is to be more outwardly-focused, collaborative, and willing to open up your development processes. It's not that opening your code is a nice thing to do - it's a means of survival in today's IT market. Can you name a single IT startup in the last 3 years that didn't have some sort of "open" strategy? Exactly. Even the closed-source ones borrow heavily from Open Source-style community building and developer relations.

However, in describing the trends toward "open," the devil is in the details. Unfortunately, when originally thinking about these issues, I didn't include in my calculations all of the various gradations of "open." Furthermore, I tend to have a fairly binary view of the world - software is either Open Source or it is proprietary. As recent software licensing arguments have demonstrated, the current environment begs a more nuanced view. One can't simply look at the field of "open" companies and conclude that they are willing to fall in line with the OSI and their definition of Open Source. In a world where companies are described as either Open Source or proprietary, a company that falls close to the "open" end of the spectrum will naturally use Open Source to describe itself, even if it's not completely accurate.

This brings up a legitimate question: what then, should they call themselves? They're not traditional proprietary companies, so lumping them in with the likes of traditional ISV's doesn't seem right. It would seem that the obvious solution is to come up with a set of terms that describe companies more open than others... but not exactly "Open Source." For the record, I think it makes sense to have a strict definition of Open Source so as not to confuse the market. But there is a larger issue - why hasn't the OSI taken a leading role in providing an umbrella taxonomy for these companies?

To answer that question, you have to consider the origins of the OSI and both its stated as well as unstated goals. From the beginning, "Open Source" was pro-business spin for "Free Software" - without the baggage of the Free Software Foundation, its fanatical devotees, and that crazy hippie, RMS. To say that Free Software has a moral component would be an understatement. Open Source got its start supposedly as a better, pragmatic way to develop software in comparison to the traditional proprietary approach - more reliable, better security, and a high rate of innovation. But there was a moral component present in the definition of Open Source that went largely unspoken. Reading the OSD, it becomes clear that its authors wanted a fair business ecosystem whereby everyone plays by a set of rules, and certain types of behavior were definitely frowned upon. Preventing the forking of code is one example. Requiring the original author's logo be displayed in derivative works is another. These were discouraged by the OSI founders not because they felt it was in a company's business interest, but because they felt it was not a virtuous way to conduct business.

However, that aspect of the OSI and Open Source went largely unstated, and it generated much confusion in the market. Here was the organization that controlled the definition of the term Open Source, stating that their primary reason for being was to create a business-friendly ecosystem around Open Source software, and you had certain businesses and developers that didn't necessarily want to play by those exact rules wondering why the OSI wasn't being flexible. The reason, even though it wasn't really stated, was because those companies and developers that wanted to skirt certain parts of the OSD did not meet the OSI's moral standard.

Over the years, I've begun to feel that emphasizing the pragmatic aspect of Open Source at the expense of the moral was a mistake, especially when the moral aspects fuel so many of the current debates. There are many software vendors that wish to be more open and want to identify themselves as something that's not the same as traditional proprietary softare, and you can hardly blame them. They have been led to believe that Open Source is something that describes anything that's more open than everything else. The OSI has to find a way to accomodate these folks without diluting the term Open Source, but they can't do that until they publicly acknowledge the moral component of the OSD. It is better to acknowledge that it exists and eliminate any confusion as to why certain practices are not allowed. Then the OSI can perhaps accept the challenge of creating a fair taxonomy that doesn't simply describe mostly-open software as "not Open Source."