05 February 2014

Contributing to the open source community

How many developers actually help out in the open source community? The numerous software we get to use for free are a result of people willingly putting in effort to create good quality software. I believe that if we are using such software, we can also help the community by contributing back.

Some ways you can contribute:

1. Be a part of the forums / mailing-lists and answer queries of people struggling with learning / implementing the software. I've been a member of some forums and mailing lists under various usernames (Actionscript, Intel TBB, Processing, OSG, OGRE, Stackoverflow and it's sister sites, linuxforums, ffmpeg, netsnmp, SDL and many others).
2. Join the development of the software and contribute patches. Websites like OpenHatch can help you get up to speed with the process.
3. Allow the software to report back crashes and anonymous usage statistics. The latter helps the dev's to improve the UI and interactivity by having authentic user journeys. I've allowed these for Fedora, Netbeans and a few other software.
4. When you find a bug, report it on their issue tracking system. I filed an issue today.
5. Sponsor them. Jenkins allows you to sponsor a particular issue. Other projects allow you to donate to the overall development effort. These people really do deserve sponsorship for the great work they're doing.
6. Add to the Wiki. Most projects have a Wiki page which you can add useful information to.
7. Create tutorials. Many users have a tough time learning how to use a software. You can create video tutorials and post them on youtube or post tutorials on your blog. I used to create tutorials on Stackoverflow too: my Mutex tutorial becoming the highest ranked in Google searches.

Doing all this not just makes you a good contributor to the community, it also expands your skills. It makes you a better developer, as you get exposure to international best-practices, standards, technologies. It improves your communication and hones your technical skills. I'd encourage every software developer to participate. All the best!


Noah Slater said...

Another thing that you can do is something that you've done in this very post! In other words, ask people to contribute.

It sounds crazy, but you wouldn't believe how many people don't think that there are any ways to contribute. I've been a community manager for a long time, so I've worked on these issues for years. I recently wrote about how healthy projects need people, and it made its way to Hacker News, a popular news site. There, many people took issue with saying that software doesn't necessarily break, that it doesn't need to be maintained.


There's a mindset that seems to come from the isolationism of the great hackers of yore, who would sleep under their desks or build hardware in their garages. They did it alone, so can't we always go it alone, like pioneers? But it's just a myth. Even the golden age hackers worked together. In fact, you could argue that they were more social, more engaged in communities, than these renegades are now.

Nav said...

:) Thank you Noah. Your comment brought a smile to my face. The thoughts on your blog appear to be born of a lot of experience in the field. Reminds me of a time when a finance person in my company joined me for breakfast and asked me why softwares need to be upgraded. Said he understood why a car would need an upgrade, but softwares don't have any moving parts :) I explained to him the process of architectures, OS'es etc. changing and it seemed like he finally got my point. About the mindset you mention, I believe it's the same as the principle of diffused responsibility: http://en.wikipedia.org/wiki/Diffusion_of_responsibility. The "Somebody else will do it if I don't" feeling. But most of all, I believe it's because most people lose track of what they really want to do in life. I've seen many forget why they fell in love with programming in the first place, after getting stuck in a routine job. Pretty much like how Pi says that after the incident of the tiger eating the goat, life lost most of its enchantment (from the movie "the life of Pi").