Benefits of using and contributing to open-source software
Updated: Apr 21, 2021
When you are in the situation to start or revise a project you have the chance to take some basic decisions which have a fundamental impact on your success story. After giving you some insights about choosing the right technology stack in our last blog post we want to show you some benefits for using open-source software.
Nowadays in these highly volatile and sometimes uncertain times it might look secure to go for a solution of a big software house or completely build it up internally (if there is enough time and resources). Having this as the traditional make-or-buy decision, often the third option about using open-source software gets forgotten or quickly rejected because of unfounded fears or prejudices like:
"We want to keep our business knowledge internal"
"There is no support on it"
"It is unsecure / untested"
This article gives you some inside knowledge to counter argue such statements and prove why they are not true.
Taking a look on the evolution in the market one can see that using open-source is the way to go and you shouldn’t miss the chance. As some good examples you can take Microsoft, Google or Amazon which are very active in that sector, what was unimaginable some years ago.
- Using wide spread and actively maintained open-source software allows reliable and highly tested systems
- There is good documentation and fast support
- Everything is open to use and adapt
- You get well known and up-to-date technologies and patterns
- Contribution generates awareness
Open source vs. commercial
Commercial software often is linked to reliable, well tested and supported solutions. Despite the fact that there are definitely some companies doing a very good job, they will never have the power and resouces to do as good as an open-source project.
Imagine a project where 200 people are working on. In a company providing a commercial solution this means a streamlined development environment with maybe 2-3 development platforms (architectures) running the same distribution and toolchain. Additionally they might run a diversified buildfarm with the most common architectures and distributions resulting in an optimistic guess of 50 test setups (to still be cost effective and competitive).
On the other side in an open-source project you will most likely have 200 different setups (architectures, distributions and versions of those, hardware components and peripherals, etc.) the software is developed and tested on. This corresponds way more to the real situation in the field, ensuring a much higher testing grade and compatibility for the solution.
Because of this higher and diversified testing, vulnerabilities in the software will be found and fixed faster which results in a more secure and stable solution for you.
Documentation and support
While documentation of companies are written specifically for a given customer circle, often using the company’s jargon and presuming previous knowledge, open-source documentation is written for everyone to jump in as quickly as possible. An open-source project lives from its community and contributors. So it has to be made as easy as possible for them to join. The people writing and reviewing such open-source documentations have different roles, mind sets and cultures, bringing in additional views.
All successful open-source projects run a combined version and bug tracking system which acts as the main interaction point for you as a user as well for the main developers/contributors. In which commercial company do you get something transparent and traceable like this or you could even speak to another customer/user?
Free to use and adapt but keep your secrets
While the underlying open-source framework or platform you are using is publicly available you don’t necessarily need to make your changes and adaptions public yourself. This is highly dependent on the license the project is publicated under.
A complete view about the available licenses can be found on the Open Source Initiative website. A very abstract summary of the different license types is available here.
So even if you are using some open-source parts in your software, your own business logic or intellectial property can be strictly separated and managed independently. You don’t need to be afraid that your competitors will be able to get your knowledge. Some more information regarding the legal part of open-source software can be found here.
The heart of every open-source project is its community. As it consists out of various people coming from all possible sectors it will always be more diversified as a single company could ever reach. As one of the most important factors of learning and team work, these different views and opinions challenge the community and speeds up the learning process.
Like written in the last article “How choosing the correct technologies speed up development“ it is essential to avoid innovation stagnation and use up-to-date technologies. For you as an employer this also allows you to directly access the available manpower pool on the market, without having to train your personnel in a very company specific solution.
An often forgotten but probably the most important point is that people contributing to an open-source project decided themselfes to do so (out of different reasons). In general this intrinsic motivation and the resulting responsibility lead to a better product and support than ‘normal’ employees will be able to deliver.
Contribution as marketing
By contributing to an open-source project you can generate awareness. A lot of the big players on the market are actively scanning open-source projects in their interest for developers or companies they could aquire. Also potential customers could become attendant on you and generate more business for you.
Again taking Microsoft as an example, their reputation and acceptance rised significantly when they switched their .NET stack to open-source. From the marketing perspective this was a great coup.
Last but not least you will interact and learn from other experts in your field and building up a network which is helpful in many ways.