Why I contribute to OSS projects

I spent quite some time contributing patches to the Elixir project lately, and I am quite proud of it:

12 commits last week, contributor #3, yeeaah!

Some people have been asking me why I spend so many time on contributing patches to a relatively unknown OSS project, and others - coming from a non-ICT-background asked me why I bother to work on someone else’s product for free, while I can charge thousands of Euros to other companies.

They tell me I am missing out on a lot, as I am not only burning cash, but also losing my income. Well, my friends, the answer is pretty straightforward:

TL;DR: I learn new things to get better, and I think the best way to learn a new thing is to get involved with the team conceiving the new thing.

… but here is a more thorough explanation:

Why work for free?

I have written a detailed blog post where I explain in great detail why I work for free, but I will make a short recap here:

  • My income comes in bursts; I deliberately take time off every n months to study something I consider to be emerging and interesting. An excerpt of things I studied in the past over several ‘sabatticals’:
  • I study new things all the time to grow as both a person and a consultant
  • Being in an emerging field allows you to connect with thought leaders and people who matter in the community
  • Expanding your horizon allows you to can contribute more value to organisations
  • Last - but not least - my work - /life balance

Why contribute to OSS

I am a developer. As I said, I consider the best way to learn a new platform, is to get involved and talk with the people that conceived the platform. This is hard in an established community, as people tend to flock around the thought leaders, they are not really accessible any more. In newer communities, this is not the fact.

Also, I personally get a kick out of finding “the next big thing”(tm) and following it’s evolution from a concept or an idea with some early adopters, into a big established community with lots of members and a profound vision and established reputation.

During the last week, I have had the honour to discuss with José Valim (the creator of Elixir and founder of Platformatec, and also one of the main contributors to the Rails core ) using newgroups, github issues/pull requests, Skype chats and some screen sharing sessions. While watching a video, reading blog posts or a book might actually teach you a big deal about something new, I think there is a tremendous amount of value in interacting with the incrowd, as you can find out what motivates them, what their product and vision is about, and what the essence is.

But why do they even bother to teach you?

In essence, we are just exchanging assets; I fix bugs, he coaches and corrects where necessary.

That, my friend, is where the catch is: it works in both ways, i.e. there ain’t no such thing as free lunch.

The reason José is taking all this time and helping me out personally, is because I am also helping him out with his vision. As the Elixir platform is developed in a non-windows environment, he has no way to verify whether everything works in a windows environment.

Hence, when I saw that problem, I decided to take ownership, and help him out. I started with a small thing , and slowly got more and more into the essence of Elixir, where I got some really helpful tips on how to achieve things. I am still a novice, but at least I am making some progress here.

Conclusion

What it all comes down to, is that I love to learn new things, and I do consider Elixir to become one of the next big things - and I am not alone on this -.

It is natural for people to get stuck in a constrained environment, and opening up this world every once in a while allows us to grow and evolve into better persons.

Which is why I would advise anyone to start contributing to an OSS project you like; even if it does not become the next big thing, you will get a tremendous amount of value and sense of achievement by contributing to it.

Signing off,

Tom