Why create and contribute to open-source projects?
Why would companies, ranging from mid-sized outsourcing businesses to technological giants, make their products available as open-source software? Find out in the article by Evrone.
Developing and releasing open-source solutions is a common practice that has been adopted by companies like Red Hat, Facebook, Google, and Amazon. IT companies that make products available as open-source software have become a sensation in the investment environment. Confluent, Neo4j, HashiCorp, and GitLab are just a few examples of companies that have managed to attract large investments.
At Evrone, we encourage our employees to build open-source products and provide them with logos and custom websites and assist in the promotion of their projects. Why would companies, ranging from mid-sized outsourcing businesses to technological giants, make their products available as open-source software? Let’s find out.
How is open-source code different from regular everyday code?
When you make your source code available, you gain a lot of additional responsibilities. Your code is publicly accessible, meaning anyone can use it, and you, as the author, are responsible for the quality of the code, covering it with tests, documentation, answering questions and responding to bug reports in a timely manner, and processing pull-requests. Therefore, your approach to writing open-source code that the whole world will see is often more complex and involved than your approach to writing code for a project just to make it work.
An open-source project lives its own life, built by the community that forms around it. Ideas, feedback, bug reports, discussions, and gratitude from other members of the community directly affect you and the project, and encourage you to write understandable, documented, covered-by-tests code. When you publicly distribute the source code, it is put on display for everyone. Awareness of this fact obliges you to write code in a generally accepted manner (in accordance with the language in which you write), observe indentation, add descriptions to methods and classes (at least to public ones), adequately name variables, classes, methods and functions, and observe the Don’t Repeat Yourself principle.
From Evrone's welcome book, each new employee of the company learns that if they want to work on open-source projects or develop them from scratch, we are happy to pay for this work and support it. This can include creating a logo and project identity, as well as writing, distributing, and promoting articles about the project.
Some of our clients support this approach and allow us to publish openly accessible tools that were born in the course of our work on their commercial projects. We try to convince others to adopt this practice, because of the virtues of the open-source business model, which we’ve entitled “The Three P’s.”
Publicity, principles, and profit
Publicity. Free software, created with the support of Evrone, is used around the world, from China to the USA, and we’ve been featured by tech media many times. Feeling like rock stars is a guilty pleasure of the companies that invest in open-source. Another pleasant experience is knowing that your project is useful. When the number of downloads grows, when you get good reviews, when people from all over the world join the project and together you make it better, that is what makes the code worth writing. At this point, simple code writing to solve particular tasks develops into a contribution to the IT community.
Principles. Almost all the programming languages and frameworks are open-source, and when we use them in commercial projects, we make a profit. So, it is only logical to give back and support the community with valuable new tools. There is no need to upload your projects as a whole. Small pieces, classes, methods, adapters, etc., of which your project consists, can be useful to others as well. The IT community will respond to your input by searching and fixing bugs and vulnerabilities, complementing functionality, and improving performance. You may even find a great new employee amid the active contributors.
Profit. This comes as a result of the two previous P’s. Publications in tech media can provide viral coverage, which brings us one step closer to new clients. In addition, community collaboration on open-source projects improves the tools and solutions that we create and provides us with innovative new ones. Which, in turn, allows us to better meet our clients’ needs. So, contributing to open-source projects can be useful and profitable long term.
The TODO Group, a network of open-source program managers, recently performed the annual survey of corporate open-source programs, and it revealed some interesting findings on the actual advantages of open-source software development. Even the survey results and questions are open-source, under the CC BY-SA license. Below you can see the infographics that illustrates the replies to the questions: "What are the areas where your company most benefited from the open-source program?"
According to the survey, the main benefits of managing an open-source program are:
- Increased innovation
- Awareness of open-source usage/dependencies
- Increased development agility/speed
- Faster time to market
- Culture and interaction improvement, higher quality code
In addition, both this survey and a study done by Coverity found that open-source programs often feature better security than proprietary software. Fewer bugs were found in open-source programs, and defects were typically fixed much more quickly after they were discovered.
Design and promotion for every project
Each open-source project created by Evrone developers receives a logo for GitHub, illustrations, and articles. When a project is published, we help promote it. Periodically, we get more coverage than we originally expected. For instance, our Flutter Audio Plugin was retweeted by Tim Sneath, one of the core team members of Flutter and Dart. Eventually, we even got the chance to interview him.
Of course, our primary interest lies in promoting the company, but we want the author to benefit, as well. As the developer, their name is on the GitHub project and any media promoting it, so they can boost their resume with articles and publications about their accomplishments with their open-source project.
Open-source created by Evrone
So far we have sponsored seven independent GitHub open-source projects, and each one has generated the benefits described above. Together, they earned almost 4,000 stars on GitHub.
- Flutter audio — A plugin for recording and playing speech. Born while working on an application to decrypt meetings with doctors. Optimized for use with Google's speech recognition services.
- Ferrum — A Ruby gem that allows you to control Chrome through the Chrome DevTools Protocol when performing integration tests. It works with a bunch of tabs at once and can do many useful tasks, from taking screenshots to emulating keystrokes on the keyboard or mouse.
- Cuprite — A driver for Capybara that allows you to use Ferrum. All the necessary functions and no additional API.
- Vessel — An open-source tool for scanning and retrieving data from web pages, based on Ferrum. Great for analysts, content managers, and anyone else who needs to automatically collect data from many sites at once.
- Postcss-px-to-viewport — Plugin for scaling cross-platform application interfaces for any device. Converts pixels to viewport values, which simplifies sizing in complex interfaces, for example, in mobile games. Popular in China, as the country produces a huge number of Android devices with different screen settings.
- Dotenv-linter — A code analyzer to lint in .env files, which are used to store environment variables. It works with any programming language, as it is written in Rust.
- Waffle — Simple and concise file download library for Elixir. Integrates with popular cloud storage and allows you to optimize files on the fly.
Still not convinced?
When you invest in open-source software, you:
- Help technology evolve and stay relevant
- Show the community that your business appreciates the efforts of people working with open-source
- Expand horizons, not only for specific technologies, but also for the IT industry as a whole
- Encourage to your developers to grow and innovate
- Improve your own projects through community collaboration
- Promote your company and generate publicity
- Gain new customers and new tools to better serve your clients
When asked " What are the primary responsibilities of the open-source program?", the most common answer is "Fostering open-source culture within organization". It is not easy to convince customers to share interesting and useful ideas with the community. In their minds, the development has already been paid for, and now we want to publish it for free use. But, our experience shows that this will offer a return on investment, and not only in a philanthropic way. Clients who allow us to publish tools used in their projects also benefit from the community collaboration and end up with further improved versions of their projects’ features.
That's why we contribute to open-source software development, and we strongly recommend following our example. We are proud that, in addition to developing innovative commercial projects, our team members can also be involved in the open-source community. If you would like to learn more about open-source support, feel free to contact us directly. We are always open to questions and discussions.