I have been struck twice recently by surprising comments about open source software.
Before continuing, let me be clear. I am a fan of open source. I like it, will use it when I can and am member of a few open source “communities” (including some I lead).
The license matters
In a commercial project I am part of, we were using the firebird open source database for development. Now we have to cooperate with a partner who prefers to use MySQL. This is assumed to be no problem as it is open source.
No so, Connector/J, the MySQL JDBC driver is distributed under the GPL license. This means that anything “linked” with the driver needs to be GPL as well. Oops, so any application accessing MySQL using Conncetor/J has to be GPL. We’ll have to find another solution (like using the jdbc2odbc bridge).
Most notable for me was that some of our developers were not aware of the difference between open source licenses and the implications they have. That is a big problem as it can cause major problems for the companies they work for (and yes, I assume there are many closed source applications which use Connector/J and thus violate the licensing terms).
Open source is not better than commercial software
In this article, “Commercial Packages vs Open Source: Which is Better Long-term?“, the author questions whether using open source is a good business decision.
This is a typical story, of which there are a few variants. One is that commercial software is better because you get support. To my view this is not a differencing factor between open or closed source software. The other says open source is better because you can access the source code. This again is not important in many cases. And of course there are the anarchists who claim that everything should be free.
Without considering the philosophical merits of open vs closed source software, you have to consider both as two competing business models. Each has its merits and weaknesses, but most importantly both can be executed well or badly.
- Support :
Only a limited set of open source projects have professional, for pay support. If that is what you want, you better check whether it is available. However, even though it may not be advertised, in most active projects contacting the the project leads or main developers can give you assurances of support. Then again, if price is one of your main motives, there often is quite a lot of free help is well. When you ask your questions in an intelligent way, there are often people who want to show they are smart enough to help you.
What is important to consider is that commercial companies don’t all give the same quality of support, just as not all open source communities are equally helpful. In closed source projects, the support is sometimes lacking, it is not always considered essential by the company. For open source projects which offer commercial support, that is their business. As there is no other source of revenue, they better make sure the support is good or others will do better (the source and thus inner knowledge is accessible to everyone) if there are wanting customers.
- Community :
This admittedly can be a weak point for open source projects. From all the OS projects which exist, only a relatively small number is active and even less have a large community. In the same vein however, most closed source projects also have a limited number of customers. As always whether the project fits your needs and your trust in the people behind the project are the driving factors behind your choice. Try getting in touch and see how helpful they are, then make up your mind.
- Price :
Obviously, any software which is more expensive than your budget allows is out of reach. However, you have to consider all costs. These include time spent because of (lack of) documentation, license and redistribution fees, support fees. These may also include costs of opportunity lost because of slow support. Again open vs closed source is not the differencing factor, it is the quality which is import.
- Access to the source :
The importance of this depends on the kind of product. For end-user products and tools, the availability of the source code is usually irrelevant. However, for middleware or software libraries, being able to examine the source code may be interesting to learn more about the system and use it more efficiently. It can also be useful for having quicker fixes to some problems, though this also depends on the quality of the support. There are also closed source companies which (sometimes for an extra fee) make the source code available to their customer, again making the difference between the business models smaller
Make sure you know the license and redistribution limitations, they may not be compatible with the project you are working on.
Investigate the products to determine which are suitable. Ask questions to check whether you are being helped. Ask questions about the support options, there may well be more options than advertised on the website. Calculate the total cost compared with competing solutions, possibly including building it yourself. Then make your choice. Whether it is open or closed source, free or for-pay should not be key deciding factors.