Some developers love open source software and others just loathe it. I myself belong to the first group and would like to spend much more time on open source projects than I do at the moment.
I have many reasons why I like to work on open source projects. One of them is very simple: giving back to the community. Like many developers, I use open source software on a daily basis. WordPress, the CMS system I almost always use when creating websites, for instance, is open source. So by creating open source software I’m paying back a little for the fact I’m using it myself quite a bit.
Also, it gives me the opportunity to gain experience with new things. Which there isn’t always room for in a commercial project. Experience I can later use within projects for clients.
Furthermore I just like doing it and it gives me a nice break from ‘real work’. Not all the work you do for clients is as challenging or exiting as you would like it to be. So it’s nice you can sometimes take a break and do something completely different to keep you on edge.
After all, you are not making any money with it.
By working on open source projects, developers gain experience and work with new techniques that they often do not have time for during commercial projects. With a project for a client there is often a fixed budget and a deadline which you have to keep. Because of this, there isn’t much room within the project to try something new.
When working on open source projects there is no budget or deadline (of course there are always exceptions). This gives you as a developer the time to try-out and experience with new techniques. Which causes you to gain experience with new things you otherwise wouldn’t get. This is experience you can use later on when working on a new project for a client. Which results in better solutions and higher quality of code.
So while working on open source projects by itself doesn’t pay anything financially, it does pay itself back on the long term with more experienced developers. More experienced developers that can build better solutions for customers.
Disclaimer: the following section is a small piece of “self-glorification”
My own first open source project is Mighty Form Styler for jQuery. A plugin for jQuery that makes it a lot easier to style dropdown-selections on websites. The first version was released late 2012. At the company I worked for back then was the wish to make dropdowns prettier than was possible with just regular CSS. Back then we didn’t find any of the available solution working like we wanted and lightweight enough. I also wanted to gain experience with building jQuery plugins. My employer didn’t want to invest time in a good solution, so I decided to make it in my own time. Every now and then I still spend some time on it, to keep it up-to-date with the latest jQuery versions and browsers. And I’m even planning to remove the dependency for jQuery.
It can also be the other way around. While working on a project at one of my former employees we ran into some limitations of Gravity Forms, a much used plugin for WordPress. Instead of just creating a workaround for this one project. We decided to create a more generic solution that we would make available as an open source project. This resulted in the Gravity Fieldset add-on for Gravity Forms. We used the plugin on a bunch of other projects ourselves. According to the stats it was downloaded more than 3000 times and is still active on more than 1000 WordPress installations. Although I do have to mention that it isn’t actively maintained anymore and has some compatibility issues with the latest versions of WordPress and/or Gravity Forms.
No. Besides the gain of experience a lot of companies also make money because of their open source software. Companies provide their software for free, but will charge you for premium support or extra (pro)features. Take WordPress for instance. You can download it for free at wordpress.org, but the creators also provide paid services via wordpress.com. And a lot of free plugins have a paid premium version.
Also it gives you some level of authority within the field your company operates in. It shows you have experience with certain techniques which may cause some clients to choose your company over others. And with bigger companies, it can lead to faster adoption within the community of tools you created. Facebook for instance was one of the largest contributors to open source software in 2016 (source: GitHub Octoverse 2016).
It is also just a great boost for your ego. It just feels nice when (many) people use your software, plugin or script and let you know they like it.