A few months back, angular-formly got a pull request from Koen Weyn who wanted to fix some IE8 compatibility issues with the project. He submitted a good PR (pull request), we iterated on it a little bit, and it got merged. He mentioned to me that it was his first ever GitHub pull request. That was a neat experience. It was cool to be a part of someone’s first ever open source code contribution.
It wasn’t until a few months later that I had an idea. While developing a new feature doing TDD (Test Driven Development) all the way (and loving it), I finished the tests and was about ready to start on the implementation. Then I had a thought: “Why don’t I let someone else work on this? I know exactly what I’d do. I could do some hand-holding and help someone contribute to open source for the first time.”
Small tangent… I’m a happy father of two. When teaching or playing with my kids, sometimes I have to ask my daughter to give her brother a chance to answer a question. Many people are eager to please and help out. So when I throw out a soft-ball to my son, if I don’t ask my daughter to let her little brother answer, she’ll spout out the answer and he’ll have a harder time learning/feeling the satisfaction of answering. I think that sometimes we adults can behave the same way.
So I decided to commit the tests, but skipped (so the build wouldn’t fail) (using `describe.skip` from Mocha), then I pushed them up and added this comment to the issue:
Make it is easy as possible. Say exactly where the code needs to go and recommend a good approach.
The hard part of getting into open source for the first time isn’t the implementation of a feature, but figuring out how to actually contribute code.
So I explain exactly what to do in the issue, and then I blasted it out on Twitter, Gitter, and Slack:
It wasn’t long before I had several people reach out to me on all three mediums asking if they could take a swing at it. Finally with this PR, Stephen Bluck took his first step into the open source community.
It felt awesome! So I looked for opportunities to do this some more. I’ve had the chance to do this three more times and it’s been rewarding for both me and the contributor each time. The project now has a first-timers-only label for this purpose. Shoutouts go to Douglas Mason, Devan Beitel, and Brian Macheski for taking up the challenge. For those of you who haven’t had a chance yet, don’t worry, there’s definitely more to come…