Why is this code open-sourced? Let’s flip the question
I’ve always loved open-source software. I started to write useless open-source PHP scripts a couple of weeks after I got my first computer, and today, 17 years later, I am still trying to write something nice and decent.
During the years, I’ve been so inspired and touched by open-source software that I made it a personal obsession to always try opening everything by default for anything that I write, both on the personal and professional side. Still, every now and then, I receive the usual question from someone: “Why is this open?”. My answer is always: “Why should it be closed?”.
I decided to list here the top 5 reasons I would love all the code in the world to be open.
1. Open-source code is more accessible
I believe in diversity, and opening a codebase is a win-win for maintainers and consumers. Maintainers can get code reviews, feedback and help from anyone in the world despite physical boundaries and political barriers. On the other hand, consumers from anywhere in the world, perhaps working in under-developed countries, can benefit from something I was lucky enough to be paid for building. In code, we unite, and open-source makes it easier.
2. Open-source code keeps us healthy
As Simon Sinek writes in his inspiring book “Leaders eat last”, human beings are beautiful systems organised and optimised for resiliency and self-improvement. One of the most fascinating chapters in the book explains how our brain and body reacts to various events by producing some chemicals that drive our decision making, and balance our feelings. Serotonin is a key-factor to our happiness and social well-being. The best part? It is contagious. A musician can feel happiness when plays a song in front of an engaged audience, and the same happens to the audience. In short, serotonin is a social natural source of happiness. We get it in a live gig, in a football match, on Twitter when writing something and getting tons of retweet or likes. Ever heard about Github Stars?
Another interesting “social” chemical is Oxytocin, popularly associated with the feeling of love, friendship and deep trust. Have you ever received an email from someone using your code to thank you for your effort? Have you felt like that thing made your day? Well, that was possibly oxytocin.
So, if your code is open, you are increasing the possibility of every programmer in the world being a potential candidate for free healthy chemicals to make your day great. Why would you say no to that?
3. Open-source code is more maintainable
With modern tools, keeping your code open is economically convenient. Very often, service providers provide a free tier for open-source projects. Here are a few examples for a project I co-maintain called OpenComponents:
- All the code is hosted for free in a github organisation: https://github.com/opencomponents/
- We use Travis as CI platform to run all the test: https://travis-ci.org/opencomponents/oc
- We use Snyk to monitor our dependencies’ security vulnerabilities and issue automatic Pull Requests for the fixes: https://snyk.io/org/opencomponents
- We use Codecov to statically analyse the test coverage on every Pull Request and get online reports: https://codecov.io/gh/opencomponents/base-templates
- We use Dependencies.io for automatic Pull Requests in case of dependencies updates: https://www.dependencies.io/
All of these amazing companies provide us those services for free. How great is that?
4. Open-source code is a good fit for a great engineering culture
When you work in an organisation that supports (or even promotes) open-source, it’s a win-win for managers and engineers. Engineers are winning because they can autonomously create great projects that will have the company’s name on it: good or bad, they will show to the entire world how people write code, document, how they review code in a team, how they treat and respect internal and external contributors, etc.
If they will do a good job, management will show to the entire world that they did great on cultivating a great engineering culture, and their job will be easier in terms of attracting talent and reducing the turn-over. This could evolve to a virtuous infinite loop: I’ve seen many times successful open-source maintainers highly motivated to blog about some projects, keep up with great documentation, and sometimes give public talks to meetup and conferences.
5. Just why not
The last reason I love open-source, is that I believe there is practically almost no reason not to. For every business, even those operating in tech, the amount of the code that needs to stay closed is in my experience very very small.
It is also a very safe bet: years of code proved that open-source is a good fit for frameworks, languages, operating systems, databases, tools, and any sort of platform. From all of those projects we can learn about successful communities, sustainable leadership and collaborative thinking.
Now, I would love to learn from you.
Have you written any open-source software?
Do you work in a company that doesn’t support writing open-source software? I would love to hear your story and see if I can help.
If you do, instead, what are your favorite things about open-source?