It is difficult to talk about technology without mentioning patents, the race to innovate and industrial secrets. To succeed against your competitors, you have to innovate and protect your technological lead. And yet, within this great tech market of billions of dollars, one software trend remains against the tide: Open-Source software. The main characteristic of Open Source is to give everyone access to its source code without constraint. An idea that is the opposite of what we are used to seeing. Being Open-Source means providing access to anyone? Even to competitors? And, if everything is accessible, how can Open Source be monetized? Does one work for free for an Open-Source project? I’ve been lucky enough to work for an Open-Source software, Strapi, for several months now, and this experience is as destabilizing as it is inspiring.
What is an Open-Source software?
The term Open-Source was born in 1998 and credited to a woman, Christine Peterson, co-founder of the Foresight Institute. The same year, the Open-Source Initiative was created to promote the freedom to access the source code of programs and to create a market based on the sale of services and not on the use of the software.
The word Open-Source was created following a split with the free software movement. The defenders of free software defend the total free use and service of the software. This software is regulated by the Free Software Edition.
Finally, Open-Source software is opposed to so-called proprietary projects. For proprietary software, the source code and its distribution are inaccessible to people outside the project. Here are some examples:
- Microsoft Office is proprietary software, but LibreOffice is Open-Source software.
- Linux is Open-Source while Windows is not.
- Firefox is open source, while Chrome and its code are owned by Google.
The cliché of Open Source is that these software products are always maintained by a community of volunteers for associative purposes. While this may be true for some projects, others are indeed for-profit projects maintained by paid employees.
How do you know if a project in Open-Source?
We can easily identify an Open-Source project by consulting its license. These licenses each have their particularities, the best known and most open being the MIT license.
Here is the list of licenses that an Open-Source project can have:
- Apache License 2.0
- BSD 3-Clause “New” or “Revised” license
- BSD 2-Clause “Simplified” or “FreeBSD” license
- GNU General Public License (GPL)
- GNU Library or “Lesser” General Public License (LGPL)
- Mozilla Public License 2.0
- Common Development and Distribution License
- Eclipse Public License version 2.0
What are the benefits of Open-Source?
Beyond access to the code, Open-Source has other interests in the authors of the project, but also for its contributors.
By making the code available to everyone, the author of the project can access a community that will potentially participate in improving the product and fixing its bugs. Nobody likes to use a broken product. If a developer encounters a problem with Open Source, he can find a solution, and choose to keep it for himself or share it on GitHub. The author of the project potentially retrieves his or her improvements made by the community and merges them with the project code.
Moreover, contributors can also use the source code to create derivative projects, integrations, or plugins… And, thus, create a whole ecosystem of products adapted to everyone’s needs. This without the authors of the project having to invest in R&D or recruitment. Moreover, it brings more diversity to the product if each member of the community participates in his own way.
The community can also contribute by creating content, such as resources or tutorials. This way, new members of the community have access to the content and discover the project. And, the author benefits from free content creation, or at a lower cost if he decides to pay the contributors.
For the contributors, Open-Source is also an excellent learning opportunity. Indeed, since developers have access to the source code, they can install the code on their machine and experiment with it line by line. Some developers make copies of Open-Source projects only for learning purposes.
What are the downsides of Open-Source?
Not everything is perfect in the transparent world of Open Source. There are also constraints.
Many benefits for Open Source are possible thanks to the strength of the community. But you still have to succeed in creating a community around your product. These are people who will want to give time and energy to your project, but there are thousands of other Open-Source products that are just as interesting. The project must attract, convince and retain a community. Otherwise, the risk is that you will maintain your project alone, which will be more laborious, especially if it is not yet monetized.
Speaking of monetization, another obvious difficulty is to find an economic model around your Open-Source project. Some Open-Source projects are created by volunteers or associations and will not want to make a profit. But for others, they need to find a monetization model beyond selling access to the product, as free access is already available. I pay for a Microsoft Office license, yet I can download LibreOffice for free. Some open-source software has chosen to monetize support, others choose to monetize premium features, and occasionally some projects are paid with donations.
If your code becomes accessible to everyone, it is also accessible to potential competitors, it is a risk you accept to take. Your product will have to stand out on other grounds than technology, like your communication or the loyalty of your community.
Finally, if your community can make additions or modifications to your code, should you nevertheless accept everything? On GitHub, contributors potentially propose changes. However, it’s up to the author to decide if these contributions should be merged with the main branch. Some contributions may not be of good quality, others may create bugs. And, occasionally, some contributions may not be accepted because they do not go in the same direction as the author had envisioned for his product. If the author accepts all the suggestions from his community without sorting, the product can quickly become a mess.
Maintaining an open-source project also means accepting the idea of making choices that your community may not like.
Why would you be interested in Open Source if you were working in Growth positions?
First, keeping in mind that Open Source goes beyond a technological feature, it is also a philosophy. Users of Open-Source software are a special target. They will be vigilant about the quality of the product, about your transparency, and they will have the technical skills to spot your Growth tactics.
You also need to adapt your strategy and focus on Community-Led Growth actions. The community will be your most interesting growth channel to exploit. You can consider techniques to encourage your community to improve a product feature, participate in webinars, or help you sell a premium license.
And, even for your technology stack, it may be worth exploring open-source alternatives. For example, Metabase and Superset are alternatives to Google Data Studio. Posthog and Rudderstack are alternatives to Amplitude. Here is a site that lists open-source alternatives. Some of these alternatives may be cheaper or more customizable than the software you usually use.
How to contribute to Open Source?
The contributions received by Open-Source projects are essential for the survival and maintenance of the project. The author of the Open-Source project will not always be able to solve bugs alone, especially when his project grows. Strapi is indeed Open Source, but we have salaried developers and the community who code for Strapi every day. Even for a lucrative project, the contribution of contributors is indispensable. It’s a competitive advantage.
If you want to be part of this movement, Open-Source is not only for developers. Even without programming skills, you can contribute. Here are some examples of possible contributions:
- You can contribute to writing documentation.
- You can write tutorials for the project.
- You can translate a project. For example, for freeCodeCamp which is available in several languages, it is the contributors who have translated it.
- You can correct mistakes.
- You can search for tickets on GitHub to correct.
- You can answer questions from other contributors.
It’s up to you to choose the tasks that interest you and for which you have the skills. And, if you need a boost, Digital Ocean launches every October the Hacktoberfest, a big online event to encourage contributing to Open-Source.
Leave a Reply