This is a guest post for the Computer Weekly Developer Network written by Netanel Mohoni in his position as co-founder and chief executive officer at xs:code, a monetisation platform company for open source projects.
This series is devoted to examining the leading trends that go towards defining the shape of modern software application development.
As we have initially discussed here, with so many new platform-level changes now playing out across the technology landscape, how should we think about the cloud-native, open-compliant, mobile-first, Agile-enriched, AI-fuelled, bot-filled world of coding and how do these forces now come together to create the new world of modern programming?
Mohoni writes as follows…
The full title of this piece is in fact: 3 principles to speed up your development process with open source.
Most software companies use open source components in their products in order to save time and accelerate their R&D pipeline. But open source isn’t just code. Focusing only on the code would be like driving an eight-gear Ferrari while only keeping it in first gear. I will discuss below the three principles you should adopt to maximise the potential of open source in your development pipeline, so that you can get yourself into top gear.
Principle #1: Embrace copyleft, maximise Github
Developers need to maxmise their use of GitHub’s potential to the fullest – and unlock copyleft licensed repositories using dual-licensing as a purchasing model.
A large portion of software companies enforce strict policies preventing the use of any copyleft licensed code in their products due to the usage limitations created by those licenses. Some companies even use expensive tools and a battery of lawyers to ensure these policies are enforced company-wide. By ignoring copyleft licensed code, they are essentially ignoring a wealth of knowledge that open source has to offer. They are giving up on the opportunity to use excellent, well-maintained code, while investing a lot of time and money to write the same code themselves, or compromising with other alternatives.
Adopting dual licensing as a purchasing model can unlock millions of repositories for commercial use.
The idea is to initiate a request for a paid license that is given in tandem with an existing restrictive license. The paid license can either be a custom license, or a standard open source permissive license supplied by the developer(s) behind the code. While it is true re-licensing copyleft licensed code can sometimes be challenging, there are still solutions available that can work for both the needs of the developer and your R&D pipeline.
Most of the open source components with restrictive licenses (such as GPL) are maintained by a group of developers who are most likely looking for donations for their projects. You can offer to these maintainers an option to purchase from them a permissive license and kill two birds with one stone: you will enjoy a well-maintained repository with a permissive license, which was unavailable for you up until now; and the maintainers are now motivated to keep maintaining it, which opens the door for more companies to purchase licenses to help keep the project going. An example of this dual license approach can be found on the very popular Vue project, which offers a GPL version of the code and a paid permissive license for companies.
Principle #2: Get support packages
The whole idea of using free software is to speed things up, so why is your team wasting over 25% of their maintenance time to deal with open source components? It’s ok to fix small issues yourself, but when it comes to more complicated problems with code that you’re not familiar with, why not simply ask for help from the developers who actually know the code like the back of their hand?
Their solutions will be faster, more creative and won’t break anything else, while your team gets to invest their focus and energy in your core business. This helps save time for your team and reduces costs for your software development. You can get support for almost any open source project and give your team the peace of mind they need.
Principle #3: Paid premium is sometimes cheaper than free
The ‘open core’ model (freemium) we all familiar with from the big vendors can be used for the small components as well. When you need a feature that doesn’t exist in a free repository you are using from GitHub, you can simply hire the repository’s developers to build the feature and maintain it for you. It’s a win-win situation. Your team gets customised code and the developer gets supported.
There are over 40 million open source developers out there and they are very good at what they do. By tapping into this talent pool and working directly with the creative minds behind the code, you can get things done better and faster and easily shift your team to eighth gear. The evolution of open source is here and it’s time to push the pedal to the metal with your development process.