Anti-patterns for open source communities
If you have an open source project, below are some effective ways to not make it better.
I am writing this not to point the finger at any one project or person, but rather to share my disappointment more broadly. This kind of behavior is self-defeating:
- You use a mailing list (good!) but don’t have any sort of social code repository. An interested user suggests that you might want to try Github or BitBucket. You reply by saying that we don’t really need it; technologies come and go — why bother?
- You don’t have a public issue tracker. An interested user suggests that you might want to try it. But you don’t seem interested.
- A user finds a bug in your software. You reply by saying that a user should not do that.
- You have a good manual as a starting point. An interested user finds some mistakes and typos, so he copyedits the entire manual. He submits the doc changes (with a bunch of white-space changes from auto-wrapping the text) as one patch using Github. You say, I’m not going to accept the fixes unless you split out the whitespace changes from the rest, because the whitespace fixes make reading the diff too long. (I realize that not all pull requests can be accommodated — some have too much going on. So, I realize this example is not black and white. What I am saying is that tone and word choice go a long way when a user does take time to submit.)
- A user asks a question on the mailing list asking for an example on how to do something. You reply (which is great!) and point them to the manual. No problem — but you fall into the pattern of saying “go read the manual” instead of thinking “maybe the manual needs some more examples?”. You should be thinking “how can we lower the barriers to community contributions?” (Note: the manual is thorough but pretty dense. It does not work for everyone, even those who read it many times.)
The interested user is me. The open source project is a wonderful project, technically. The creator has responded in a timely fashion and has been civil. I do not take this for granted.
But there is something important missing. The steward of this project may not see the non-technical effects of his actions and attitude. I have detected hints of irritation from him. Which is fine — I have certainly been irritated by what I perceive as his close-minded approach. I think he is missing out on opportunities to improve the project. The project is bigger than the software and its creator; it is about the community, too.
So, I have found myself getting a little turned off by this project. In any case, I will continue to contribute documentation to the project as well as code examples as I figure things out.
Let me speculate for a moment. It could be a double edged sword to create an open source project that attracts a lot of attention. On one hand, it must feel good to create something that is so useful to so many people. On the other hand, the users do not understand it as well as you do. So, if you do not have patience and humility in spades, you might find yourself getting frustrated by the community at times. The project may give you solid geek cred, but it requires a significant time and does not pay direct financial rewards.
Update: Thu Aug 30 17:29:04 EDT 2012. In addition to the commentary here, I have addressed many of these points directly with the project. I don’t want you guys to think that I’m ranting here instead of communicating directly. I can do both! :)