This is a contributed post by participants in the 2017 Diversity and Inclusion in Scientific Computing (DISC) Unconference.
This November, almost 40 engineers, data scientists, and open source enthusiasts got together for NumFOCUS’s first Diversity and Inclusion in Scientific Computing (DISC) Unconference. This is one event of many that DISC puts on — all in the service of creating a more diverse data science community.
The DISC Unconference mission is to equip participants to create a more inclusive open source scientific computing community by generating practical and scalable solutions, identifying best practices, and sharing knowledge. Participation in the Unconference was free, and financial support was offered to participants wherever possible.
This was the first Unconference experience for many, so we’ll take a moment to explain what an Unconference is. While each Unconference is unique, they share the fact that their agendas are constructed by the participants.
In the weeks leading up to our Unconference, participants chatted on video calls and posted on Unconference forums to brainstorm topics of interest. When we arrived on Wednesday morning, armed with pens and sticky notes, we pooled all our ideas, and eventually distilled them down to seven project groups. Over the two day Unconference, each group worked to concretely articulate the problem they are addressing and produce something tangible to help address that problem. This could be a tool, a collection of resources, or a study of the current landscape. Working sessions were punctuated by lightning talks, check ins, and of course some tasty food.
The problem our group wanted to tackle at the Unconference is barriers to Open Source participation. From GitHub to Quora to personal blogs, searching “how to start contributing to open source” returns well over a million results. These results cover most of the issues we wanted to address: how to find a project, making your first pull request, and overcoming imposter syndrome. Despite the abundance of material, or maybe because of it, we have all felt overwhelmed when trying to first get involved in the Open Source space.
Through personal and anecdotal experience, we’ve seen many frustrations in trying to get involved with Open Source but not knowing where to begin:
- Which Open Source project should I contribute to?
- Which projects want my help?
- Do I have enough technical skill to contribute?
- Where do I start?
Too often, people pose questions trying to understand specific projects and are met with unproductive feedback that leads to them believing their input doesn’t matter. Many projects don’t provide clear direction for how to ask questions or guidelines on what would be a valuable contribution. Without these resources, it’s easy to think that these projects don’t need your help. It feels unknown and very wild and that can be intimidating for people.
Another problem we noticed is the idea that Open Source contribution feels all-or-nothing. Many people have 1-2 hours a week that they’d like to contribute to Open Source development. Fewer people have 10 times that amount. It should be possible to make meaningful contributions even with limited time, but it’s often hard to tell how much of a time commitment any given contribution might be. It should be easier for people to use whatever free time they do have to make a contribution.
Our goal for the Unconference was to create a resource for students or any other technologists inspired to contribute to an Open Source project, as well as a curated and annotated list of resources that will show them how to start. The project was to be both inspirational and practical. We decided to share our resources on GitHub, in the spirit of Open Source, with the hope that the resources can be updated and enhanced over time.
We created a Getting Started with Open Source Guide, available here:
This is a collection of resources on how to find projects, how to find beginner-friendly issues in projects, lists of tools that would be helpful to learn, stories of personal experiences of getting involved, and even a guide on how to organize your own Open Source sprint.
Our resource is just one component of diversifying the Open Source community. We recognize that there are other important parameters not addressed by our current work such as familiarity with git or identifying opportunities that can be completed by individuals with more stringent time constraints.
The “contribute-in-free-time” principle and requirement for getting involved was a recurring theme in our research and discussions on the barriers to Open Source contributions. We see creating and identifying opportunities that are amenable to the time constraints of students and other non full-time software developers and data scientists as an important next effort. Our next step is to build on the existing efforts to label issues (eg. beginner, intermediate, advanced) to include a flag for estimated time to complete assuming a certain skill level.
We have all gained tremendously from the DISC Unconference and from the people we collaborated with. We are also really excited about sharing this resource and hope it will be useful.
We encourage anyone reading this post to share it with your networks so it can benefit the maximum number of people.