Why Do People Make Open Source Software? A Developer's Motivation
Open source projects are all over the web and they can solve almost any problem that we, as developers, encounter. I, as a frontend developer, use open-source products all the time starting from popular libraries like Bootstrap or Lodash and finishing with small ones, for example for handling scroll animations.
This made me think about why open-source projects are so popular despite not providing any income to the creators. So I dug into the topic to find out.
According to data collected by Stack Overflow, contributing to open-source software has gained a lot of attention in recent years. The survey from 2016 doesn’t even have a question about it. In 2017, 48.3% of people claimed to program as a hobby and only 5.9% said they contributed to open source projects.
Coding as a hobby in 2017
In 2018, 43.6% of the people who filled the survey said that they participated in an open-source project.
Contribution to open-source projects in 2018
In addition, a stunning 80.8% said that programming was their hobby.
Coding as a hobby in 2018
The trend kept growing and 2019 surprised us with some crazy numbers. Declared contributions to open-source projects rose by 20 percentage points to 63.3%
Contribution to open-source projects in 2019
Coding as a hobby stayed on the same level as in the previous year, with a slight decrease of 0.6%.
Coding as a hobby in 2019
Is it really that altruistic?
Of course not. There are dozens of ways to make money on that type of project. Take a look at MySQL or OpenOffice. The standard version of these products is completely free, but if you need more features you also need to pay. Another widely known example is Linux. Everyone knows that it’s completely free and anyone can contribute to it, but there are also paid distributions like Red Hat or Fedora that have seen great success. Also, a lot of big companies fund open-source projects because they rely on them and want to be sure that the project will be supported in the future. You may be surprised, but a lot of big names in the software community make open-source projects themselves. Adobe with their PhoneGap and Brackets is one example. They pay their own employees to develop these projects, so most of the people who contribute to them get a standard salary for their work. One of the benefits that they get is marketing, which attracts talent.
Let's put money aside
On the other hand, in most cases money is not a factor. People start their own projects every day without thinking about money. One of the most common reasons is that developers want to solve their own problems or learn a new technology, but they also need a goal. So they start a project that with time becomes a useful open-source library. Open-source, of course, gives endless possibilities to promote yourself and is a great addition to your CV.
Why do people do open-source after work?
It’s confusing, right? Why would you even think about coding for free when you can code for money? Aren’t 8 hours a day enough? The answer is really tricky, but according to research money only motivates people in terms of repetitive work, like pushing a button many times. When it comes to more creative tasks, financial reward is not enough. People want to feel autonomous, competent, and relate to others - this is what open-source really is.
- You set your own goals and your own solutions, so you feel autonomous.
- You complete your goals, so you feel competent.
- Your library is useful to others, so you feel a relationship with them.
Contributing to open-source projects gives developers a feeling of accomplishment and it’s a great break from daily work. I think we’ve all experienced the feeling of meaninglessness and exhaustion due to constantly coding new features or fixing bugs without a moment to breathe or think. It just brings out our curiosity, ambitions, and humanity.
Contributing to open-source projects is a trend that is still growing and for a good reason. It matches our needs and desires and makes us feel accomplished. We should definitely use this knowledge and incorporate some of the motivations to make our daily work more challenging. If you are exhausted with your project, maybe instead of fixing yet another bug in the sprint it’s a good idea to take some ownership and research a new technology that will be useful later or think about improving things with a refactor. It will surely make your work much more exciting.