What Makes the Open Source Project BeeWare Sticky for Sponsorships and Contributions
April 26, 2016 | Robert Gibb
In February 2016 our director of developer relationships, Justin Dorfman, came across an article about a programmer’s journey to becoming an open source contributor. The programmer, Ankush Thakur, talked about his experience contributing to BeeWare and how its creator, Russell Keith-Magee, took him under his wing.
“Russell has been a godsend all the way,” Ankush wrote in his article. “Email by email, my questions are getting answered. As I write this, four of my commits have already been merged into the main project.”
The relationship Russ had with Ankush struck Justin as uncommon. Sure, creators of open source projects collaborate with their contributors all the time, but Russ was going beyond collaboration. He was mentoring his contributors.
Never contributed to an open source project before? Would you like to? We’ll gladly mentor anyone who wants to get involved.
— PyBee (@PyBeeWare) April 13, 2016
As our guy at MaxCDN responsible for finding open source projects to support, this idea of mentoring first-time contributors intrigued Justin. So he checked out BeeWare’s website, and he liked what he found: a collection of super-useful projects for developing, debugging, and launching Python software. He immediately knew this was something MaxCDN needed to support.
The notion of first-time contribution was also extremely timely for Justin. In his OSCON talk What Comes After Git Push on May 19, 2016, he’ll be talking about different ways you can contribute to open source projects without even knowing how to code.
What Made Us Want to Sponsor BeeWare
BeeWare has a ton of character, and this character isn’t a happy accident – it’s a product of passion, good-heartedness, and a dedication to open source. The character of the project was shaped by Russ and it evolves in positive ways as the BeeWare community grows.
Right when you hop on the BeeWare site, you know something good is happening there. Everything from its code of conduct to the project’s artwork gives open source contributors and ordinary folk like myself a great first impression.
When I asked Justin what made BeeWare so interesting to him, he told me it had a lot to do with the positivity behind the project. To him it was evident that BeeWare is a place where first-time contributors can feel comfortable and challenged at the same time.
It even has projects named VOC and Batavia that are specifically suited for beginners. Those new to open source can get mentored by Russ and get their name on a rising project when they make both code and non-code contributions (documentation, material support, etc.)
The idea of recognizing non-code contributions in open source was originally raised by Leslie Hawthorn and her initiative Let’s Build a Hat Rack. It’s since been repeated on many stages by Katie McLaughlin who’s a co-maintainer of the Batavia project.
— PyBee (@PyBeeWare) April 23, 2016
Before reaching out to Russ regarding funding, Justin had only experienced the positivity of the project from the outside (the website, GitHub repositories, Ankush’s article, etc.). He was impressed already, but Russ’s response to his initial email regarding funding impressed him even more. After proposing that MaxCDN provide stickers to BeeWare so Russ could spread awareness for the project (Justin loves stickers), Russ proposed something different.
Instead of spreading awareness with stickers, Russ wanted to spark engagement with challenge coins – a tangible item that originated during WWI to prove membership and enhance morale. Russ wanted to bring this honorable military concept to the open source world.
Russ’s proposal confirmed that BeeWare was a project more than worthy of joining the likes of those on our open source page. Not only did Russ exercise the character Ankush referred to in his article; he also had the capacity to think outside the box.
“I think this might be the start of a new tradition,” Justin said to Russ after hearing about the challenge coins.
And the challenge coins proved to be a success: When Russ was attending DjangoCon Europe 2016 as a speaker, people were coming up to him and asking how they could contribute. He even gave out his first two coins there.
— PyBee (@PyBeeWare) April 2, 2016
How Russ Made BeeWare Buzzworthy
As I became more interested in Russ’s story and project, I asked him to explain how he created the buzz around BeeWare, how he made it sticky like honey for sponsorship, and how he attracted contributors of all kinds. As a marketer, this interested me.
Here’s what Russ said:
BeeWare is an umbrella project.
Beeware covers multiple related projects. It’s not just a single code repository. This means I don’t have to fight for an audience every time I do something new. I have a pre-prepared audience ready to go.
He actively solicits first-time open source contributors.
I’ve been a member of the Django core team for almost 11 years. In that time I’ve lost track of the number of people who ask me “How do I get involved in open source?” Django as a project hasn’t ever been very effective at answering that question, so I decided to address it directly with BeeWare.
With BeeWare I decided that the best use of my time is as a force multiplier. I need to write the code myself to handle the hard problems – and just for my own sanity – but I’ve also committed to answering any question from a newcomer. I’ve embraced the idea that there’s no such thing as a dumb question and everybody has to start from somewhere. An expert in one field will often feel like an idiot in another.
My theory here is that if I can seed the pool with lots of enthusiastic newcomers, in the hopefully not-too-distant future I’ll have an active development community who are in a position to do the same for the next generation.
He flags tickets for beginners.
I specifically flag some tickets as areas where first-timers can help. The VOC and Batavia ticket trackers both have “first-timer” flags.
He rewards contributors as much as possible.
This is an offshoot of something Django did when I joined the team and I’m taking it to the next level.
Back in the day, Django used SVN, so no matter who wrote a patch, it was one of the core team members that got the commit message. However, the project founders made a point of putting a “Thanks to X for the patch” at the bottom of every commit message.
The feeling I got when I first saw my name in one of the commit messages is indescribable. I really felt like I had “made it.” It gave me a boost to go on to my next contribution.
Ironically, this is something that has gone away with the introduction of git. Yes, git commits are all tagged with the original contributor, but it’s an automated process. Somehow, the loss of the personal touch makes that seem a lot less significant.
So, with BeeWare, every time a new contributor gets involved, I give them a shoutout on Twitter for what they’ve done and thank them for it. And now with the challenge coins, I’m able to give contributors something tangible.
Russ at his home in Perth holding one of the challenge coins and Brutus.
He leverages Twitter to its full potential.
Since the start I’ve been very active in promoting the “brand” of the project. I opened a Twitter account for the project very early on, and whenever I do anything of interest – even remotely smelling of a milestone – I tweet about it, preferably with a screenshot, video, or link to a demo.
Another day, more VOC progress. This time, an Android app that actually does something: pic.twitter.com/lhyupw7sZo
— PyBee (@PyBeeWare) January 2, 2016
I’m also Inspired by what the DjangoGirls community does in terms of positivity. I have been trying really hard to be almost absurdly positive with BeeWare’s Twitter personality. BeeWare, like DjangoGirls, takes a really strong “yay, you’re awesome” position on everything. This has proven to be a very effective way of driving engagement.
Also, in addition to tweeting from the BeeWare account, I retweet most BeeWare tweets from my personal account. I’m fortunate that through my work with Django I’ve built a healthy following on Twitter, so this gives me a bit more reach for my message. And through constant repetition, BeeWare starts to become a project that people know about. The iconography of the bee is also part of that – a simple logo that people can attach the concept to.
I don’t only only tweet about things related to programming and open source though. For instance, whenever I see a bit of news about bees, or honey, or a meme that is bee-related, I’ll drop a post. This plays into the whole “we’re here to enjoy ourselves” vibe.
He focuses heavily on the onboarding process.
VOC and Batavia aren’t ready for prime time – yet. Despite this I’ve made sure there’s a bulletproof tutorial for getting a first couple of examples going. I also made sure that once the “user” tutorial is done, there’s a path for “contribution” as well. VOC and Batavia both have getting started documents that walk you through exactly what you need to do to go from “never seen this project” to “first pull request.”
He has a balanced attitude toward accepting pull requests.
On past projects I was a stickler about code review. If the code wasn’t right, it doesn’t get merged. That was my philosophy. But this time around I’m doing things a little different. If there are minor code formatting issues and preferences over variable naming, I’ll accept them and clean them up later. This means contributing has less seemingly arbitrary hoops you have to jump through in order to get your patch into the repo.
But of course code isn’t completely unmonitored. I try to find a balance between welcoming newer programmers and keeping BeeWare a high quality open source project. To achieve this balance I ask myself two questions: 1) Does the code do more now than it did before? and 2) Is there anything architecturally dangerous in the patch?
Now, some of this can be applied to any project. But one thing I will note is that VOC and Batavia are both in a position where there’s a lot of low hanging fruit at the moment. They’re both early stage projects and there’s a lot of “mechanical” work that needs to be done, which lends itself to onboarding new contributors because you can describe the general pattern for an improvement, then cookie-cutter the rest.
On a more established project like Django, not many of these little tasks remain. So there is almost certainly a clock on how long some of these approaches will work.
Enliven Your Open Source Project, Become a Contributor
Whether you’re trying to get your own open source project off the ground or interested in contributing to open source, Russ is the man to get in touch with. Just make sure you reach out to him before he gets too popular because, from our point of view, it seems like BeeWare is about to take off.
You can get in touch with Russ here.