Would you like to contribute to open-source projects but aren't sure of your coding abilities? Or you'd like to contribute to open-source as a non-coder?
Trust me on this, non-code contributions are deeply valued in open-source projects. Developers are quite hands-on when it comes to making contributions to open-source projects. The non-dev contributions are rare however they are now catching pace.
Whether you are a novice in programming or are a seasoned developer or a non-engineer, there are many options when it comes to making contributions to open-source software, beyond code. Designers, writers, brand ambassadors etc everyone can make the most out of open source projects.
Yet even today when someone says open-source we imply to mean open-source software.
Let's understand how the term open-source came into use & how it gradually expanded as we see it today.
The terminology open-source was first coined in the year 1998. This was mostly to describe open-source software, in the public domain. Gradually around the 20th century, the terminology open-source intelligence was making its way. As people got more and more curious they started realizing how code was being shared and they'd rather apply the same fundamentals to collaborating and sharing other things as well.
We can see a lot of open-source hardware, open-source medicine, open-source education and other models are now being introduced. The idea is that when many come together to contribute to a project then it takes up a refined form and turns out to be more productive. The whole concept behind open-source contributions is fascinating.
However open-source software is something that still attracts a lot of contributions and especially now from non-developers also.
Why do we contribute to open-source projects?
Participating in open-source projects is both a fulfilling and enriching learning experience. Though there can be many motives behind making contributions to the open-source projects, the major motivations behind these contributions could be twofold -
- Creating and promoting visibility: The contributors are able to find novel job opportunities, connect with industry veterans etc. Your employer could also benefit and gain visibility while you make contributions to the open-source projects.
- Enables learning and acquiring new skills: The contributors are able to polish and enhance their existing skills without being evaluated. At the same time, you can learn new skills while participating in the areas of your interest.
So what are the areas wherein we can make contributions?
Beyond coding and development, there are many areas where we can make active contributions when it comes to open-source projects;
- Reporting issues
- Maintaining tests
- Project management
- Providing support to other project managers
A lot of large-scale projects also host networking summits, where you can meet and collaborate in person to make contributions.
Let's have a look at some of the broad categories
- Designing :
If you are a designer or have design skills you can contribute in more ways than one:
- You can exhibit your skills to create artwork/graphics/posters etc for any project that would require such an effort. You can contribute to social media, blog posts or even swags.
- You can develop style guides. Many large-scale open-source projects have globally distributed contributors. Hence having a consistent visual design is imperative. As designers, you can develop style guides to ensure consistency across the contributors.
2. Testing :
Users of an open-source project can make meaningful contributions in the following ways;
- You can begin by reporting bugs if you encounter some as a user of the open-source project. You can raise them and let the code contributors know about the bugs. This way you can support the fixing of the bugs and overall enhance the quality of the project.
- You can also sign up for being an alpha/beta tester. Alpha/ beta tests are the controlled tests of a new release or feature to ensure consistent user experience and quality before they are made available to popular users. Here you can sign up as a tester and test the new release/ feature and share your feedback. Such feedbacks support the contributors in iterating an issue and bringing improvement overall.
3. Advocating :
Most of the open-source projects that we know of today are driven by the community. Hence they do not have a dedicated marketing team to spread awareness. Here you can have an opportunity to become a dedicated advocate of the project and spread awareness of the same. You can use social media or offline events to spread the word. You may need not even ask the project sponsors/ owners, because who doesn't like free marketing!
If you are good at creating content and writing technical documents then there is ample opportunity for you to make contributions to open-source projects. Here's how:
- You can write tutorials and blogs. If you have been a consistent user of the project, then you may be one of the best contributors in this domain! You can write lengthy tutorials and blogs to support the existent and prospective users of the project. And if you can share your own tips and insights through your experience what can be better! If the project has a dedicated blog platform you can ask to get published there, or there are also many free blog hosting platforms wherein you can publish your blog posts. These tutorials and blogs are quite helpful for users.
- Making meaningful contributions to documentation is something that'll create a long-term impact. Even if the project is amazing, however without proper documentation nobody will be able to figure out its value and usage optimally. Hence either you can make changes to the existing documents to make them more reader-friendly or write down elaborate ones. Projects always gain from new perspectives and ideas.
- You can start contributing to the social media handle of the projects. You can ideate and write content. Even if you do not have direct access to the accounts you can always get in touch with the social media managers to suggest content and means of engaging with the community of users and other stakeholders. This will bring more visibility to the project.
- You could make translations so that people from different parts of the world are able to use your documents. Language barriers may discourage users. So if you know the relevant language like English, Mandarin, Japanese etc you can contribute by translating the documents This will open up the projects to a new set of users.
If you are good at mentoring you can even mentor the contributors
- If you are skilled at the project's technology then you can mentor the new set of contributors. You can share your knowledge and experience to churn out better contributors. There are a host of open source projects that can connect the mentors and the mentee.
- You can also review the code, the more people do it the better will be the outcomes. There can be fewer bugs, quick reviews and better projects to manage. Most of the projects allow anyone to review the pull requests, make comments etc. Your opinions would make a whole lot of difference.
6. Community management
Communities are the life and blood of open-source projects. However, we'd also need someone to manage the project, the communities etc. You can make contributions by donning the hat of a community manager
- You can take charge as the main organizer of the project. You can work through the stale issues, issues without labels. following up with the users etc You can verify and close the issue as and when they occur. If there are unreviewed pull requests you can request for review etc. You can help in any way you'd like to improve the project in every way. The project managers and organizers are quite well recognized within the community.
- You can become a release manager, by keeping a schedule of everything that everyone is working on. This way you can ensure that the project is prepared for release. Some of the responsibilities that you can take up; checking with each of the teams working on the project, organizing the alpha/ beta programs/ensuring that different features and components are tested in time etc.
- You can be the event organizer and manager. You can organize project meetings, represent your projects in seminars and conferences, drive community events etc. Great community managers know how to hustle for the success of their open-source projects.
7. Recruitment :
You can become the recruiter and bring many hands on deck. Most of the open-source projects that we know of today are scarcely staffed especially with non-engineers. Engineers generally spread the word and attract more engineers, so there may not be a dearth of them. Hence you can pitch in to hire more non-coders. You can have everyone contribute to other areas than code. You can create an environment and infrastructure that appreciates all the contributors.
Ending Note :
Open-source can be any project in any domain or industry. Hence anyone willing to contribute should be able to make meaningful contributions irrespective of being engineers or non-engineers. As community architects and leaders, it is upon us to identify and understand how responsibilities could be delegated to drive inclusivity within our open source projects. As contributors, we shouldn't shy away from making meaningful contributions, especially where and when we can.