Apache Cordova : The Road to Committership
During my internship, there have been a lot of exciting, memorable highlights for me as a new developer - closing my first bug on Jira, committing to GitHub as a PhoneGap intern for the first time, and sending my very first pull request for review. All of these moments have stuck with me because they were completely new for me and also allowed me to contribute to the Cordova community in a real, relevant way. (Not all interns get an opportunity do awesome work like this!) My most memorable moment, however, happened a few months into my internship, when I received an email inviting me to become an official Apache Cordova Committer! For me, that was definitely a major highlight and one of the best days of my internship!
So what did I actually have to do to become an “official committer”? I’ll start by saying that I had to do a lot of things that were unfamiliar and challenging! Two main categories that I found I really needed to focus on were - (1) the technical work and (2) learning how to be an active member in the Cordova community.
In the very beginning of my internship, I started looking into the simplest issues on Jira and asking for some small issues that I could tackle with limited experience (fixing typos or even numbering tests, etc.). Even though I wasn’t contributing anything major, I was still going through the process of finding where the issue was, learning to develop a workflow, and becoming less overwhelmed by the many Cordova repos. Along the way, I asked questions, asked more questions, and then … yes… asked even more questions! I wanted to make sure that I was clear about what I was working on and why I was working on it. Sometimes the “why” part went over my head even after it was explained several times, but I kept re-asking anyway until things began to make sense. (Props to the team and mentors for being so patient and putting up with my occasional blank stares!)
I was gradually given more complex tasks to work on in Cordova. Debugging, helping to create new features, and testing is really where I spent the bulk of my time. I had to learn to read and understand others’ code, watch my mentor debug and try some of those strategies myself, write tests and use cases, test and retest, and receive feedback(sometimes from multiple people)! In retrospect, one of the most surprising and important things I discovered was how much effort actually goes into merging a pull request- something I was definitely not aware of before. I had to be patient and learn that just because everything is passing with beautiful, tiny green dots locally, the CI tests have to pass AND there also needs to be time for the community to do another final review. Finally, however, when your PR is finally merged in, it is really, really awesome!
Another important part of working towards committership was to get familiar with the Cordova community, of course! As an outsider, reaching out to a community was and still is difficult, especially when you are new. There are already relationships, Slack channels, and expectations established so I wasn’t always sure how to interact and build a presence. Two things that really helped me to be more vocal was learning to triage on Jira and receiving feedback on my work from various members. These experiences helped me to talk to members in a one-on-one way, get a better understanding of the issues he/she was facing, and slowly start to build new relationships. Learning to be a greater part of the community is something that I’m still working on- however, on a positive note, I always find that when I talk to anyone in the Cordova community, he/she is always welcoming, here for support, or just willing to have a friendly chat, too.
The Road Ahead
A few things that I am continuing to work on:
- Continue to develop the jargon to ask better questions and communicate more effectively.
- Make an effort to continue to be a part of the community (slack, jira, channels, blog posts).
- Contribute to Cordova even though I already have my committership!
While getting my committership was a goal I set for myself, I think it’s important to remember that with that comes responsibility. To me, committership means to show that you want to continue to be a part of open-source development and the Cordova community. I am so excited and proud to be able to do this and I’m really looking forward to what I’ll work on next!