Organisers/submitters: Tania Allard, Mariatta Wijaya, Nina Zakharenko, Nikoleta Glynatsi
Expected duration: half-day (4hrs)
Open source projects such as Python and its multiple stacks (web, scientific, etc.) are nothing but a collaborative effort from many community members. It is the constant involvement of the numerous maintainers, contributors, and users that make open source software sustainable and keeps the community as a whole going.
Walking the path from user to collaborator, and thus contributing to an open source project, can sometimes be intimidating especially for newcomers. From a technical perspective, interacting with web-based hosting services (such as GitHub, GitLab, etc.), branching and opening pull requests can be overwhelming if these are not everyday actions of your workflow. The correctness of the code and potential bugs are other common obstacles and fears any newcomer might face. Not to mention the time and frustration accumulated over the task of finding a ‘beginner-friendly’ issue to work on.
There is a rather low representation of gender minorities contributing to open source projects (e.g. less than 10 female contributors to CPython and only 4 female core maintainers between 2017 and 2018 [1] ).
For these reasons, we are proposing a Hatchery programme aimed at individuals from underrepresented groups in the community willing to start contributing to Python projects. This event will provide a supportive, friendly, and safe environment for all the attendees.
In addition, it will serve as an opportunity for a number of Python projects maintainers and developers to make said projects more accessible and inclusive (see more details below).
Why do we need a mentored sprint when we already run sprints within PyCon?
The PyCon sprints certainly offer a great opportunity to get contributors and developers together and to squash a number of bugs in a relatively short period of time. However, with this happening at the end of the event many people, particularly less experienced developers, are not able to stay around for this additional time, or cannot easily justify attending an event for an extra day or two. In addition, a good amount of the people that attend the sprints are often comfortable doing so and in many cases have made multiple contributions to open source before or are, in fact, developers or maintainers of open source projects.
This mentored sprint will provide the attendees with a supportive environment in which they can learn, collaborate, expand their network, and celebrate their victories at the end of it.
What projects will you be sprinting on?
PyCon US is the biggest Python conference organised every year, thousands of developers, teachers, maintainers, and aficionados attend the event every year. As such it provides a unique opportunity to bring together creators, maintainers, and users for a few days.
By running similar events in smaller conferences we have learned that the attendees (and projects) get much more out of it by having maintainers, organisers, and attendees working together. This way the maintainers of a certain package can provide directed, effective and in-person mentoring to a group of individuals, and the attendees feel more confident and usually leave with a high sense of accomplishment.
To select the projects we will be sprinting on we will open a global call and encourage maintainers and developers attending PyCon to participate in this mentored sprint (note that this participation does not have to be for the 4 hours).
The key objectives of this event are:
- Support members from underrepresented groups to get started in open source: help them acquire the technical skills needed to do their first Pull Request, provide the needed guidance, and help lower the ‘first contribution barrier’.
- Pair attendees with core developers/maintainers in a mentor-mentee fashion (the terms of the mentorship will be established directly by the mentor and mentee i.e. just for the event, to continue after PyCon).
- For all the attendees to have fun.
After the event the attendees will feel more comfortable to continue contributing to open source, shall they decide to continue doing it. They will be able to access, use, remix and redistribute the resources generated for the event for their future events, projects and local chapters/meetups/user groups.
Ideally, this event will also serve to build long-lasting professional relationships between the attendees and the developers of the project involved.
The proposed outline for the event are as follows (with a rough time estimate):
- General introduction: a reminder of the code of conduct and introduction of the organisers and mentors (5 mins). Participation guidelines for open source: brief presentation about contributing to open source, and how to manage expectations/deal with frustration over the process (10 mins).
- Debunking the Pull Request: describing how to find issues to work on, fork the project, work on a branch and create pull requests (followed with a mini exercise for the attendees to do a simple contribution to a repo) (30 mins).
- Projects and mentors introduction: each project will have a few minutes to introduce themselves (20 mins) .
- Break into groups and introductions (form groups based on the project each team will be working on so these will be formed by the mentor/maintainer and the attendees) (15 mins)
- Mentored sprinting: the facilitators/mentors will be working with the groups and make sure to provide support and guidance (~40 mins).
- Coffee/mini break (15 mins).
- Mentored sprinting: the facilitators/mentors will be working with the groups and make sure to provide support and guidance (90 mins).
- Celebrate! Stand up in celebration of what we have achieved on the day 🤩👏🏻🎊🎉 (15 mins).
Note that during the whole event we will have a ‘git desk’ or a ‘git volunteer’ dedicated to helping with git specific issues.
- Create a call for both attendees and Python projects interested in participating (make sure to circulate around to gather feedback before making it public, also having an estimated number of attendees can help us to find additional mentors if needed).
- Open the call and advertise over social media, mailing lists and user groups (i.e meetups).
- Outreach and dissemination: actively reach out to specific groups for reach (e.g. PyLadies, TransCode, WomenWhoCode) and through social media in general to reach as many interested people as possible.
- Applications close
- Develop a small guide for the projects to prepare for the day/event (i.e. identify both coding and non-coding tasks for the attendees to contribute to, what needs to be in their project intro for the day)
- Selection of the Python projects to be involved: go over the applications and contact the applicants to confirm their attendance and ask to go over the preparation guide.
- Communicate with the PyCon committee to ensure that the setup and facilities are suitable for the event.
- Online call or online clinic for projects/mentors on the day (go over the logistics on the day, check progress on prep work, mini discussion/session on inclusive communities, unconscious bias, etc.)
- Help prep the venue for the day
- Run the introduction and debunking sessions
- Help attendees and keep them motivated
- Enforce the Code of Conduct
- Make sure that all the attendees are being supported and engaged
- Last minute registrations/attendance
- Collect feedback
- Send thank you emails to the Python projects involved
To ensure that we can run the event we need the following to be provided:
- Outreach and dissemination support
- A room similar to that used for tutorials (i.e. enough plug sockets, tables that can be moved to form groups, enough space for those willing to work on their own with relative peace and quiet)
- Projector, screens, and audio support
The organisers have run this event or similar events as part of smaller conferences (i.e. PyCon UK, RSE-conference, collaborations workshop) with great success. These previous experiences have provided valuable pointers on how to run these sprints and how to better support the attendees and projects involved.
The preparation materials can be open sourced and re-used for further use in other events. Also, the event is well suited for large and small conferences and can be run as part of the main programme, as a workshop or as an individual sprint.
Primary organizer: Tania Allard. Tania is an active member of the open source community as a mentor, contributor, and maintainer of a number of packages. She is the co-founder of Pyladies NorthWest UK and co-organiser/chair or a number of conferences.
Additional organizers: Mariatta Wijaya. Mariatta is active in the open source community as a Python core developer and has contributed to various other projects. She also helps organize PyLadies Vancouver meetup and PyCascades conference. Nina Zakharenko. Nina is a Senior Cloud Developer Advocate at Microsoft, focusing on Python. Before joining Microsoft, she was a Senior Software Engineer with over a decade of experience writing software for companies like Reddit, Meetup, and HBO. In her spare time, she enjoys snowboarding, hiking, and tinkering with wearable electronics from her home base in Portland, OR. Nikoleta Glynatsi. NIkoleta is a PhD student at the university of Cardiff. She is a member of PyData Cardiff, maintainer and main developer or Arcas and the Axelrod Python library, respectively, coach for Django Girls and frequent volunteer for a number of PyCon events.
[1] What is a core developer? Mariatta Wijaya: PyconUS 2018 https://noti.st/mariatta/FVuRAR/slides [2] Anthony Scopatz http://nbviewer.jupyter.org/github/scopatz/nf-project-inequality/blob/9b83df3090c9b9b1b953d2905d428b71165ce607/nf-project-inequality.ipynb