Lessons from the first California Code Rush
We brought buggy code, dozens of open tickets and a motherlode of Cali swag to NICAR 2015. You’ll never guess what happened next.
Last week our team converged on the annual National Institute for Computer-Assisted Reporting Conference (NICAR) in Atlanta. We brought with us our California campaign finance code, dozens of open tickets, a pile of prizes and a weird idea.
The pitch was simple. Submit a patch, win a prize. The bigger the challenge, the bigger the prize. We called it the California Code Rush.
We didn’t know what to expect. Where would we set up? Would anyone pay attention? Could we convince busy conference goers to sit down and spend even a few minutes with our crappy code?
But, as usual, the NICAR crowd came through. By the end of the weekend, our movable hackathon had set up shop in nooks and crannies all across the conference hotel, pulling 200+ commits from more than 40 different contributors.
Most patches were small, from newbies making their first ever open-source commit by improving our documentation of the state’s massive database.
Others contributions were large, from experienced developers landing significant improvements.
- Eric Richardson of Southern California Public Radio developed a tool to slice sample data for unit tests.
- Vox’s Casey Miller created custom icons for each political party.
- Matt Montgomery of Deseret Digital Media improved the logging of data discarded during the database loading routine.
- Justin Myers of the Associated Press provided Python 3 support.
It was exciting to work with so many smart people. But the real highlight came Saturday night.
That’s when we showed our thanks by raffling off a motherlode of swag for the volunteers who contributed code. We gave away California coffee beans, beers, habanero and piles of street style.
By the time the conference ended Sunday, we had merged a handful of significant features, helped dozens of people make their first ever open-source commits and introduced our project to hundreds more.
Here’s what we learned along the way.
01. We had two audiences. One of the things that makes NICAR great is that it brings together a wide variety of people with a range of skills and interests.
We were able to connect to two different groups: Beginners curious to learn how GitHub and open source works; and seasoned hackers who wanted to flex their muscles.
02. We could serve both. In hindsight, the most important thing we did was arrive at the conference with dozens of tickets already defined.
The bigger ones gave the experienced hackers a concrete problem to plug in on.
The little ones — typically asking for the transfer of a table definition from the state’s database documentation into our code — offered a easy way for newbies to experience the open-source process, an effort made even easier by GitHub’s excellent in-browser editor.
03. A scheduled time and space helped. On the conference’s second day, we had four hours set aside in the “commons” area outside of the conference rooms where the traditional panels were held.
Promoting that time in the program and via social media drew more than dozen people at the start of the time slot. A TV stationed in the area allowed us to screencast a GitHub walkthrough for beginners.
Most eventually wandered off after landing their first commit and the space transitioned into a more traditional hackathon with a small group of experienced developers working quietly. But the location allowed us to draw in new people each hour as the panel sessions let out.
04. Hallway conversations often converted into one-on-one instruction. One of the best features of NICAR is spending time chatting in the hallway. The open-ended design of the contest allowed us to bring up the topic in casual conversation and, if the other person was interested, sit down and knock out a patch right there.
05. It never hurts to ask. People will surprise you. You shouldn’t underrate the intrinisic appeal of public-service software projects. People like doing good things and open source presents a great opportunity to help them do it. If you have a new project, file a dozen tickets and see who shows up.