Friday, January 29, 2010

To "Open Source" or Not to "Open Source"

Today's column is by Julian Egelstaff of Freeform Solutions. Julian writes:

"Let me assure you that whatever problems the Mozilla project is having are not because open source doesn't work. Open source does work, but it is most definitely not a panacea. If there's a cautionary tale here, it is that you can't take a dying project, sprinkle it with the magic pixie dust of 'open source', and have everything magically work out. Software is hard. The issues aren't that simple." Jamie Zawinski, co-founder of the Mozilla project, at the time of his resignation in 1999

An odd question landed in my inbox recently. A development team was looking for advice about open source licenses. Specifically, they wanted to find a license that would:

  • require the consent of the original developers before distributing the code, except among a small group of related organizations

  • require people to notify the original developers if they use the code and if they make any changes to the code

  • disallow the selling of software based on the code


Doesn't sound very open does it? That was my basic response...this team doesn't want to do open source as far as I can tell. But the idea of open source is out there, sharing code is a hot topic, and these guys did want to share code, just not very widely and only under certain circumstances.

I don't think they're alone. A lot of people feel very possessive of their code. A lot of organizations feel very protective of their investment in intellectual property. For some, sharing of any kind is out of the question. For others, it's an interesting idea, but they don't quite "get it" and they're not sure how it might apply to them.

My advice would be to follow the value. Where is it coming from? If you can answer that question, you'll know if open source is for you.

First of all, remember what open source is...at the end of the day, it's just a way of developing software. Like Jamie Zawinski said when he left the Mozilla project, open source is not magic. But it can have a powerful effect, when its practitioners come together and persevere. Mozilla may have had failures 11 years ago, but these days it's home to one of the most successful projects in the world, Firefox.

Open source is a way of developing software, that tries to leverage contributions from the entire community of users. In practice, only a small number of users contribute to the actual programming, but any user at all can contribute to bug reporting and testing, documentation, and even planning features for future releases.

To guarantee that collaboration, open source licenses enforce certain obligations on the users of the software, most notably that they must provide the source code every time they distribute the software to someone else. That way, no one is left "out of the loop", so to speak. Everyone is on an even playing field when it comes to the use and development of the software. At least theoretically.

The fact is, just having the source code is never enough. Even armed with the source code, no one is going to out-mozilla the Mozilla Foundation. Lesser projects may get forked from time to time, but who in their right mind could ever fork Linux?

Open source projects exert a powerful control over their own direction and destiny through all kinds of other means, besides the licensing agreement. The right to the source code may be the under pinning of open source, but just like freedom of the press in a democracy, it's the actions and ideas of the people who use that right which truly guarantee the freedoms that the right is there to protect. The community is as important to open source projects as the code is.

The right to the source code, and the will to pick it up and use it: those are the two mechanisms that drive open source forward. So what does that have to do with value? Well, if you're in a classic software development business, along the lines of Microsoft, then you're betting that the value in your business comes directly from your ability to develop software that is better than anyone else's, or at least more widely desired, and to essentially limit access to it and charge for every copy. Creating value in that kind of a situation means you've got to maintain a big marketing and sales team, and all kinds of things that don't have much to do with the act of software development, just to protect (or create?) the value that is ostensibly derived from your software.

The problem with that kind of value proposition, is that most people assume that's the value proposition all software has. Nothing could be further from the truth. I have seen many organizations instinctively hoard software, because they think software in general has intrinsic value, even though they have no marketing or sales organization whatsoever. In fact, the software is contributing nothing to their bottom line at all, but they still won't release it, because it's "theirs".

What if the value comes from something else? What if the value doesn't come from the software itself, but instead comes from the domain expertise of your organization or your developers? What if the value comes from the way in which you know how to use the software? There are all kinds of sources of value that surround software, that don't come directly from it. If that knowledge and those activities are the true source of value in your case, then releasing software as open source can make a ton of sense.

I think people need to ask themselves, "what is the worst thing that could happen?". This often puts everything in perspective. If your software is released into the wild, will someone run away with it and somehow harm your organization? What if they had to share all modifications they made to the software? Chances are, you will be at the centre of the community that grows up around the software.

And if the value is in all those things that surround the software, then being in the middle of that space gives you other benefits and opportunities as people turn to you for expertise and support and leadership. By embracing an open source model, organizations can create value from software that might otherwise be contributing nothing to the organization.

So what did that development team do, that was thinking of open source but didn't sound like they really wanted it? Predictably, they didn't open source their software. But just because they lost an opportunity doesn't mean you can't find one! Look around at the software you are developing, ask yourself how it creates value for your organization if you keep all that code to yourself. In many cases, I bet you'll see that the real opportunities come from the community of users and contributors you haven't met yet.

No comments: