It may not sound like much, but having a successful first commit makes me feel very proud. The commit? It was a bug fix. The bug? It was a typo. Silly, yeah, I know but the point is less the code and more the process. It is a process which I had attempted and failed at previously.
About a year ago, I wandered into the Mozilla channel and received a lot of support when I identified myself as someone wanting to learn how to contribute. I had at least two people in the channel giving me their full attention and support. And yet I failed. I wasn’t able to navigate the process and I couldn’t put any more energy into trying. Life intervened and the necessity to feed dependants and take care of daily activities eliminated the brief burst of energy I had. I never made it back into the Mozilla channel after that first visit.
I am a big open source software consumer and I love to make useful contributions to products I believe are worthy. It wasn’t for lack of desire on my part or lack of welcome on the behalf of those in the Mozilla channel. It was all the other stuff that had to be dealt with to get to the point of committing a patch.
So what is different now? How was I able to commit a patch to OpenStack when I couldn’t figure it out with Mozilla? Well there are a couple differences, let me discuss them.
Money. Yeah, I don’t want to be crass, but money makes a difference. The GNOME Outreach Program for Women provides a stipend which when I devote my 40 hours per week to the project, I can buy groceries. I don’t have to do the work and figure out to buy groceries, I can focus on the work knowing I can also eat at the same time. Might sound not worth discussing to some, but to me it is a mainstay in any kind of learning/internship/apprenticeship program in which I have participated and I have participated in a few. So money isn’t the reason but it does make a contribution possible, for me at least.
Identified mentors available via IRC, email and Google Hangout (I think other venues are possible but these are the ones suggested and implemented thus far). Also the mentors checked in with me. Iccha knew I was considering applying and followed up with me, asking me questions about what I would like, offering me links and information, setting up times to meet with me. So for the brief time I was sitting on the fence, a mentor knew my status and helped me to make up my mind. That too counts for a lot.
The duration of the interaction also helps, I didn’t need to get everything done in one day. Many of the projects require specialized environments for executing and testing code and these environments don’t get installed by a n00b in one sitting. Having someone come to me and purposefully decide to help me as I tried and made mistakes and reinstalled and tried again made the difference for me to persist through multiple failures to ensure that I had an environment to edit code and successfully submit a patch.
Open source software is all about code but it also has a very large framework consisting of individuals who have a very specific way of working. By working together over several days, certainly at least a week if not two, I am starting to learn the people and the process. The edit itself took less than 5 seconds. Setting up the environment and learning the culture in order to enable me to edit the code and submit the patch with confidence? At least a week. Creating an environment filled with great people allowing me to take the week I needed is the difference between this successful commit and my prior failed attempt.
Thanks for reading,