A friend of mine asked me this question today. And even though I’m NOT one of these “free software” zealots who think that beyond Open Source, there is nothing valuable, I found it interesting to think about a few arguments. But let’s be clear right away:

  • I’m not opposing Open Source and commercial software, so I focused on the reasons to open source a project, not the reasons NOT TO sell it
  • Even though I do believe in those, I won’t mention philosophical reasons, but only on reasons that could convince my boss (and my boss doesn’t give a damn about “users should be free”)

#1 To build an indirect but wider business model

Most people think of software applications as normal products. Exactly like RIAA majors would like to reduce music to the same status. But common usage has proven them wrong, and for a very simple reason: a traditional product is something that you don’t have anymore once you’ve sold it to somebody. The main part of the unit price for each instance of this product covers raw materials and production cost. Software is fundamentally different, so the business model has to be adapted. Many big companies have already understood that: instead of selling a few instances to those who can afford it, you give it to everybody for free and then you charge them for additional services: training, customization, hosting. Of course, this implies that your product can generate such satellite services, that it can be of some interest to professional users. The general idea is: the wider your user base, the more services you can sell, which can potentially be much more profitable.

#2 More hands and brains

Sometimes, a software application becomes really interesting once it has enough features to be adapted in as many different situations as possible. But on the other hand, it’s very important to focus. So if your application is modular, like a CMS for example, the bigger the developer community, the more feature-rich your application, the wider your user base… and back to #1.

#3 Believe it or not, some returns from users are more important than money

Feedback, ideas, feature requests are the best way to make your product evolve in the right direction and make sure it is as useful as it can be. But gathering feedback for something you sell is more difficult: “why would I contribute to a product I’ve already paid for, all the more so as I have nothing to gain from contributing?” On the contrary, Open Source plays on what is called “the reciprocity principle”: people who get something for free are more volunteer to “pay for it” in other ways. The general idea is simple: give it to one user for free, he will suggest one excellent feature that will convince 10 more users to use it, 5 out of which will buy satellite services… and back to #1.

#4 Double licensing

Open Source doesn’t mean that anyone can do anything with your code. Open Source projects are protected by a license. The most popular Open Source license out there is GPLv3. It might be controversial, it offers one major protection: anyone that reuses or integrates your code MUST open source their project under GPLv3 too. This has a very important corollary: no one is allowed to sell your product instead of you. Practically, this is just a legal protection and some big companies violate it every day. But if it happens to you, you can sue them!

But since you understand that some users might be interested in reusing or embedding your product for commercial purposes, it makes a lot of sense to offer an alternative: a commercial license that people will have to pay for. And all of a sudden, your free users become your best salesmen: they use your product for free at home, they suggest it at work, and their boss buys a commercial license… and satellite services. You win!

#5 Do it first, before someone else does

If you are not convinced yet with the 4 reasons before, someone else might be. And even if you don’t release your code, unless you have protected your application with a patent (which doesn’t exist here in Europe since it’s pure nonsense, but that’s another debate :oP), anyone can take your idea, do it better, and open source it, thus cutting the grass right under your feet. On the other hand, if you open source your project, people will have more interest in contributing to it than creating their own version. And if they still do, it means your execution of the idea is really bad anyway so…

Now what do YOU think? Do you see other reasons why Open Source might be a good option for your next big idea? On the contrary, what reasons do you see NOT to Open Source a project?


Lance · March 26, 2009 at 11:58 am

I think your last point is the most important one. If you have a good piece of proprietary software, it’s only a matter of time before somebody else creates an open source alternative. The question you have to ask yourself is: Am I happy to compete with an open source rival, or do I want all of those talented developers contributing their time and ideas to my software rather than a competing product?

Vaudtje · March 26, 2009 at 2:09 pm

I also like the idea of ‘pay it forward’.
Open sourcing your own product is a way to pay for the open source stuff that you already use. Without directly contributing to those products, the community benefits.

Antoine Marcel · March 26, 2009 at 7:37 pm

Same way that you can impose a license on your software and expect others to honour it, make sure you know what type of open source software YOU are using in your project, and what the licensing obligations are. Pay attention to the licensing requirements, or better still use a tool (Protecode a simple solution, but there are others) to take care of it for you.

Karim · March 29, 2009 at 6:23 pm

Sébastien ,, GREAT points to answer the question ,, Many people and some developers in my country (Egypt) wasn’t understand WHY? too ,,
so Sébastien please check your PM ..
waiting for your replay :)

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.