For many decades now we have been hearing how open source software (OSS) is the future of the IT industry. It is a future that never seems to come into fruition, but it has had already happened. Open source projects are a common practice now and they have been growing in popularity at a steady pace for quite some time.
Research by the software company Aiven shows that almost all software developers see open source as “the future of coding”. Their expectation is that OSS could become a regular part of their organizations. In fact, it has already become in many companies, including a lot of IT giants. Aiven claims that OSS brings “twice as many” benefits in comparison to the negatives. But before we dive into the details, let us brush up on the basics of the open source software.
What is an open source software?
It is exactly what it says on the tin. Open source software is completely open. Anyone can inspect, modify, or change the programming code. If you come across an application which has been created with an open source code, it means that it is published and accessible to check or modify. This is not something that usually matters to the end user, but it has great importance to software engineers and companies. Having access to the source code means that they can verify that everything is fine and that there are no backdoors or other potential issues in relation to the software.
An access to the source means the freedom to modify the said application in a way that is suitable for the organization’s needs. It is also an opportunity for the community to further improve the project, correct bugs, add new features and so on. If not, it is a chance for an IT specialist to use it with an opportunity to learn and improve their own skills.
An important point to mention is that an open source does not necessarily mean “free” or “do whatever you want”.
While both are possible options, whether they are available depends on the original creator of the project. OSS usually comes with an “open source license”, which is a clear definition of the rules that anyone who is using the code is obligated to follow. These rules can vary depending on each project.
In most cases though the rules are straightforward. Usually they state that the modification and the distribution of the OSS is allowed freely within the scope of the laws. The main desideration when modifying and distributing is that the rules has been followed, and the same requirements has been retained. An example is if it is free and you modify it, the modification should also be free and open source. In some cases, attribution may also be required.
Open source licenses mostly aim to preserve the OSS DNA and the basics. A comparison between the licenses and the Creative Commons licenses, which are used for online content could be made. As long as you are not trying to copy someone else’s code and then pass it and sell it as your own, you should be good.
Why OSS matters
Initially it may seem that using OSS instead of a “closed” software is counter intuitive. Why would you want anyone to be able to access the source code and in turn find loopholes to hack it. Isn’t it much better to use proprietary software where everything is closed and tightly monitored by the vendor, right? Unfortunately, this would not be the best option.
When it comes to proprietary software, only its author and authorized partners would be able to copy, inspect and modify the code in any way. This means, that users and clients can only report issues but not try to fix them. Fixing these issues could be time consuming. In case of an old software and out of its support cycle, then tough luck, you will have to live with that fact. Or the vendor can decline to fix the issue for whatever reason.
By using an open source software, you would no longer have to worry about any of that. Even though multiple experts from the community have checked the source code, anyone else who wants to use it can also verify it themselves. If there is an issue or a bug, usually it is solved much faster as there are much more capable people who can make it happen. Or… you can simply have your IT team fix it. In fact, you can take advantage of the provided support in relation to the software for as long as you want.
Open source software has greater implications. OSS also brings benefits at a global scale as a lot of the world’s most popular and important technologies rely on an open source. Among them are the Linux operating system, the Apache Web Server application, and more. Technically even Android is an open source, but there are certain nuances that impact its availability as an open source project and as the complete platform with Google’s services added to it.
A lot of the cloud computing services, features and technologies are also open source based. As a whole OSS is growing in popularity even in enterprises and governments. It ensures greater transparency and can be cheaper for maintenance.
More open source code pros and cons
The Aiven report also points out a few more detailed benefits of OSS. For example, the fact that open source users depend significantly less on specific vendors, thus vendor lock-in is not a worry for them. Transparency, quick bug fixes and the ability to add unique features are also pointed by top OSS benefits by the 200 British developers who took part in the report and work in cloud and database-related companies.
Of course, it would not be fair to only focus on the positives. There are some negative sides of open source code, too. They are mostly related to the ease of use and practicality of the software. Propriety software developers invest quite a bit of effort and money into making sure their applications are (in general) easy to install and with intuitive interfaces. OSS on the other hand is mostly focusing on function and the usability can suffer which in turn can make it difficult for employees without additional training.
This leads us to the potential hidden costs. Yes, the software itself can be much cheaper, even free, but if you have to spend additional money for training, configuration and troubleshooting, then it may get a bit expensive. On the other hand, this is a risk that can be avoided if the company does careful planning and research new software and changes in detail before implementing them.
OSS fans are adamant that the benefits outweigh the negatives by a sizeable margin. It gives companies the flexibility they need to achieve their goals.
Open source is here to stay
A lot of new projects and technologies now are being built from the ground up with open source. Networking and Internet platforms are among them, too. Robbert Hoeffnagel, European representative for the Open Compute Project Foundation for example has said that open source will be a vital part of the data center.
He gives three specific reasons. The first one is the network effect – everyone can start an open source project which means a huge field for new ideas and opportunities. But there are also now plenty of IT giants and big names, join and are joining the open source world. As a result, everyone sees that it is an approach that has the support of big names and this brings even more awareness and trust to it.
Next, we have the agility. Open compute projects (OCP) allow the creation of task-specific hardware which is optimized for that goal. So, you can have themed data centers and features, tailored for very specific loads. Open source-based hardware also means less risk for vendor lock-in.
Finally, the costs. OCP hardware can help lower the costs when it is time for renovations, expansion or even building a new facility, Hoeffnagel says. He argues that when you compare the costs of an OCP data center to a traditional one, the benefits will be clear. That would probably depend a lot on the type and goals of the data center, too. It would though for sure be much easier to incorporate new developments and they come at a very fast rate in the open source world.
What do you need to use open source?
As you can see OSS is everywhere these days. For any propriety software out there, there’s usually at least a couple of OSS alternatives available, too. Sometimes they are not as good as the licensed software because they lack the specific patented code and technology but are still decent alternatives. Often though you can get the same effects and results with OSS.
It is obvious that open source is here to stay. So, you might as well start to incorporate it into your workflow if you have not already. If you want to use open source software all you have to do is find it, download it and install it. But if we are honest, that is not enough. Open source is about the community. That is why platforms like GitHub and the likes are so popular. It is about participating in other’s projects, too. Making contributions to other projects is a vital part of the open source community.
There are plenty of options. You can test code, verify code, write it, and add to a project, create features, fix bugs, perform regular maintenance or write the documentation. Basically, you can do anything that you are interested in or want to add to your skillset. It is a great way to improve your coding abilities, create new connections and opportunities, too.
Make it your own
You can also start your own OSS project and look for others to join and help you out, thus creating a community around it.
There are a few things to consider in order to make an attractive open source project. The most important one is transparency. Be completely transparent about the goals of your project and the terms. Also make a detailed ReadMe where you lay out all the additional requirements or needs you have for the project.
There will be plenty of different needs depending on the type of your project. Posting the code to GitHub is one thing, but if you are not making a standalone app, but a web service or something to that effect, you will also need some metal. For example, you may need a cloud service provider, a cloud server, or a dedicated server. You may also need a database host, etc.
One of the reasons is that you will have to have a running version of the product that people can see and try. This is especially important if your project competes with other similar ideas and these days there is an app for everything already. So, you have to have a way to show off why your implementation is better.
Also, be involved. Show people how to contribute, be active, welcoming, and thankful to your community. Also do not be afraid to ask new contributors for help on specific issues or delegate tasks to them that are fitting their skills. People who contribute to an open source project do so at their own desire and at their own time and pace. They have chosen to help this specific project and not another one for a reason to. So, make sure they are happy with their choice.