I made my first open source contribution thanks to Marit van Dijk. She helped me get set up with the Cucumber.io repository, getting Docker running locally so I could run the app. She helped me configure IntelliJ IDEA to work with it. (I’d used it before, but not on my own laptop). I contributed some updates to the BDD documentation. It was so satisfying!
And, working full time, helping to run Agile Testing Fellowship ‘on the side”, writing and doing conference sessions (not to mention donkeys, cats and dogs) kept me too busy to contribute more. Now, for the first time in 40 years, I do not have a full-time, 40-hour-per-week job. I do have some free time! I would like to give back to the open source tools that my teams and I have used – to great benefit – for many years.
Something is in my way, though. I’m not a coder, I can’t write code on my own. I have been fortunate to do a lot of work pairing and ensembling (working in a group of more than two, aka mobbing). I’ve joined these sessions with developers and other specialists.When I’m pairing or in an ensemble and someone is “driving”, coding and testing, I can add value even without coding expertise. I do understand good design patterns, and I can spot anomalies or opportunities for refactoring. I’m told that I ask good questions which often lead to new ideas and greater understanding. Together, we prevent bugs.
When I said, “yay, I’m ready to help with an open source project, who wants to pair or ensemble with me”, friends told me that open source community members tend to work solo. These generous contributors are working on their own time, they’re spread out all over the world, they work asynchronously. They write some code (and tests, hopefully) and create a pull request. Someone reviews the pull request and eventually merges their contribution.
Help came my way!
Once again, people in the Cucumber community came to my rescue! Matt Wynne, who heads up the Cucumber open source project, organizes a “new contributors” ensemble session every Wednesday at 1:45 PM Eastern time. You don’t need to be a coder, you don’t need to know Cucumber, you don’t even have to install anything locally to participate. Matt uses a live screen sharing app which lets everyone follow along, and type when it’s their turn to “drive”. There’s a timer app that shows whose turn it is to drive and to navigate. Turns rotate on each “task”. The ensemble works on a variety of things related to Cucumber open source and its infrastructure in GitHub.
I’ve participated in three “new contributors” ensembles so far. It is a safe space, and I felt like I added value each time, When it’s my turn to “drive”, the navigator and others in the ensemble guide me. When it’s my turn to navigate, the rest of the ensemble is still there to help me. And when I’m part of the ensemble, I feel free to ask questions or point things out or discuss other peoples’ suggestions. I feel I contribute value occasionally, with a good question or a test idea. I also get to meet interesting people, and I hope I can collaborate with them in the future.
A picture is worth a thousand words, and a video is worth even more. You can watch a video of the latest New Contributors ensemble session on Twitch. (It is live streamed too, although if anyone is not comfortable with that, they’re willing to forego the video). If you’re interested, you can read more about how to join in.
I plan to continue joining the Cucumber New Contributors Ensemble every week whenever possible! I enjoy it, I’m learning a lot and feel I am contributing a bit.
I’ll continue to pursue other opportunities to contribute to open source work, whether it’s someone’s pet project that they hope to give to the world, or an established framework like Cucumber. Kind people have paired with me to install products and get them working in my IDE.
I’d like to pair or ensemble more often. Despite not working full time, I often feel too busy, or I just want to go out and enjoy the donkeys. I get shy and feel afraid to to ask for help or ask someone to pair with me. I worry that I will drag people down more than I’ll help, even though my experience shows that’s not what happens. (The things that go on in my head!) Slowing down can lead to good things! I’ll keep working at it and hope I can find ways to give back to our awesome software community – especially the communities that give us such useful tools.