Have Fear and Contribute Anyway
Tags: opensource, hacktoberfest
Published: 2021-09-30 22:04:18

<small>Cover Photo by <a href="https://unsplash.com/@thetonik_co?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Tonik</a> on <a href="https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a></small>

## Background 
I am a mom of 4. When I was pregnant with my second child, I had a lot of fears about labor. I had these fears despite already having labored once with my first child. These fears consumed me until I read an article titled ["Feel the Fear and Birth Anyway"](https://midwifethinking.com/2013/03/27/feel-the-fear-and-birth-anyway) by Dr Rachel Reed.

I know, I know. You are probably thinking, "Whoa this is a developer blog platform, why are you talking about birth!?" 

I am talking about this because we all experience fear. I bring up the article "Feel the Fear and Birth Anyway" because it didn't only help me with my fear of giving birth – it helped me understand that fear is not only ok, it’s something we all must feel at some point. The article also made me realize that I didn't have to talk myself _out_ of fear to accomplish something. 

When I later started learning to code, I went into the field with the same mindset. I was starting something completely new, so it was natural for me to be afraid! I could be afraid and still be a software developer. 

Contributing to open source is something a lot of developers fear. They fear it because they don't understand how to do it, they are worried about someone critiquing their code, or for many other reasons. 

**I am writing _this_ article to tell you it is ok to have these fears but you can still contribute anyway.** 

## How to get started?
One reason software developers fear open source is because of the unknown. If we don't know how to do something, we are much less likely to try it. In my opinion, the remedy for this is external support and guidance, so I’m going to give you some tips here on how you can get started contributing to open source.

### Contributing Guides
My first tip is to find a project that has a good contributing guide. 
![Contributing guide on Forem repo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s62kjphvzadu2nw60mna.png)
 
This file will usually be labeled as `CONTRIBUTING.md` and can be found in most open-source repositories that are looking for community help. Again, having this file is typically a good indication that a project will be helpful and encourage your contributions. 

Take the time to read through a project's contributing guide **before** you try to contribute. This will save you and the project's maintainers a lot of time. 

### Issues
Tip number two is to get acquainted with a project's open issues. 
If a project is on GitHub you will see the open issues in the `Issues` tab. You can also use filters to search for specific issues.
![filtering issues](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mgj2gzhqs8x6g9fr9bd4.png)
 
Some of the questions you will want to consider include:
- **Does this project [label](https://github.com/forem/forem/labels) their open issues?** 
_Labels are useful to help contributors know if the issue is a bug, a good first issue, what tech might be needed, for the Core team only to work on, etc._ 
- **Are there conversations happening on the open issues?** 
- **How many open issues does the project have and how responsive are the maintainers to contributors' questions?**

_These last two points are important to check so you know if you can ask questions before creating a PR._

### Communication
This is probably one of the most important parts of contributing to an open-source project. Good communication between a contributor and maintainers can make your experience so much better. 

Contributors should ask questions often, before they start working on an issue and while working on their PR. 

To get help quicker from maintainers, be sure to ask **thoughtful questions**. 

Your questions should provide a lot of detail about where you are stuck or what you think you should do to fix an issue. 

Keep in mind that many maintainers volunteer on projects and may be in vastly different time zones than you. Asking short, indirect questions, will lead to you getting a response much slower from a maintainer.

### Creating a PR
Once you have discussed the open issue with the maintainers you can start working on a pull request (“PR”).

You will want to see again if the project has guidelines for how they would like you to create a PR.

In general, most projects will have you [fork](https://docs.github.com/en/github/collaborating-with-pull-requests/working-with-forks/about-forks) (make a copy of) the project to work from. 

Every project is a little different when it comes to their expectations for [branch](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches) usage, naming conventions, filling out PR templates, etc. If the project does not have guidelines on creating a PR, be sure to communicate with the maintainers beforehand. 

If you have never created a PR before I suggest you go through GitHub's Learning Lab called ["Introduction to Github"](https://lab.github.com/githubtraining/introduction-to-github). This lab will walk you through:
- Creating a pull request
- Branches and commits
- Introducing changes with pull requests

… and more.

#### Draft PR
![Draft PR](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1bxmalz0gzo4r84exkye.png)
 
[Draft PRs](https://github.blog/2019-02-14-introducing-draft-pull-requests/) can be used when:
- You need more guidance 
- You would like more discussion on your PR
- You don't want to have your PR reviewed right away

On both draft PRs and regular PRs, you can discuss any potential changes with maintainers.

However, draft PRs can't be merged and maintainers will not be automatically requested to review your PR. 

#### Feedback
Once your PR is in and the maintainers start to review it, you will likely receive some feedback before your PR can be merged. 

You may see a "change request" or a "commit suggestion" added to your PR. Take the time to review the changes that were requested and ask any questions before making changes. 
![Request for changes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qkxemtgp8cyr84zgr78a.png)
 
Once your PR is reviewed, it can be merged into the project's main branch. 
Every team is different and you may need to wait for a maintainer to merge your PR. If you are unsure **ask thoughtful questions!**

### Etiquette
When you are contributing to a project remember real people are maintaining it. 
Respect their time. Be patient if someone is not responding as quickly as you would like. 

It is okay to be frustrated or confused, but do take the time to gather your thoughts, keep your cool, and most important of all **be kind** when communicating.

You can read more about etiquette for contributors in the post [Hacktoberfest Etiquette for Contributors.](https://dev.to/devteam/hacktoberfest-etiquette-for-contributors-ec6)

Now go forth, embrace the fear, **but contribute to open source anyway!**

![Ready for the next step](https://media.giphy.com/media/3ohs4oKP0TgsP9acF2/giphy.gif)