I open source nearly every single piece of code that I work on.
So why do I do this?
It feels good
One of the biggest reasons that I like to open source everything that I do is that it feels good. It feels good when someone uses something you built, or fixes something that you built. It feels good to be involved in a community that is constantly helping each other out.
I first became involved with open source software this year (2016 from those of you reading in the future), by writing a script called Docker-Clean.
Along with one of my good friends, I had started to play around with Docker and found that the constant pile up of untagged images became unbearable after some time. So we decided to write a simple script that would encapsulate some of the more tedious commands — as Docker did not provide a simple way to clean everything.
We posted a release on Github, and then created a blog post. We didn’t think much would happen, but when we woke up we found the repository was trending on Github, and floating around 300 stars.
This had me hooked. It wasn’t the fact that we had gotten a lot of stars, or a lot of people to read our blog post. It was the fact that 300 people were using and liked something that I had helped to create.
That isn’t a feeling that a lot of people get to understand outside of programming today. Certainly if you are a carpenter or create goods to sell on Etsy, you likely feel similar when you sell a lot of your own handmade items, but for the most part not a lot of people are in those types of work.
As developers we get the unique opportunity to create, and give back to others. It’s not just that we can create something that is useful for others, but we also get to interact with them.
You write better code
All of us are guilty of googling a question and then copying the code straight from Stack Overflow. When I am creating something that I know other people will be able to look at, I find myself doing this less and less.
The idea that someone is potentially going to be reading all of my code makes me write better code. I comment things that I should comment. I format my file structure in an understandable way, and I try to write clean, readable code.
It’s easy to become lazy when you think that you are the only person who is going to be working on the code, but when there is the potential of a “review”, I find an internal pressure to make my code more presentable.
Beyond just you writing better code, by open sourcing your code, others will help you to find issues. There is no better feeling to waking up in the morning seeing pull requests on one of your repositories from someone fixing a bug.
It helps the industry as a whole
Open sourcing your code helps the entire industry of programmers as whole by reducing the gap in knowledge.
Take an industry like manufacturing for example. Let’s say one firm figures out how to create cars at half the cost. This firm represents only .01% of all manufacturing in the country, and they can only expand so far due to other costs. Every other firm in the entire country is going to try to figure out how to cut their costs by half, figure out what that manufacturing company knows. If only that small company released those plans. Then every firm can get back to researching even newer ways that all help benefit us as consumers, instead of playing catch-up.
Imagine this scenario with a popular open source framework such as React. If Facebook had not open sourced the code for React, imagine how long we would have spent trying to catch up and discover their framework instead of spending that time building amazing things with it.
When we keep code from each other we allow the gap of intelligence to grow. Yet, when we allow everyone to see the latest and greatest code it makes all of us step our game up.
But won’t I lose money if I open source my content?
Let me start with the basics. Realistically no one is going to want to copy your code entirely. Take my website for example, can you image anyone who would want my homepage?
Lot’s of companies open source the software that helps them run their businesses. In fact, Kickstarter just announced they are open sourcing their Android and iOS applications.
Here is a list of companies that have rather large amounts of open source work, yet still manage to be successful:
If you are a company on the border about open sourcing your work, I highly recommend reading Gitlab’s Myths About Open Sourcing Your Company’s Software.
Open sourcing isn’t limited to just software development. Tesla has open sourced all of their patents. By removing the time it takes for the intelligence to match in an industry, you increase the amount of innovation that can occur.
If you are in this industry to keep code to yourself, and to not help others grow. You are in the wrong industry.
So seriously people open source your work! It’s fun!