At a time when everyone speaks of nothing but NFTs and the idea of owning non-physical objects, does creating software that is free for anyone to use still make sense? We are zeroing in on Open Source software, specifically — so what are its main benefits?
If you are a company developing websites, mobile, or desktop applications, then you already know we are talking about Open Source, as chances are you have been taking advantage of many such applications for a long time now.
So let’s clarify what we are talking about here.
For those who are not familiar with the term, Open Source refers to free software that uses open code, i.e. whose source is openly available for anyone to use and distributed via dedicated platforms such as GitHub.
It is an out-and-out “free software” social movement, born in the early 70s at Berkeley University thanks to the idea of researcher Richard Stallman, and become the manifesto of hacker culture (see the ‘GNU Manifesto’). The idea at the core of it was (still is!) both simple and quite powerful: software needs to be free for everyone.
This approach has been part of software development for the longest time and allows software to keep evolving and being turned into newer and newer forms of application.
Virtually every player has, in some way or another, contributed to the development of Open Source software — from tech giants such as Google, Meta, and Intel down to more niche companies such as Spatie, and there is a growing number of non-profit organizations whose task is precisely to keep the most used Open Source frameworks maintained and up to date.
Using Open Source software — both by first- and third-party providers — allows developers to do away with repetitive tasks, thus saving time, and also solve some of the most common problems in development, such as handling authentication methods and page layout designs.
Our on-field experience has allowed to understand just how much of a real advantage Open Source software can bring to a project. From our point of view, there are three main aspects to keep in mind to understand whether it makes sense to use open software programs:
Developing all of a program’s functionalities in-house can allow for added control on the final product, but it isn’t always the most effective decision. It is often the case that the safest, most trustworthy solutions are already out there and freely available, created and tested on a larger userbase than what a company’s internal team could afford.
Knowing how to eye out the most appropriate Open Source projects is a crucial step that requires a good dose of knowledge and skill. The best way to get this experience is, unquestionably, to actively contribute to the development of existing Open Source projects.
Safety is always critical, especially when it comes to integrating externally-written software to a company’s own code. Properly evaluating the code’s source and the kinds of test it has been run on — as well as its community’s reliability — really does make a difference. Furthermore, in order to make sure that this mechanism of free contribution is both effective and safe, it is mandatory that all developers contribute promptly in signaling bugs and vulnerabilities.
Like all revolutionary philosophies, the Open Source world too has its lights and shadows. The material that’s freely available is extremely varied in terms of quality, which means not everything is actually good. It is not infrequent to run into incomplete solutions, which may have been used little or tested poorly; while in some other instances the right software simply isn’t there.
When this happens, writing code first-hand becomes paramount. It is then a smart choice to adopt a hybrid approach, whereby a portion of the newly-written code gets openly distributed and re-used for different projects.
Choosing to actively contribute to the Open Source community, adopting said hybrid model, allowed us not only to raise the quality of the shared code (which can be improved by dozens of developers around the world), but also to confront ourselves with the outside world and its many perspectives, helping us not to fossilize on our models.
More: making code public has made our innovation process more effective and transparent. This approach wasn’t entirely unknown to us, as it shares many similarities with the open innovation model, by which anyone (including people outside the project or indeed the company) can contribute with good ideas to make the end solution better.
The uptake of this model made it so that many projects started as simple internal research eventually became cornerstones of software development — like, for example, Kubernetes.
Another thing we have noticed is that inside our firm, the adoption of Open Source software has sparked a more productive collaboration between development teams, even when multiple projects are being worked on simultaneously, producing an overall skill improvement.
For us, adopting an Open Source-based approach has also meant to open up our network, and entering an extremely populous community made of high technical knowledge and smart people to confront with.