Last week I ran a 3-hour training on how to get started contributing to
OpenStack at
EuroPython. The aim was to give a
high-level overview of how the contribution process works in the project
and guide people through making their first contribution, from account
creation to submitting a patch.
Overview
The session starts with an extremely fast overview of OpenStack, geared
toward giving the participants an idea of the different components and
possible areas for contribution. We then go through creating the
accounts, why they're all needed, and how to work with DevStack for the
people who have installed it. From there we finally start talking about
the contribution process itself, some general points on open-source and
OpenStack culture then go through a number of ideas for small tasks
suitable for a first contribution. After that it's down to the
participants to work on something and prepare a patch. Some people chose
to file and triage/confirm bugs. The last part is about making sure the
patch matches the community standards, submitting it, and talking about
what happens next both to the patch and to the participant as a new
member of the community.
Preparing
During the weeks preceding the event, I ran two pilot workshops with
small groups (less than 10 people) in my local
hackerspace, in preparation for the big one in
Berlin. That was absolutely invaluable in terms of making the material
more understandable and refining the content for items I didn't think of
covering initially (e.g. screen, openrc files) and topics that could use
more in-depth explanations (e.g. how to find your first task), timings,
and generally getting a feel for what's reasonably achievable within a
3-hour intro workshop.
Delivering
I think it went well, despite some issues at the beginning due to lack
of Internet connectivity (always a problem during hands-on workshops!).
About 70 people had signed up to attend (a.k.a. about 7 times too many),
thankfully other members of the OpenStack community stepped up and
offered their help as mentors - thanks again everyone! In the end, about
half the participants showed up in the morning, and we lost another
dozen to the Internet woes. The people who stayed were mostly
enthusiastic and seemed happy with the experience. According to the
session etherpad, at
least 5 new contributors uploaded a first patch :) Three are merged so
far.
Distributing the slides early proved popular and useful. For an
interactive workshop with lots of links and references it's really
helpful for people to go back on something they missed or want to check
again.
Issues
The start of the workshop is a bit lecture-heavy and could be titled
"Things I Desperately Wish I Knew When Starting Out," and although
there's some quizzes/discussions/demoing I'd love to make it more
interactive in the future.
The information requested in order to join the Foundation tends to
surprise people, I think because people come at it from the perspective
of "I want to submit a patch" rather than "I am preparing to join a
Foundation." At the hackerspace sessions in particular (maybe because it
was easier to have candid discussions in such a small group), people
weren't impressed with being forced to state an affiliation. The lack of
obvious answer for volunteers gave the impression that the project cares
more about contributions from companies. "Tog"
might make an appearance in the company stats in the future :-)
On the sign-up form, the "Statement of Interest" is intimidating and
confusing for some people (I certainly remember being uncertain over
mine and what was appropriate, back when I was new and joining the
Foundation was optional!). I worked around this after the initial
session by offering suggestions/tips for both these fields, and spoke a
bit more about their purpose.
A few people suggested I simply tell people to sign up for all these
accounts in advance so there's more time during the workshop to work on
the contribution itself. It's an option, though a number of people still
hit non-obvious issues with Gerrit that are difficult to debug (some we
opened bugs
for, others we added to the etherpad). During one of the pilot sessions
at the hackerspace, 6 of the 7 participants had errors when running git
review -s - I'm still not sure why, as it Worked On My Machine (tm)
just fine at the same time.
Overall, I'm glad I did this! It was interesting to extract all this
information from my brain, wiki pages and docs and attempt to make it as
consumable as possible. It's really exciting when people come back later
to say they've made a contribution and that the session helped to make
the process less scary and more comprehensible. Thanks to all the
participants who took the time to offer feedback as well! I hope I can
continue to improve on this.