May 11-12 ROSS conf (Ruby Open Source Software) took place in Amsterdam. 6 open source project maintainers shared their thoughts and work with the conference participants and ‘camera guy’ Joe Lee. Below we transcribed the best bits from the video interviews we published.
Introducing the maintainers
Katrina Owen maintains Exercism.io, a project that allows people to practice programming (in a new language). Michal Papis maintains RVM (Ruby Version Manager) and likes open source because it gives him the freedom to push a project in the direction he chooses.
Noah Berman switched from being a film maker to programming. Attended the Turing School of Software & Design where the curriculum is open source. “If we wanted to change something, we could go ahead and do that.” It got Noah started with open source basically from day zero. Today he is one of the maintainers of the WeTransfer public API. Hongli Lai is the maintainer of the Passenger app server. He got into open source during the ‘Linux hype’ in the late nineties. Fed up with stability issues, Linux blew his mind.
Alyssa Ross is a former maintainer of the Homebrew package manager. Alyssa got into open source frustrated with a typo in the documentation for a project, or missing syntax highlighting, and the realisation she could just go in and fix it. Tomer Brisker first heard of open source in the nineties when he took his big home computer to his university to get Linux installed and started contributing to a small project he was using back then. These days Tomer works on the Foreman project at Red Hat, the world’s biggest open source company.
The value of open source software
Tomer: "When people keep source code closed and to themselves they’ll end up just reinventing the wheel. With open source software you can stand on the shoulders of giants. Your product’s added value is the 10% of code you built on top of existing software."
Hongli: "Open source is a movement that makes the world better by releasing quality software anyone can use for free." For Hongi, the motivation to work on an open source project continuously (Passenger has been around for 10 years and counting) is both ideological and practical now that open source software is adopted by large companies and enterprises.
Michal: "With code you make sure its as small as possible and it does just this one thing. But sometimes a project grows and it no longer does just this one thing. You’ll need to think about automation so that people don’t have to think too much in order to start using it." That's what got RVM started.
Much more than code
If there's one thing all 'our' maintainers agree on, it is that maintaining an open source project is so much more than writing software.
Katrina: "Most of the work involved has to do with people. Figuring out how to describe problems in a way that they appeal to people so they’ll pick those up, learning how to delegate - which I still don’t quite know how to do - and how to break problems down in small enough pieces."
Michal: "My biggest challenge maintaining an open source project is that you need to be the whole team, the project manager, product owner, you take on multiple roles."
Noah: "You can often spend more time communicating than writing code. Which I think is good, I think the code that you write is then better, you thought things through, considered other view points."
Project management for me has been about accepting the fact that I will fail, most of the time. I can’t keep up. I can’t know what’s going on in my project most of the time. Whatever happens happens.
— Katrina Owen
Hongli: "Open source is about people and collaborating. What makes a successful open source project is that the project is kept alive by a community as opposed to a single person. Only if you have a large userbase will you have a large contributor base."
Alyssa: "It's much more complicated than writing code. There’s a lot of responsibility, you need to keep track of what’s happening in the project. You need to do everything in your power to make project a nice environment to be in, otherwise people aren’t going to help out." Homebrew was among the first oss projects to adopt a Code of Conduct.
First time contributers
Michal recommends for developers new to open source software, to start contributing to a project they’re already using / familiar with. To start with fixing small issues. "If you’re disappointed with a feature, make it better!" Also: "Start with a project that is used by some people already. It’s very rewarding when people are happy with what you have done."
Noah: For beginner developers it is key to get involved in open source. The goal shouldn’t be to have all your pull requests merged, the goal is to exercise working with other developers. You can’t learn in a vacuum." Advice to his younger self would be to ask more questions, earlier, and to make faster decisions.
Advice for first time maintainers is plenty.
Alyssa: "You need to approach community pro-actively. That might mean locking GitHub issues that aren’t going in any productive direction. As a maintainer of a project what you can do is use your authority and your stature to help people that don’t have all that. Someone who is new (to the community) doesn’t have a lot of confidence, they aren’t going to stand up for themselves." (A maintainer) saying “let’s hear this person out” can really help.
Tomer: "It’s one thing to put your code on GitHub and another thing entirely to built a community around it. Once you have something that fixes an issue other people are also experiencing and provide them a way to resolve it, it will start building (a community). It's on you to be responsive to newcomers and reply to a PR within a decent amount of time."
As a maintainer of a project what you can do is use your authority and your stature to help people that don’t have all that.
— Alyssa Ross
Noah: "The most challenging aspect (of maintaining an open source project) is that you have to be somewhat of a diplomat. There’s a lot of viewpoints to consider. This can be emotionally taxing."
Katrina: "If for some reason your little open source project gets a lot of attention on Hackernews or Reddit, there are a few things you can do (as a first time maintainer) to make your life a little bit easier. One of the gotchas is that you’ll close an issue with no comment. People will get very upset. Add a comment on why you’re closing the issue; it’s fixed here or we’re not addressing this as it doesn’t fit in the philosophy of the project. When people start arguing, figure out what question to ask in order to find the common ground." Dig into the question rather than joining the people-angry-on-the-internet is what Katrina recommends.
Morsels of wisdom
Alyssa: "Don’t push ahead with something you don’t enjoy working on. Because that sense of enjoyment is all the reward you’re going to get in open source software."
Tomer’s advice for new maintainers: don’t burn out. It’s a project, it’s not your life.
How to get familiar with a new Open Source project
How to win friends and open-source your software
How this Amsterdam conference generated 35+ pull requests to vital Ruby OSS infrastructure in one day