Pizza, Beer and Open Source Collaboration with GitHub
Gusty winds and 14 degree temperatures are apparently no match for pizza, beer and code.
Around fifteen people braved the frozen tundra of Chicago last week to hang out at the Flex.io office for the latest Chicago MySQL Users Group meetup. All kinds of folks from the local data community were represented – from DBAs to data scientists to BI consultants to data quality engineers.
After some time talking tech whilst sipping beverages, we were treated to a presentation by Arfon Smith of GitHub. Arfon is an astrophysicist by training, an entrepreneur by way of Zooniverse and currently heads up GitHub’s outreach to the academic community.
He spoke specifically on advancing collaboration within the open source space. But, the lessons he shared also resonate with our own experience with data projects and what we’re trying to do with Flex.io. How do you remove barriers, such that broad groups of people with varying expertise can come together and work on a common project?
Here are some of the takeaways from Arfon’s presentation:
- Remove friction. One of GitHub’s key goals is to remove friction from open source projects. Less friction equals more collaboration, which is what open source is all about. GitHub does this in many ways, from simply having a really lovely UI to making it really easy to fork projects, discuss revisions and get changes added.
- Make starting easy. Arfon used the great Kathy Sierra chart to demonstrate the “expert curve”. The key point here is that when you start something new, it takes time to move from the “I suck at this” stage to the “I’m awesome” stage. In product development, you need to get past that first stage as quickly as possible. GitHub tries to do everything it can to make it easy for a new person to get started with an open source project.
- Code first, ask permission later. I found this concept surprising at first, but it makes a ton of sense. Within the free world of open source, the best ideas should flourish. And, the best way to show your ideas work well is to actually prove it out, rather than try to talk it out ahead of time. In addition, this culture enables work to proceed in a fast-moving, asynchronous manner without holding the project back.
- Shared learning develops community. At the heart of GitHub is the concept of a “pull request”, where someone submits their code to be added into the larger project. Some of these are accepted, some are rejected and many see lots of additional revision cycles, comments and improvements. The key is that whenever a new pull request is added, the entire community learns something. Everyone benefits from seeing modifications, requests and resulting discussions.
All in all, it was an excellent session and great to see the stuff GitHub is doing to streamline the “open source way of working.” And, of course, it was also great to be part of a meetup where everyone was already putting this into practice by asking great questions and sharing their experience.
Hope to see you at the next meeting!