Originally Published on Bugfender
Software engineering is an exciting field that offers various roles and responsibilities to individuals. Some prominent roles are developer, quality assurance engineer, project manager, product manager, DevOps, and many more.
Each of these roles also has sub-roles. For example, we have front-end, back-end, and full-stack developers in development. In testing, we have manual testing, automation, unit testing, and end-to-end testing. New roles and work activities are created every day, roles that never existed before. One notable mention will be being a developer advocate.
In the image below, you can position yourself and relate to any possible roles mentioned, provided you have the skills to perform them.
Now let us change our perspective a bit. What if you replace yourself with a product in the above picture? So fascinating that it fits well! You might need to work on almost all the scopes to take your product from incubation to go-to-market.
Usually, a product is built out of multiple projects, and one of the critical aspects of any project is the Source Code. When we talk about source code, there's a special kind of it that we call Open Source. This happens when it is free to view, change, extend, and distribute. The related project is called an open source project, and if there's a product that meets these criteria is called Open Source Software(OSS).
An Open Source Software has all the attributes and scope of a regular product we have seen above. All those roles and responsibilities are valid when developing, testing, and shipping Open Source Software. But one thing to remember is that the source code is
Open Source Contributions
We have an idea about Open Source and Open Source Software now. A frequently asked question is, What does Open Source Contribution mean? Most people think Open Source contributions require changing the project's source code. That's true, but it is not limited to that. You can contribute to open source projects in all the following ways:
- Adding Features to the project through source code changes.
- Fixing bugs or issues.
- Helping to improve documentation.
- Help in testing the software.
- Taking up Code Reviews and helping out the maintainers.
- Create content. It can be written, video, or even podcast content.
- Being part of the community and helping to grow it.
- Help to integrate the product with other products for a better solution.
- Provide feedback to make it better.
As you noticed, Open Source projects have several opportunities to contribute. However, you may wonder what the advantages of contributing to open source projects are. Let's understand and demystify that.
Advantages of making Open Source Contributions
The advantages of making Open Source contributions are immense.
- We get a chance to up-skill. It's not always feasible to get a chance to work on something you are aspiring for because the project at your workplace may have different needs. Open Source projects can give you the opportunities to contribute in an area where you want to grow and build your skills.
- The satisfaction of making things better. We probably use many open-source libraries, frameworks, and products daily. It will be exciting to make any of them better with our contributions!
- Getting the opportunity to network with like-minded people and build communities.
- To get mentorship and the chance to mentor others while contributing to the project.
- We get to know the entire open source ecosystem and how to manage an open source project.
- Last but not least: It improves our portfolio and resumes by mentioning contributions to open source projects.
Great, now let's look at how the Open Source project works.
How does Open Source Project Works?
An open source project will have one or more maintainers who have started the project and got more access rights to manage and maintain it. Besides, contributors will aim to improve the product by making possible contributions.
The source code, documentation, and tests are usually in the project's source code repository for better management, version control, and tracking.
Git is one such version control mechanism, and
GitHub allows storing the code in the repository.
The maintainers and contributors either clone or fork the
main repository to start contributions. Once the contribution is ready, they open a
Pull Request to merge their changes from their branches to the main branch.
Suppose you contribute to an Open Source Code Software. In that case, the Continuous integration(CI) and continuous deployment(CD) pipelines will build the source code to generate a binary and deploy it on the cloud or to some servers so end users can access the final product. With this, the automated system keeps the end-user experience up-to-date whenever a source code changes.
The image below shows the entire process visually.
How to Get Started?
So the billion-dollar question is how to get started with the Open Source journey. Luckily there are a few websites that help you with this information.
- GitHub Explore: You can search repositories by topics and trends. Set notifications based on your interest. It is the first place you should look for an open-source repo to contribute.
- First Contributions: A website with very well-guided documentation on how to start an Open Source Project that will help you to find a suitable project based on your skills.
- Code Triage: Code Triage has a massive list of open-source projects for you to select. They have categorized the projects based on the language and the number of open issues, so you can selectively pick them and put your efforts into the most demanding projects.
- Up For Grabs: Another website with a comprehensive list of Open Source Projects.
- First Timers Only: This website will help you to get the motivation required to start with Open Source. You must consider giving it a read.
Aside from all these websites, as an open source enthusiast, you must be aware of something called Hacktoberfest. We will go deeper into it in a while, but if you are aware of any other resources, please comment below and let us know.
What is Hacktoberfest?
Hacktoberfest is a yearly festival to promote the Open Source philosophy. It's usually done in October, and its primary goal is to encourage people worldwide to participate actively and contribute to Open Source Projects hosted across GitHub and GitLab.
To get started, you must register between September 26 and October 31 and find a project that suits your skill, labelled with the "hacktoberfest" label. You can find the projects hosted on GitHub and GitLab. Once you have chosen the project, you can contribute to it and create Pull requests.
The project maintainers will accept your pull/merge requests if all goes well. Once you have four pull/merge requests accepted between October 1 and 31, Hacktoberfest will be completed for you. The first 40K participants (maintainers and contributors) who complete Hacktoberfest can choose to receive one of two following prizes: a tree planted in their name or the Hacktoberfest 2022 t-shirt.
Hacktoberfest is not only about the code. Non-code and low-code contributions are also accepted in the event. You can read more about these contributions here.
A Few Things to Note
Here are a few points to note about the open source contributions.
- Even the smallest contribution is a contribution. Every contribution counts as long as those are not spam.
- Be humble and kind when communicating on the pull request and issues. It is a virtual world, and everyone needs to work in harmony to sustain themselves.
- You don't need to be a guru or a very expert person to start contributing to Open Sources. Open Source is a journey where you have the opportunity to learn and grow.
- Be proactive in responding to queries. You never know what others expect from you or your contributions.
- Hacktoberfest counts four merged contributions. However, you shouldn't stop just there. Continue your journey with it.
That's all. I hope you found this article insightful and that it helps you get started with the Open Source path and contribute to Open Source Projects.
But hold On! I have something more for you. Recently I have done a YouTube LIve explaining all about Open Source and Hactoberfest. The video also covers the maintainer's checklist if you are interested in maintaining an open-source project. Please take a look.
Don't forget to SUBSCRIBE to get the future content