loading...
Cover image for Why you should think twice about contributing to Open Source

Why you should think twice about contributing to Open Source

rhamedy profile image Rafiullah Hamedy Updated on ・7 min read

7 out of 10 developers contribute to open source and here are some tips and suggestions on how to get started

It’s no secret that Open Source contribution is one of the most sought after skills in tech. In addition to the employment benefits, there are other advantages such as

  • Learning and sharing knowledge
  • Build and improve your brand’s visibility
  • Collaboration and communication with other developers through code reviews and discussions
  • Giving back to the community ❤
  • Connect with like minded people, find your employee/employees, co-founder, mentor, mentee

According to Eclipse Foundation, Open Source has seen massive investment in recent years.

Alt Text


Why should you care?

Looking back to the 2016 StackOverflow survey, there is no mention of open source at all however, in 2017 survey around 32.7% of respondents claimed to contribute to open source and this figure increased by nearly 10% (to 43.6%) in 2018 survey and what is even more interesting is that the % of contributors rose by 20% in 2019 (to 63.3%).

Alt Text

According to a 2016 Future of Open Source Survey Results by BlackDuck around 67% of participation in open source has been to

  • Fix bugs
  • Add new features

59% of developers participate in open source to gain competitive edge.

Taking into account the above facts, figures and trends, IMO it’s worth considering open source contribution.

Be the change that you wish to see in the world — Mahatma Gandhi


Reasons why I failed to contribute earlier?

Alt Text

A majority of us developers love to contribute to open source but, we end up failing to do so for a variety of reasons. Here is a listing of reasons for me

  • A majority of educational institutions neither recognize open source contribution as an effective way to learn nor motivate the students to participate — IMO, open source contribution should be part of the curriculum (as assignment, project, etc).

Alt Text

  • Your geographical location — IMO the country you live in also plays a vital role as highlighted in this article.
  • New year resolution & birthday promises — I have had countless of these but, they never really worked.
  • Unrealistic goals — I once decided that I will do at least twenty (20) pull requests to repository such as docker (because I ❤ docker) without taking into account the fact that I did not have the adequate knowledge to do so.
  • Job, side projects and life excuses — Following every failure to contribute, I would consult myself that I am doing well in other verticals.

No matter how small the contribution, if you do it on a regular basis it does make a difference in the long run.

  • Underestimating my abilities — At times I have looked into existing pull requests and issues and arrived to the conclusion that “This is complex”.
  • Ignoring documentation issues — A majority times I have ignored all the documentation related issues.

Alt Text

  • My employers didn't care — I would love a job that requires contributing back to the open source community.

  • Procrastination — Definitely a factor for a variety of reasons.

These are some of the main reasons that stopped me from getting started with open source contribution early on.


My Motivation

Alt Text

The main motivation to contribute to open source for me was to become knowledgeable enough to write about it.

I have a strong emphasis on knowledge sharing and this is something that I try to do both personally as well as at work in team and organisation level.

I was working on a side project last year and I learned a few things about encryption, so I wrote about it here. Few months down the road, I helped write our company’s coding guidelines and used the knowledge to write an article about it as well.

After two articles, I wanted to write about something that I regarded as really important for new devs and students (Medium version, not metered).

The community loved ❤ the article and received around ~50K views, many thousand claps and comments of appreciation (In Medium - prior to their Paywall).

The next big article for me was to write about open source contribution (this article) and for that I needed to make a few open source contributions first.

Alt Text

So if you find yourself in the same boat of wanting to contribute and have not yet then, look for that one reason, motivation, purpose, drive, whatever it is.


My Contribution Strategy

I decided that I will contribute to a Spring Framework, a library that I have used before. I was reading the Contribution Guidelines when I noticed a few broken links so, I created a pull request to fix them.

Alt Text

The pull request got merged and it felt so good that I decided to keep going however, there was a problem. A majority of GitHub issues (i.e. bugs, first-timer, help-needed, feature) would get picked by other contributors before I even have a chance to express interest.

Alt Text

Whenever a process does not produce the desired result for me, I make a change and re-evaluate the results and continue this way until the results are desirable.

Here is what I did

  • I subscribed (watched) to the Spring repository
  • On my way to work, I would browse through email notifications and show interest via comment on issues that I could tackle

Alt Text

As a result of this strategy, I had a pool of issues to work on. The first enhancement feature

Add Clear Site Data to Log Out #4187

We should investigate adding Clear Site Data to Spring Security's LogoutHandler implementations. See https://w3c.github.io/webappsec-clear-site-data/

and the pull request for it

Add Support for Clear Site Data on Logout #6550

This PR adds support for Clear Site Data HTTP response header. See the issue for more details.

Fixes #4187

I continued in this fashion on a few other issues of type enhancement, bugs and new features resulting in the following PRs

Alt Text

So, if you are struggling to find issues to work on, pivot to a different strategy.


Tips and Suggestions

Based on my knowledge and experience so far

  • Participate in Hacktoberfest
  • A must-read guide on “how to contribute”
  • Learn Git basics
  • Pick a language i.e. Java, JavaScript
  • Identify repositories that welcome contributions — Use tools such as CodeTriage, Github Explorer and this
  • Read the repository policies i.e. contribution guidelines
  • Learn the project you want to contribute to
  • Contribute in the form of code, documentation, bugs, and new features
  • Filter issues based on labels such as help-needed, bug, first-timers, etc.
  • Be mindful of others time specially maintainers who help you
  • Ensure you have the necessary skills and time to invest
  • Follow the discussions in issues and pull requests, see the code changes
  • Be patient and open to feedback

I picked an Elastic Search issue and ignored the fact that I needed to know some Groovy and how Elastic Search build worked as a consequence I spent a lot more time and effort in getting the PR to completion stage.

It’s always a good idea to do some research before opting to work on an issue.


Recommended Reading

I would highly encourage you to read the open source guide, and this article that comes with a wealth of knowledge on how to get started. This article highlights some good tips and if you are a visual person then these videos by Kent C. Dodds might be helpful.

I saw this article on Open Source Contribution on Jan 27, 2020 and find it to be a helpful and relevant read.


Thank you for reading. Please feel free to follow me on here for more articles, connect on LinkedIn and other social media platforms of your choice.

If this article in any manner helped you in making your first contribution, then you are welcome to share your ideas, suggestions, feedback and pull request as a comment.

Posted on by:

rhamedy profile

Rafiullah Hamedy

@rhamedy

After trying dev.to, I have decided to do a u-turn to medium for my future article.

Discussion

markdown guide
 

The way the title is written, I actually thought this was going to be a negative article about open source contribution.

I'm used to "think twice" being used in a negative sense to convince someone to rethink something they may have wanted to do and realize why they shouldn't.

I'm glad I was mistaken!

 

I was going to say it really gives the wrong impression, but I might not have clicked on it if not for the intriguing title. Let's call it "clickbait" in a friendly way. :)

 

Exactly. I was wondering when the article was going to begin. Seems like it starts here in the comments. Not a bad write-up though. Great advice all around.

 

I couldn't agree more, I published the article first as "Why you should think twice about not contributing to Open Source" with a "not" and after I run it by a few people they didn't like the double negative and it was confusing.

 

Maybe you should rephrase it completely? It's misleading

I spent around 10-20 minutes picking a title for this article. Here are some of the other titles that I had in mind

  • How I started to contribute to open source
  • What you need to know to get started with open source contribution
  • How you should not ignore open source contribution
  • Why you should consider contributing to open source
  • A huge % of developers are contributing to open source, so should you
  • 7 out of 10 developer contributes to open source, and why you should too
  • 7 out of 10 developers contribute to open source and here is a guide how you could do it too
  • Open Source Contribution 101 - Why you should think twice about not contributing to open source
  • Why you should think twice about not contributing to open source

In comparison to the title, I spent days in preparing the content of the article and my intention has been to

  • promote open source contribution
  • show open source is a thing and should not be ignored
  • share some motivations, tips and suggestions
  • share my personal open source contribution as example

As I mentioned above, the title might be confusing but, it really comes down to every individual's interpretation. The main purpose of this article and it's content remains the same and that is solely to promote the culture of open source contribution.

Thank you for sharing your concern about the article's title. I hope that you enjoyed reading the content of the article and if you have any suggestions, feedback and concerns I would be happy to listen.

I think the title is perfect!
Like someone earlier said, click-bait in a friendly way!😁

yeah, after reading I kinda got the "don't want to contribute to open source? think again" meaning, and it was nice 😅

 

Same. Very click-baity title, but actually a nice article. :)

 

Here I was, grabbing my popcorn, ready to read about some GitHub Drama... I know the content is worthwhile to read but doesn't justify a clickbait headline. Last place I want to get Growth-Hacked is in technical communities :/

 

Yes. Definitely a helpful article, worth re-reading. Very misleading title.

 

You are certainly not mistaken about the meaning of the term. I commented on the same thing. I think the author is simply not a native English speaker.

 

Here are my two cents about finding issues to contribute to - imho, subscribing to everything in the big project is tough and hard to filter, so I end up writing an utility - github.com/igorperikov/mighty-watcher. I am going to write an article about it, but it's not ready yet. I used to struggle trying to pick up issues, which turned out to be unavailable for non-employees, so utility search only for issues labeled as "help wanted" and other similar labels. What do you think about this? Any feedback is highly appreciated.

 

Hi Igor, I agree with you with regards to the influx of email notification. I like the idea behind the tool you are building and please feel free to share a link to your article once it's live and I would be personally intrigued try it out.

Navigating through a pool of Github issues to find out if there is anything to work on is a very time consuming process and any tool that could help would be great. Maybe in addition to all the existing filters you could also pull down the comments on that issue and this would open the door for eliminating issues that are taken (or inversely issues taken but, has no pull request for a while).

All in all, great initiative I think. All the very best.

 

Thanks, yes I am thinking about further improvements, but none sounds 100% consistently good.

I would be personally intrigued try it out.

Actually, the readme already contains enough information on how to launch it, so you can already try it out

 

I like the idea behind the tool you are building and please feel free to share a link to your article once it's live and I would be personally intrigued try it out.

Rafiullah, I just posted it! :)
dev.to/igorperikov/open-source-mad...

 

7 out of 10 developers contribute to open source...

I was wondering about this statement, this number seems really high. I was wondering where you got this number from?

 

As per the most recent StackOverflow survey (link provided in article) around 63.3% of developers contribute to open source. Another survey by BlackDuck (link also provided) claims that around 67% of developers contribute in one or another form. I rounded up the 67% to 70% because 7 out of 10 makes more sense than to say 6.7 out of 10 developers.

We could debate the accuracy of these surveys but, what's clear is that there are more developers who contribute compared to the years before.

 

The percentage of people contributing also depends a lot on how the question was asked by those doing the survey. Regardless, I agree the interesting part is it’s growing over time.

Also, remember, contributions come in many forms - also non-code contributions are important! They can come in many forms:

  • f Fixing doc nits (when you misunderstand something, realize “why didn’t they explain it like this”, you can take the time to propose even just a small fix)

  • Participate in issue or forum discussions, to answer or clarify.

  • Heck, even just asking - good - questions. It feeds those who like to answer :-)

Thank you for sharing the other forms of contributions. I totally agree with you, asking and answering questions also counts as contribution.

When contributing to ElasticSearch, somebody made a pull request that I had some knowledge of based on an issue I worked on. I did a review of the pull request (you can check it out above) and provided the contributor some feedback that I knew the maintainer would give him anyway (the maintainer was thankful of the feedback - see github.com/elastic/elasticsearch/p...).

Providing feedback to a pull request in the form of code review (majority of repositories allow it) is another form of contribution. This helps both the contributor and maintainer.

 

Thank you for providing sources. 👌🏾 I was just surprised of the number using my own experiences as anecdotal evidence. 😮

 

1 out 20/30 seems a lot more believable.

 

If you want to get money for your contributions, then have a look at issuehunt.io/

 

Thanks for sharing it!

But that was not the point, I am already making money working real jobs, or I can find another consulting side-project...

But forcing to have in resume contributions in open sources, it reminds me the "free voluntary" labor work during the cold war in eastern Europe.

As I said, on the other side, just like certificates nowadays are almost mandatory to show "continuous education", contributing on open sources, is not that different.

 

Thank you for sharing this Bimba! StackOverflow has a similar model but, the reward is in points.

 

Amazing article. Could relate. Recently I found myself struggling to to contribute to open source. Then I came across this article and reading all the reasons for not being able to contribute I was screaming 'yeah this guy is absolutely right'. I really appreciate your advice and I think it would really help me push around and get to doing my contribution. Thanks for the great article. Great to read such motivating article in the morning. #fridaymotivation 😊

 

Hi Ankita, Thank you for your kind reply. I am very happy to see that the article's intention of promoting and motivating open source contribution is working out. All the very best with your contributions.

 

Contributing to Open Source overall is good because, after trimming all the BS, in the end:

  1. Makes society more productive
  2. Keeps skills up to date and you competitive

On the other side, the price you pay to keep the job or being employed is:

  1. Work extra hours on open source projects with no pay, taking that time from family & friends. It's not easy when already working 10-12 hours per day.
  2. Corps gets cheaper and higher educated labor. Now to get a good job is almost required to have contributed for free is such projects, which indeed somehow directly or indirectly serve corporations
 

Great article, thanks! We, as a dev community, need more people passionate about open source contributions. It feels so good when you got your PR merged, indeed! And also it's a very good way of learning new things. I believe the number of contributions will keep increasing...

 

In the past of five years, I don't know about open source contributions.

In 2016, I looked for the open source projects on GitHub and start my open source contributions from then on.

You're right. Sometimes I learn new things and collaborate with developers on GitHub. It helps me a lot when I work some codes in my company.

I also have the plan to separate my company projects/packages to open source projects.

And I also thanks for my project manager to support this work.

 

Thank you Peter for sharing your experience. I agree with you the earlier the better. The few contributions that I have had helped me learn a few things such as

  • how to be more effective at code reviews
  • some best practices around code coupling
  • unit testing
  • Learned a few things when implementing the RFC 8414 and Clear-Site-Data specification
  • Some things about the Spring Security and Spring Boot

It's definitely a great benefit to be in a company and accompany of those who appreciate and support you to contribute to open source.

All in all, there are a good amount of learning opportunities.

 

For me the difficult thing is to decide what to contribute to, so to choose a project. And what's the "best" (?) strategy - focus on "one big thing" or divide your time over multiple projects? But in the end it all doesn't matter really, as long as you do something.

By the way the statistics are interesting and impressive - more than 60% contributing to OSS (compared to a few years ago).

 

I am confused by the title of this article. The phrase "you should think twice about it" means you shouldn't do it--i.e., if you think you should do it, you should think again. (I came here to angrily retort at you, haha.) But you are clearly pro open source. So the article should be titled "Why You Shouldn't Think Twice About Contributing to Open Source," or else "Why You Should Contribute to Open Source."

I agree, by the way. Not only is open source is a great way give something back to the community, but it helps you build networks with competent developers and it gets your work out there. It's totally worth the time.

 

Gotta say I did not get it until I tried it. The resulting feeling was as good as most recreational drugs!
Especially when/if the projects devs acknowledge you in credits.

Feeling jaded ? Review your contrib comments to brighten that Jade!

I like Jade though ...

 

Rafiullah Hamedy, thank you for the insightful article!

The company I am working at, in January-February 2020 starts the open-source project for Node.js developers (microservices)!
Warm welcome🥳
spectrum.chat/yap?tab=posts (community chat)
manual.youngapp.co/community-edition/ (docs)
github.com/youngapp/yap(docs)
(click🌟star to support us and stay connected🙌)

 

For me the easy entry point for contributing to big projects was to improve their documentation. There is always a typo, a missing code example or just uncovered sections and the chances for an accepted PR are very high because there is usually not so much debate about the "why" in contrast to PRs on new features.

 

You missed off a very important point for why people sometimes don't contribute. Many companies outright forbid their employees from contributing to open source. Particularly financial institutions.

 

Hey J,

Thank you for your reply. You brought up a great point. I just noticed that I forgot to port over two (2) more points relating to employer and procrastination

My employers doesn’t care — I would love a job that requires contributing back to the open source community.

The companies that I have worked so far massively use open source but, they rarely contribute back. I work with a financial firm as well and I have been trying to convince the company to

  • Contribute back whenever we build on top of open source
  • Open source certain tools and solutions
  • Motivate their employees to contribute to open source (doesn't have to be work related)
  • Contribute in the form of $ in return for all the open source software that we use

The BlackDuck survey linked in the article shows that a decent number of companies promote open source contribution. Hopefully over time the companies that oppose open source contribution or the silence treatment would change their point of view. I would love to be part of a company that encourages their employees to contribute to open source, it would be amazing to work alongside other open source contributors.

 

I have wanted to contribute to a few open source project for a while. I hope to start by the end of this year. Thanks for writing an inspiration.

 

Well, you could join the #hacktoberfest hacktoberfest.digitalocean.com movement to get started with open source contribution.