I was waiting for my custom-built laptop to be delivered a while back. After all the research and making decisions about the tiniest things, I couldn’t contain my excitement to set up and use my laptop.
I was looking forward to set up the operating system as I prefer working with Linux-based OS like Ubuntu and Debian. And the second I got my laptop, I hopped to Ubuntu’s website to download its latest version.
But the download speed was slow. Irrespective of what I did, nothing worked as without seeders, the file-sharing P2P network wasn’t that useful. That was when a scary thought popped into my head: If nobody provides their resources, the whole open-source system will fail.
The Existence Of Open-Source Projects
The existence of open-source projects relies primarily on users contributing back to it. But the troubling fact is that most people fail to contribute to open-source projects regularly.
If one is stuck on an issue, the usual resolution process includes:
- Googling queries
- Reading a few answers on StackOverflow
- Going through issues on GitHub
- Copy-pasting the solutions in the code to solve the problem
But there are hardly any users who do more than just close all the tabs at the end of this process.
The issue here is not that users don’t realize the value of the shared resources or fail to recognize the efforts of the ones who shared the knowledge. But the problem lies in seeking proper motivation to help develop an open-source project.
I have been practicing several techniques to motivate myself and encourage my team members to contribute to open source. By implementing these techniques, there were several benefits that we have been able to experience as a team. Organizations that wish to boost open-source contributions within their teams can practice these techniques and get tangible results.
The Benefits Of Contributing
All the team members need to understand how beneficial contributing can be for their personal growth as well as the growth of the organization. This is why the first step to ensure that team members know about the key benefits of contributing like:
Active contributors can learn how to write clean code, document, and solve complex problems.
Team members can build trust in the community and the market through active contributions by showcasing their abilities.
Finding like-minded people passionate about open source is relatively easy for active contributors.
These are some of the benefits of contributing. Team members are bound to find more when they start actively contributing to open-source projects.
Finding The Right Approach By Categorizing Team Members
Figuring out the strategy for boosting contribution starts with categorizing team members. A general rule of thumb dictates that there can be three categories based on the current contribution level.
First-time contributors require mentoring and peer support in understanding the technical side of contributing and learning the code of conduct of an open-source project. It is an excellent idea to involve these team members in a project managed by someone within the same team. This ensures interaction with the maintainer and gathering of insights into the project.
Once first-time contributors have experience, they can start working on a project of their choice or focus on a target area. These contributors should be encouraged to join relevant workshops and mentoring events.
If a team mainly has regular contributors, then the focus should be on clearing out any blockers that the team might face. Apart from this, targets can also be set to ensure a proper contribution.
Expert Team Members
Expert team members can lead internally owned open-source projects, mentor the team, identify the areas of contribution, and host workshops. This is beneficial for the entire team and community.
Modifying The Approach To Working On Projects
While using an open-source framework for your project, a few modifications in the approach can help complete the project efficiently and make room for contribution simultaneously. Consider the following changes while working on projects:
- Prefer extending the existing contributed plugins or modules rather than creating new ones over customizing. This means resolving common requirements with freely available plugins or modules, reviewing the codebase, reporting issues, and posting solutions for the same
- Contribute any generic solution that you build while working on a project
With this approach, team members will not have to find separate time to contribute. As a bonus, the code will be better designed for more use cases.
The Types Of Contributions
A common mindset is that contribution to an open-source project can only be done through code. Because of this, most non-developer team members don't feel encouraged to contribute.
This mindset needs to be changed. There are many ways in which team members can contribute. To ensure maximum participation, one can map different types of contributions with the different roles of team members like:
- QA Engineers can do quality analysis or post reviews on the submitted solutions
- Project Managers can help in planning, managing scrums, and providing reviews from an end-user perspective
- Product owners can help in defining long-term vision and a framework for collaborations
Apart from this, team members can contribute by writing blogs. They can also be active on support forums and channels to help out other users who are facing issues. Organizing and participating in community events is also very important for the success of open source projects, and project owners always appreciate it.
My Experience With Active Contribution
It took time to figure out how to be an active contributor and help my team achieve the same. The main goal was to ensure that contribution became a sustainable activity. And to accomplish that, I introduced a few changes.
- Ensuring dedicated time for contribution every week or month. During this time, team members can stop working on their daily activities for a while and focus only on contributing to open-source projects
- Incentivizing contribution and rewarding team members who show interest. I found this to be a great tool for encouraging contribution
- Sharing regular updates with the team about contributions and events is very helpful. This acts as a first checkpoint in raising the excitement level
- Getting involved in the community initiatives of the projects that are frequently used and encouraging team members to do the same
Organizations can introduce similar changes to ensure the development of open-source projects. With this, team members can also enjoy several benefits of being active contributors.
Gaurav Kapoor, Senior Drupal Engineer
Gaurav is a storyteller. An Arsenal FC fan, he also enjoys reading Amish Tripathi's works on Hindu Mythology. He has been spending every Friday evening at his favorite bar for more than two years now. Need a dose of sarcasm? He is your guy!