开源社区构建的三大核心原则

本文深入探讨了构建和维持活跃开源社区的三大关键步骤:吸引贡献者、降低贡献门槛以及留住贡献者,并以Bugzilla项目为例分享了实战经验。

开源社区,简而言之

构建和维护一个开源社区本质上取决于三件事:

  1. 让人们有兴趣贡献
  2. 消除参与项目和贡献的障碍
  3. 留住贡献者,使他们持续贡献

如果能做到这三点,你就拥有了一个社区。否则,就没有。

反向操作:从留住贡献者开始

如果你刚启动一个项目或需要改进现有项目的社区,应该按反向顺序处理这些问题。如果在完成后续两步之前就吸引人们关注项目,他们将无法参与,即使参与了也不会留下来。实际上,社区并不会扩大。

因此,首先确保能留住现有和新贡献者;其次,降低准入门槛,让有兴趣的人真正开始贡献;最后才考虑如何吸引人们参与。

如何留住贡献者?

对Bugzilla项目来说,这是最大的挑战。一旦有人开始贡献,是什么让他们持续参与?我们如何留住他们?

作为1998年就存在的开源项目,我们拥有大量实际数据。我们通过两种方式分析这些数据:

  1. 调查所有离开的开发者,询问他们离开的原因(自由形式回答)。
  2. 绘制十年间贡献者数量随时间变化的图表,并将波动与项目采取(或未采取)的行动关联。

研究发现:

  • 不要长期冻结主干代码:每次冻结主干(例如为准备发布候选版本),社区规模会急剧缩小,解冻后需数月才能恢复。
  • 贡献者流失不可避免:调查显示,贡献者离开的首要原因是时间不足或工作变动。因此,留住新贡献者是关键。
  • 立即响应贡献:代码审核延迟(而非审核难度)是导致人们离开的主因。快速反馈(甚至简单致谢)能显著提高留存率。
  • 极度友善与公开赞赏:开源贡献者的“报酬”是认可和成就感。即使贡献不完美,也要先感谢再指导修正。
  • 杜绝个人负面行为:对贡献者的个人攻击(哪怕是玩笑式批评)会迅速驱离他们。需设立调解机制(如“社区调解员”)化解冲突。

降低参与门槛

下一步是消除参与障碍。通常最大的障碍是缺乏文档和方向。我们通过以下方式解决:

  • 标记“新手友好”任务:在问题跟踪器中标注适合新手的Bug或功能请求。
  • 建立并记录沟通渠道:提供邮件列表、IRC频道(含网页版入口),并确保核心成员活跃其中。
  • 完善开发流程文档:清晰记录代码获取、补丁提交等步骤,并确保文档易于查找(例如在网站添加显眼的“贡献”按钮)。

如何吸引贡献者?

传统观点认为,人们参与开源是因为:

  • 喜欢帮助他人
  • 享受社区归属感
  • 希望回馈
  • 认为存在问题并想修复

因此,项目需传递“需要帮助”“社区有趣”“贡献会被赞赏”“问题待解决”等信息。此外:

  • 成为流行产品:用户基数大(如Linux内核、WordPress)自然带来更多潜在贡献者。
  • 使用流行编程语言:PHP的流行助力WordPress吸引了大量贡献者。

其他方法包括技术演讲、博客宣传等“接触与鼓励”策略。

总结

开源社区如同流动的活水——总有人因各种原因进出。关键是流入率高于流出率。遵循上述原则不仅能实现这一点,还能让社区成为对所有人(包括我们自己)高效而愉快的场所。

——Max Kanat-Alexander

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计