On Saturday, February 4th, I was fortunate enough to get the chance to spend my day attending and speaking at Open Source 101 in Raleigh, NC. Open Source 101 is a one-day conference for developers who are new to Open Source and is run by the awesome team behind All Things Open. The focus of the conference is to help attendees learn how to participate and benefit from Open Source software. Looking around the room during the opening keynote talks, it was hard not to be impressed by the over 500 attendees who had chosen to spend their entire Saturday at this inaugural event. I was honored to be included as a speaker alongside such a highly respected group of speakers.
My presentation cheekily entitled “Create your first open source project the ‘right way'”, was designed to provoke conversation around the minimal things that developers can (and should) do when open sourcing their code. Although I have spoken many times about different hard skills in software development, this is the first time I have tackled the softer skills related to building a community around Open Source software and I relished (and was honestly a bit terrified of) the challenge.
Having worked in and around Open Source for the last seven years, I have developed some thoughts on what it takes to create a good Open Source project (beyond simply writing solid code). For the presentation, I boiled these thoughts down to the following eight ideas or recommendations:
- Pick the right license for your project
- Pick the right host for your project (Github, Bitbucket, Codeplex, etc.) that has the tools you need to build a community around your project
- Write good, solid documentation that explains clearly the two most important things about your code: what it is and how to use it
- Keep living documentation of your code through issues whether it be bug reports, ideas for enhancements, questions, or requests for help
- Write unit tests for your code (striving to maximize coverage) and keep the unit tests current as you write new code
- “Release early and release often” – even if all you are releasing is a script, package your code and documentation up, put a version number on it and release it
- If you want people to use your code, build community around your code, or just learn something from feedback, then ask for help
- And of course, be gracious in accepting help when it is offered
Of course, it takes more than simply following these eight guidelines to ensure a project is a “success”, however neglecting too many of them nearly guarantees failure.
When I first got word from the conference organizers that my presentation had been accepted, I immediately set to work on filling in the blanks of the abstract I had submitted. Not long into a first draft of an outline, I started thinking about the slides and how I would convey my story visually. And then, I had a brilliant idea (one I freely admit to stealing) — I would hand draw my slides! Over the past several years I have seen a handful of presenters who used hand drawn slides and each time, I appreciated their effort and remembered it more than the standard “corporate” slide deck.
“How hard could it be to hand draw twenty slides?” I thought. It turns out that it was actually pretty hard. The biggest struggle I experienced was simply not trying to make each slide a “work of art.”
In the end, I gave my presentation to a friendly and engaged crowd. There were good questions about the material and some really nice compliments on the slides. One woman even told me that my “bug” was now the background image on her phone. Hopefully, everyone left with some new ideas on how to make their future Open Source efforts more fruitful.
If you are looking for Open Source conferences to attend or speak at, I can’t recommend highly enough All Things Open and Open Source 101. Todd Lewis and his team do an amazing job at putting together events that have an embarrassing richness of content in a welcoming and inclusive environment.
My presentation, Create your first open source project the “right way” is Open Source material released under the Apache 2.0 License. You can find the full presentation on Github.
You can get more information about Basho’s Open Source community initiatives at the following links:
Please reach out via twitter with any feedback.