How to approach an OSS project
Tags: opensource, productivity, tutorial
Published: 2022-04-20 13:57:01

The title of this blog post may understand for some people and eventually some won't :') at first glance. So let me get this straight. Consider a scenario where you're a developer; be it aspiring or a pro, and want to enhance your skills in a great way such that public will benefit on your work. On your quest, you found that the open-source is one such method to look and try your hands on, so you took a project and had a look. But sadly you didn't understand the project well! Sad right :( So, you tried all ways possible to understand the project even better but still you didn't know what you made mistake on. This is seen in most of the developers and if you're one of them, well don't worry! Here's some of the fields where you can try to look on any project and thereby start doing your work.

![OSS](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gj5s0zbgm0orto4qxorn.png)
  
## What the heck is Open Source?! 🙄
I'd make it short though. Open Source is a kind of project where you use the project for free or sometimes paid (if in case of pro/business user). These projects are made with help of passionate team or community and code is open. Yes, open! This means you can have a look at the source code and understand what is happening BTS. 
 

## How to understand OSS project? 😵

![OSS Logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pv6ecb5cg625upfe8e6x.png)

So you know what is Open Source and you found a project to contribute as well! But you didn't know how the project works and you got tired of learning it 😫! Well, it happens at first, don't panic. There's a way to approach an OSS project. So, here's the way on how to it.

### Find the community before code 🏢

![team](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/45gxpe1hkbwut4z37zg6.png)
 
You might think "hey, why I'd need to find a community? All I need is just to code...🤔" Well, in that case, you should drop that thought. There would be a team/community behind that project and there are the ones who created as well. So if you found a project, make sure you join the team and get a hang of it. You could also ask doubts related to the project. They'd be happy to help you. Trust me :) Get along with the team together and you'd achieve something more!

### Find your field 🔍
Did you join the community and understood the purpose of the project? That's great news! 🥳 So what's next? You need to find your suitable field in order to contribute better. 

Now, you can ask why you'd do such, remember that before starting a big work you need to rely on small modules. That's where you could look on the fields in which a project would have. Some of them are...

 - UI/UX
 - Docs
 - Frontend
 - Backend
 - CI/CD
 - Security
 - and much more...

If you're newbie and want to get hang on a project, then I'd suggest you to try on docs first. Because, after all, docs are the first source of truth for any project! Then you can explore other fields. 

**SHARP NOTE: Contributions can also be non-code! Eg: Docs, UI/UX. It doesn't mean it has to be code all time! Even non coders can also contribute to the project (sounds amazing right?!)**

### Know the rules and hack the code 👨‍💻
Alright! So you know what field to tackle and contribute. Next step is to know the rules of the project ecosystem. This step might be slightly important such that your PR (Pull Request) may get rejected if you don't follow them. **Do note that some rules may differ according to the project**. So, first step, read the contribution rules, typically you will find it in the project in the name of "CONTRIBUTING" file. Read it first. You can also find the rules by asking in the community as well.

Then, you should find a suitable issue to work on the project. You can find several issues and filter them to suit your field. Select an issue which is comfortable for you at first, because if you start a hard issue you may feel bit sad at later times. It's ok if you seek help, the project maintainers and committers will help you if you're struck. Finally, it's time to open a PR!

### During PR review 😬
You've contributed code and raised a PR. Congrats! It'd be on the reviewers and maintainers work to review and merge your PR to the source code! This step is crucial as your code will be reviewed and suggestions would be posted if it needs a change. You need to be calm and accept criticism during this stage. Accept or ask doubts if reviewers suggest a change. Do changes on your code and push them. Iterate this process until it's successful.

### Final result 🎉
After your PR is accepted, the maintainers will merge your PR which eventually would show up on the project. And that's it! **You've made your first contribution to the project!** Give yourself an applause or have a small treat ;) 

But that's not the end, it's the small step for your journey to pursue! This process is iterative one which would eventually turn into a journey you would want to take on. If you do this correctly, you may get recognized for your work and have bigger accomplishments on your profile! So keep going!

## But why Open Source though? 🤨
You can ask this question, no wrong in it. With open source, you could indeed learn few valuable skills which some usually won't teach. For example, documenting your code for people to understand better, collaboration on a project, learning new tech and a lot more. So, why don't you give yourself a try to experience it? ;) After all, actions speak louder than voice!

P.S: Never try this if you do for 💵, there's a reason why open source exists. Understand it before you do (just a personal opinion 🙂)

## Conclusion
And that's it! You've successfully contributed towards an open source project. Do remember to be consistent and be engaging with the project and the team such that both you and the project will be successful. So what are you waiting for? ;)