Why Do Developers Contribute to Open Source Projects?
:: By Vincent Hardy, Adobe ::
Open source takes on multiple forms, from big projects such as WebKit, Blink, Apache or Linux to smaller ones (nowadays typically on GitHub) such as Cordova or even tiny contributions such as shared on codepen.io. In all cases, developers from various backgrounds initiate, contribute, participate and power these projects, large or small.
But why participate in open source projects to begin with? What makes all these developers work to give away the product of their efforts? What is motivating them? What could motivate you? What are the benefits?
In this article, I’ll describe some of the motivations for participating in open source, from the point of view of the developer (as opposed to his employer or clients, even though, as we’ll see, there are obvious dependencies).
First and foremost: a sense of purpose
There is a lot of evidence that money is not the biggest driver for people. But purpose is. We all enjoy doing something meaningful, something that serves a purpose we think worthy. Contributing to an open source projects is definitely a good way to do something meaningful.
First, the philosophy of open source means doing something that allows people to use, modify, share and study valuable code, which is geared toward helping others, something that resonates with many developers. Taking part in open source means working for the advancement of greater shared knowledge.
Participating in open source efforts helps others reach their goals. It educates others by sharing valuable, intellectual value with them. This is helping others, something that I believe is profoundly human and draws people in, illustrating the dedication people show toward their open source efforts. I have always been impressed by the patience, efforts and helpfulness that leaders of open source projects often display: fixing bugs at the eleventh hour, tirelessly responding to questions or going beyond their comfort zone, always with the goal of helping users or other developers.
While customer focus is very much related to the previous point, it is slightly different. In many open source projects, the community interaction helps developers gain a clear awareness of the needs of people using their code. They become more ‘customer focused’ and adopt the attitude that companies like Hubspot have turned into a culture: put the customer first, and things will derive from that. Open source projects often share that approach, which is both useful as a great learning opportunity and fulfilling by helping the customer for those involved.
A sense of community
In addition to participating to fulfill a purpose, open source projects often have a vibrant community. As human beings, we usually enjoy the sense of belonging to a group of like-minded people (that’s why we join running clubs, do cross-fit with others or go salsa dancing once a week) and that is even stronger when we join a group that works towards a purposeful goal. Working on an open Web server at Apache is a goal that can be very compelling to a lot of developers, just as participating in the DoJo framework will be to others. Being on a committee on the Cordova project will be fulfilling for yet another group. In each case, the project and its community provide an environment where work has meaning beyond the paycheck.
Because of the above, people in open source projects are often very dedicated and passionate about what they do. They give it their best and as a result, they get benefits.
Sharpen your skills
First, they often become masters at what they do. Granted, you can become a master of your trade in other, non-open-source environments. But open source projects foster a sense of ownership and responsibility that pushes people towards greater achievements.
Become a community figure, clients and/or recruiters will call you!
Then, because the work happens in the open and among a community, a talented open source contributor will become known and recognized for his or her contribution. If you are a freelance developer, that will help you get known by potential clients. If you like working for an established company, you will be more likely to be hired by companies who try to get involved in particular open source projects. For example, big companies such as Apple, IBM, Google, Microsoft and certainly Adobe are all involved in many open source projects and recruit talent, often from the people already involved and contributing to the projects they have an interest in.
If you are already participating in open source, I hope that I have captured some of the motivations that drive you to do so. If you are not (yet!), I hope this article gives you some insight on why you might want to participate and what benefits may derive from being engaged (such as improved skills and visibility in a community).
I encourage you to explore open source projects or better yet: go to conferences, talk to people or engage to ask them their motivations and what they get out of being involved. In my experience, they are the best testament to the great work happening in open source projects and the sense of accomplishment many get by serving a goal and effort they believe in, while still being able to take care of the needs of life (and pay the bills!).
Vincent Hardy is Director of Engineering for the Web Platform Group at Adobe. Vincent and his group work on on Web standards, open source Web contributions such as the Apache Cordova project, the WebKit project and the Chromium Embedded Framework component that provides a 'Web Design Surface' to several Adobe tools. Recently, Vincent has been working with the CSS working group, the FX task force and the SVG working group, focusing on CSS Filter Effects, CSS regions, CSS exclusions, and Scalable Vector Graphics (SVG).