With limited budgets, the need for customization, and the desire for user support, it’s no surprise open source software (OSS) is becoming increasingly popular, especially in the DevOps arena. Open source software is free to download, can be quick to acquire, and is often supported by user communities. However, like with most things, open source software isn’t a silver bullet for all your problems.
Let’s examine four pros and five cons of open source software and why doing your homework with OSS is integral to the success of your application.
Pros of Open Source Software
1. Open source software is free to download, including the source code.
One of the most appealing aspects of open source software is that it is free to download and install. This allows you the flexibility to experiment with different OSS before making a decision on the direction you want to head in. Free trials with commercial software can help alleviate some of the buying risk, however, that can require spending time with a sales person, demoing the software, and a lot of talking before you actually get to dive into the software. Open source software also grants you direct access to the source code, allowing DevOps teams the ability to customize the OSS components of pipelines to fit their needs.
2. Popular open source software may only have community support.
One of the cons of open source software is the potential lack of dedicated support teams. However, popular OSS – like Linux, Kubernetes, and Selenium – have powerful communities supporting, maintaining, and innovating with them. The beauty of open source communities is that developers are encouraged to give back to the project and if you’re looking for something more specific than the base OSS, someone may have already forked the software and created the features you’re looking for.
3. Open source software can lead to innovation.
The very nature of open source is that people who use the software should also contribute to improving said software. This leads to people outside of the initial project to not only share their thoughts and ideas for improving the software but the ability to actually go in and make the suggested improvements. Forks of OSS can also go in a completely different direction than the initial intent of the software, sparking new ideas, new software, and new uses based on the needs of certain users. Open source software helps alleviate proprietary lock-ins with vendors, which is important for the agility and flexibility required in DevOps.
4. Open source software can help companies recruit top talent.
There are two major ways companies can use open source software to recruit. First, if companies are using certain open source software in their applications, they can see who is popular in that OSS community and which developers are regularly making improvements or innovating the open source software. Those developers are already intimately familiar with the OSS your company uses, so they should be able to more quickly improve how you’re using that software. Secondly, if your company develops a piece of software, you can choose to open source it, allowing non-employees the opportunity to not only show off their skills but also potentially improve your potential software in a way that can directly help your current team. Again, those community users who are highly engaged and innovative could jump to the top of your recruitment pipeline. A lot of DevOps engineers know and love open source software like Docker, Kubernetes, and Jenkins and might feel more comfortable joining your team if they are at least familiar with the tools you use versus using highly proprietary pipelines.
Cons of Open Source Software
1. Open source software doesn’t mean free software.
There are several cost factors to consider when choosing open source software. Open source software is free to download and install, however, like with commercial software, open source software still requires someone to learn, maintain, and manage it. People’s time is valuable, so while the actual download and installation might be free, the person’s time in using the software still costs something. Certain open source projects have paid maintenance and support available, so you’ll either need to pay for support or pay someone on your team to support the software. Needing maintenance isn’t unique to open source software, however, because OSS is free to download and install, it’s often thought of like a $0 cost.
2. No guaranteed support.
Again, not having guaranteed support isn’t always unique to open source software, though commercial projects are more likely to have an established support component. On the flip side, popular open-source projects likely also have support components available and/or large communities of users who are willing to help. However, less popular and immature OSS, won’t have the community backing more widely used open source software has, so it’s important to investigate how open source projects are supported before you completely dive in. Unlike commercial software, you do have access to the source code with OSS and can maintain it yourself as a final option.
3. No one to blame if something goes wrong.
When people start using a new tool, product, or service, it gives them peace of mind to have a safety net. If someone else is responsible for the maintenance of the software you use and something goes wrong, you can try to hold them accountable, especially in the commercial world. In the open source space, it’s often the community’s responsibility to maintain the OSS, so there’s no direct out (or person to yell at) if something goes wrong with the software.
4. A lot of open source projects get abandoned.
You have to be careful selecting OSS since there are a lot of abandoned OSS projects out there. Open source projects often start out of a specific need or because a developer thought it would be fun. Those needs and ideas of fun can quickly change, leaving open source projects in the rearview mirror. More popular OSS are less likely to become abandoned overnight, however, with such a giant selection of open source projects out there, it is crucial for teams to do their due diligence on the community and support of any specific OSS product before choosing to implement the software across their projects.
5. Open source software is distributed under different licenses.
Two of the most popular open source software licensing umbrellas are copyleft and permissive. Copyleft licenses, such as GNU GPLv3, give people the right to freely distribute copies and modified versions of the OSS so long as derivative works are distributed with the same license as the original open source project. Depending on how you use copyleft software, this might expose your company to opening up its work to the world. Permissive licenses, such as Apache License 2.0, have minimum requirements on how you can distribute the OSS, like needing to include a copy of the license and copyright notice with the software. With permissive licenses, derivative works or modifications to the source code do not need to be redistributed into the open source community.
What are your biggest reasons for using open source software? What are your biggest challenges in using open source software? Let’s chat in the #development channel of the TechWell Hub!
2 thoughts to “Pros and Cons of Open Source Software”
Every OSS is your playground to work up your skills, experiment, and make things wonderfully better. Use it wisely and you are surely going to win it with your skills in the long run!
What about pros and cons related to quality, flexibility, security, integration compatibility, etc? I feel at this point the basic aspects of OSS are understood by most companies willing to investigate OSS for their purposes, but they will have no clear perspective on expectations related to the operational/production aspects that enable or resist maintaining currency with a fast paced technology world. Does “enterprise” open source address the weaknesses of OSS sufficiently?