3 great reasons to embrace rejection

Don't let your fears stop you from contributing to open source projects.
505 readers like this.
The Opensource.com preview for January

Thomas Hawk on Flickr. CC BY-NC 2.0

I worked professionally as a software developer for nine years before I committed any code to open source. It wasn't that I didn't want to participate. Rather, my self-doubt and fear of rejection stopped me from contributing.

In 2006, I downloaded the Bazaar version control system and a bunch of Ubuntu code, made changes locally, then abandoned my project. Later, around 2009, Hibernate creator Gavin King gave a talk to our local Java User Group. I was interested in giving back to the project because we used it for work, but after downloading Hibernate's source and looking at the bug repository, I found myself intimidated once again. I was worried the response to my code submission would fall along the lines of, "Who let this woman with the craptastic code ever think she should submit code to us?!?!" Then I imagined a banned list shooting across the open source community IRC channels with my name on it.

Then one day, while I was working on a framework hosted by GitHub, I came across the simplest of errors in someone's documentation: The word "but" should have been typed "bug." I have no idea why, but I forked the project, fixed the markdown, and submitted a pull request. To my surprise, the maintainer accepted it.

After that, I ran into a discrepancy between versions of NGrok and GitHub's documentation. I submitted another pull request, and this time the maintainers came back with questions. I thought, "Oh no, confrontation!" The old docs worked for them, they said, so I explained that the version of NGrok available for download needed an extra command-line parameter. Once that was verified, I had another submission accepted.

I was excited to continue submitting pull requests and support open source projects... until I was rejected. It was a simple error on my part: I left my formatter on in my IDE when I saved code, which changed all the formatting. I fixed the glaring error in my pull request and got another acceptance.

My fear of rejection stopped me from contributing to open source code for many years. But once I recognized the benefits outweigh the disappointment of code rejection, I lost a lot of my fear. I'm so glad I did.

Three reasons to embrace rejection

  1. You'll learn something: It's the repository maintainer's job to ensure a clean codebase and repository standards. Code that doesn't fix the problem or is a Band-Aid fix should be rejected, but in such a way that the submitter can learn from the mistakes. The same goes for the repository standards. Although a rejection mainly benefits the repository, it is still an excellent learning experience for you. Think of it as a place for you to grow in ways like understanding how the repository works, learning different tools than you are used to, or discovering a different approach to solving a problem.
  2. You'll toughen up: Rejection will help you by hardening your shell. Take a step back and reflect on the reason the code was rejected. If it was due to a dumb mistake, recognize errors happen, then flex your muscle of self-forgiveness and fix the problem. Was it rejected due to not understanding the codebase or code standards? Make the changes and remember them for future submissions. Grow and learn with each rejection and harden that shell.
  3. You'll become more persuasive: Another benefit of rejection is learning to turn a no into a yes. One of my favorite stories is about Clayton Anderson, who wanted to become an astronaut more than anything else in life. He was rejected 15 times from NASA before he was finally accepted, and then he was one of the few chosen to go to space. Persistently work towards the solution and then work on turning their no into a yes.

Flip your fear

As a quote often attributed to Mark Twain says, "I've had a lot of worries in my life, most of which never happened." When you recognize that the fear of rejection is holding you back, you can flip the fear. Tell yourself you will do something that risks getting you rejected X number of times per month and push the button. As far as I know, there is no secret "banned contributor list" in open source, and everyone I've worked with has been very supportive.

You may not have noticed it, but throughout this article, I've been careful to specify that it's your code being rejected, because I want to you realize something: You are not being rejected, only the change you're requesting.

In my case, even though I was earning my living writing code, I was so afraid of being rejected by an anonymous community that I was reluctant to do something for them for free. Recognize this fear of rejection, dismiss it, and submit that pull request anyway!

Ann Addicks will be giving a workshop titled Commit to Open Source at We RISE Women in Tech Conference, June 23-24 in Atlanta.

User profile image.
Ann Addicks has 10 years of experience as a software developer using a wide range of languages including PHP, Python, Jython, Java, JavaScript and Golang. She enjoys teaching programming to her children especially counting binary using fingers. She welcomes you to challenge her on Code Fights!

6 Comments

Great article. Though I've never submitted code I too have experienced fear of rejection in other ways. A friend used to say, "don't despise the negative." I've come to believe that axiom as those negatives have pointed me in the direction I needed to go.

Thanks for this article; I can't agree more. The best thing I ever did was to resolve to actively seek out rejection. Once I started doing that, my expectation of a specific outcome was lowered, my confidence was boosted, and very frequently I ended up succeeding instead of getting rejected.

The fourth reason to embrace rejection:

- Some projects do things differently. Just because your code is formatted correctly and *you* think it's a great new feature, it may not fit in the vision and roadmap that the project's maintainers expect.

That doesn't mean you don't have a great idea, it just means that the particular project isn't interested in it for the time being - and that's OK. That's the whole value of open source, that different communities can work on different efforts.

Separately, the flip side to this article is: If you are an open source maintainer, don't worry about rejecting submissions - but do it politely! Rejecting a submission with comments like "RTFM!" drives away not just that contributor, but others as well. Taking the 2 minutes to write a polite reason why you're rejecting the submission is the hallmark of a project that welcomes new contributions.

Thanks for sharing!

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.