Open source has always been an amazing place to learn, collaborate, contribute and build. Having been a part of many open source communities, events, and organizations, I have realized that people slowly and steadily understand the potential of open source as the future of technology.

However, they often get confused regarding the workflow in open source projects and communities and end up making mistakes that lead to not-so-good contributions. Thus, they often get stuck in a loop of code reviews and changes before they ever make a meaningful or effective contribution to a project.

Note: This article can only be helpful if you are familiar with the basic git terminology and have an understanding of the initial workflow of using Git and GitHub.

Here are some of the best practices that you can take up for your next contribution!

Culture and Communication

Open source communities are a big pool of people from different social and ethnic backgrounds, races, religions, and languages. Thus, the best way to walk along with everyone would be to practice empathy.


Communication Channels

Most open-source communities have their own private or public communication channels like Slack, Discord, Gitter, etc, as chatting is a great way to connect with other contributors and maintainers.

 ![GitHub Discussions](https://cdn.hackernoon.com/images/6sWrtbrOmsOIbrWzrG88lYfV4ch1-nn2352e.gif.webp)

To use these channels effectively, contributors should try to follow the below points:

Feature Requests and Bug Reports

Feature Requests and bug reports are best handled over GitHub, but one must follow certain steps to use them constructively:


Most open source projects use Issue templates for Feature Requests and Bug Reports. This can be used as a reference for the details that should be mentioned while submitting an issue.



Development

Once you have decided on the open-source project that you want to contribute to, the first step, to begin with, would be to set up the project on your local machine and run it. The steps are usually defined in the README.md file. The next step would be to go through the branch policies and contributing guidelines of that project. These can be easily found inside the CONTRIBUTING.md file. Once you are done, you can begin with the changes in the project.


Meanwhile, during development, if you have any doubts or come across any challenges, feel free to ask questions from the maintainers or fellow contributors. (You can either use the communication channel or keep the conversation going over GitHub.)

Commits and Pull Requests

Most first-time contributors are hesitant or fearful of making a PR, although there's no need to be afraid. Just keep a few things in mind while making your PR to get a quick code review and feedback:




Documentation

Everything in open-source space happens through an exchange of words. Thus, documentation stands as a crucial step to provide information about your contribution.

Documentation is a continuous effort at every step of software development.

Last but not least, open-source is a collaboration between many different people with many different priorities, and sometimes, you got to wait until the right time. Other people working on a project likely have very different lives than you, and their priorities may not match yours. Work projects, vacations, and family are some of the most common things that can push back a response to your needs, and patience is the best way to deal with it. Since great things are worth the wait, never mind the delay.

This is all that I learned along my journey in open-source. I hope that the practices mentioned above take you closer to your next (effective) open-source contribution and help you fulfill your chance to give back to the community, one commit at a time!

If you find this insightful, do let me know your views in the comments. Also, any kind of feedback is welcome. In case you want to connect with me, follow the links below:

LinkedIn | GitHub | Twitter | StackOverflow

Also published here.