He shows us three kinds of (more or less) open source projects.
Once upon a time there was an “open source project” called the facebook SDK. Basically it just stopped working one day and nobody could help, despite offers for help on the issue tracker. Hacker news got wind of it and it was on the front page for a while. Facebook’s reaction? Disabling the issue tracker… (Later on they fixed it).
That’s not open source, that’s public source. Often it is abandoned due to loack of interest, change of focus or so. The motivation for having it as open source simply is not clear.
Kenneth is the author of requests. An open source project, very succesful. But all the decisions are made by Kenneth.
That’s really more of an dictatorship project. A totalitarian BDFL that owns everything. The dictator is responsible for all decisions. Requests’ values lie in its extreme opinions. If he’d involve more people, the value would be dilluted. There are drawbacks. A low bus factor. High risk of burnout: Kenneth is the single point of failure.
Be cordial or be on your way. As a user, you need to keep all your interactions with the maintainer as respectful as possible. The maintainer put a lot of work in it and they don’t owe you any of their time.
As a maintainer, you also must be cordial. Be thankful to all contributions. Feedback is the liveblood of your project, even the negative. You’ll need to ignore non-constructive comments. Be careful with the words you choose, sometimes contributors take what you say VERY personally. You might have to educate your users. And: a bit of kindness goes a long way.
Sustainability is almost the biggest challenge. Don’t burn out. Try to get others to help.
He quotes Wes Beary: “open source provides a unique opportunity for the trifecta of purpose, mastery and autonomy”. Pay equal attention to all of these three. Learn to do less, focus more on your purpose, for instance.
Learn to say no. People ask for crazy features. Or they submit quite sane pull requests that, if you allow them all in, makes your project slow and unfocused. Kenneth wants as few lines of codes in his project. Negative diffs are the best diffs!
Open source makes the world a better place. Don’t make it complicated!
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):