I generally prefer free and open source software (FOSS) over commercial software for several reasons. It can save a lot of money, a lot of good software is available, and it has many conveniences commercial software doesn’t. To make sure we are on the same page, I am using free as in speech AND beer.
Software can be expensive. As of this writing, Microsoft Office costs anywhere from a one time cost of $150 to an annual subscription. Think of other types of software you spend money on. $20 here, $100 there adds up, especially when they are subscription services. Open source alternatives exist for a huge range of applications. They won’t always be able to replace their commercial counterparts, but it is always worth trying them out. The worst thing that can happen is that I am out of a little bit of time. Organizations with hundreds or thousands of employees can reap huge savings.
Not only can software be expensive, managing the licensing can be time consuming and complicated.
Licensing can be complicated. There are several methods software companies use to determine how much it costs to license their products. Some products are licenses per processor or per core, where they charge a fee for each core or processor installed in the computer it will be running on. Some charge per host, which is a fee for each computer or VM the software is installed on. Another method is per user, where a fee is charged for each person using it at any given time. A different per user method is a fee is required for each person that will use it all, even if they aren’t using it at the same time.
Commercial software can also come with recurring costs. Requiring an annual support contract as a condition of using the software is a common practice. How this fee is assessed has all the complexities of license fees. It gets even more complicated when companies offer different service level agreements.
I find free software to be more convenient than its commercial counterparts. I use a lot of “enterprise” software due to the nature of my day job. I have a lot less headache with free software than I do commercial software for several reasons.
With free software, I don’t have to deal with headaches such as audits. I can run the software wherever and whenever I want to without fear of legal and financial consequences. I don’t have to deal with license keys or license manager software.
Having the code allows me to compile and run the software on whatever operating system I choose rather than what the company or developer creates binaries for. Another nice thing about a lot of open source applications is the flexibility to build the binaries to suit my needs. For example, OpenLDAP can be built to use one of three SSL/TLS implementations. If I want to change how the application works, I am free to do so. With commercial software, I am stuck with the application as is.
If you are a Linux or *BSD user, there is a good chance the open source application to suit your needs is in your distribution’s software repository. This saves the headache of compiling and patching the application. Some open source applications, such as Zabbix and PostgreSQL even host their own repositories. Installing from a repository using the operation systems’s package manager ensures that I am not missing any dependencies and makes installing updates much easier.
This is a big one. With commercial software, your support options are often limited to the company that produces it. If they don’t fix my issue or create a patch for a bug I encounter, my options depend on the terms of the contract and EULA. Sometimes there isn’t anything I can do.
With FOSS, you can sometimes get support from the company that produces it, as is the case with the network and server monitoring software zabbix. In other cases, like the popular database software PostgreSQL, support is available through several third parties.
The best thing about FOSS support is the ability to self-support. Having the freedom to obtain, read, and modify the code means that I can always fix any bugs myself. If I submit the bug along with the fix to the developers, the rest of the users will benefit from it. I have done this on a few occasions. I would much rather spend some time debugging than going back and forth with a vendor. Usually they want me to send them logs or some kind of report. Then it is a waiting game. Lather, rinse, and repeat until it is fixed, they tell me it will be fixed in the next version, they aren’t going to fix it, or they think it is a problem with something not related to their software.
One of the greatest things about FOSS is the ability to fork. A fork is when someone takes a FOSS application and creates a project parallel to the original. This typically happens when a controversial change happens. When the GNOME desktop environment revamped its user interface, a fork called MATE was created that preserved the original interface. This means that if the developers of an application I use make some major changes I don’t like, chances are that I am not the only one and someone will fork the project.
I consider it very safe to use popular FOSS applications for critical business services. I am not alone in this. Organizations with lots of money do just this. Check out the “Who User FreeBSD?” section of the FreeBSD handbook. Microsoft even offers a version of their database server on Linux. Since large organizations with well funded IT departments are trusting FOSS to run critical parts of their business, I sleep well at night knowing that if a major security problem or bug pops up, a lot of resources will be scrambling until a fix is found.