How better issues improve collaboration
A while back, I started on a project to help beginners to get started with contributing to open source; First contributions. I got very good feedback from the community and a lot of people made their first open source contribution. I got very motivated by the response from community and started working on how to solve various problems faced by beginners.
One problem that I identified, which is faced by a lot of people is finding projects they can get started with. Some projects put labels like beginner friendly, good first patch, your first pr, etc to categorise issues beginners can solve. I found this extremely useful. It’s easy to search, filter and get to something you can start working on.
Then I found Hoodie. They take this to another level. In issues they raise in projects like Hoodie camp, they try to give contributors as much context as they can so that contributors get a clear idea on how to start and what they need to do in order to contribute.
Here’s an example of how they draft issues:- GitHub login for static websites hosted on GitHub pages. When I read Hoodie’s blog post on why they do it, I was very moved. It can be summed up in their thought process behind it.
The most important thing is the message an issue sends to someone who is new to the project. It shows that we clearly care about people coming here, that we want them to succeed and that we are here to help. It’s about people who want to contribute, and not about the project.
After this, I started to use a similar structure in the issues I raise in first contributions as well. Here’s one of the issues I drafted.
The response I recieved for issues like this was wonderful. A lot of people started participating and contributing. I ended up adding an issue template in my project to follow this structure.
These days I try to evangelize this to most open source project maintainers I meet. It’s a great behavioural change that can be brought in project maintainers to get open souce community more welcoming and engaging.