开源项目运营经验谈
原文 http://www.infoq.com/cn/news/2015/05/GitHub-Brian-Hyder
从GitHub的用户基数来看,开源社区中有超过850万人在向开源软件做贡献。 Brian Hyder 是 PencilBlue 的联合创始人兼首席技术官。近日,他根据自己运营开源项目的经验,探讨了如何吸引开源社区成员为项目做贡献以及如何确保项目的正常运转。
Brian认为,开源项目运营可以归结为以下三个方面。
首先是明确项目愿景。通常,人们为项目做贡献,是因为该项目要解决的问题同他们要解决的问题一致。而且他们会希望,项目目标与他们的目标一致,而 不仅仅是满足他们的即时需求。因此,非常有必要在README中明确描述项目愿景。但这还不够,为了使潜在的用户和贡献者对项目有信心,项目运营者还应该 提供一个路线图。路线图上的时间不宜太具体,因为有时候用户反馈会导致项目运营者调整开发的优先级。比如,“多媒体服务将在12月份完成”要好过“多媒体 服务将在12月份第二个周完成”。另外,贡献者/用户越多,项目愿景的要求就越高。项目运营者需要选择一个对项目而言最好的愿景,而不是对于个人而言最好 的愿景。总之,项目必须满足用户的需求。
其次是制定项目贡献流程,确保贡献者总是在项目愿景范围内做贡献,保证代码的可维护性以及减少不必要的审核工作。以下是Brian提供的一些建议:
- 每个问题或特性创建一个分支
- 每个分支的名称均要包含问题编号
- 确保针对分支进行了所有的单元测试
- 尽量不要合并自己的pull请求
- 注明为什么采用那种方式,让pull请求成为一个学习过程
最后是要带给人良好的感觉。网站、文档及README会给人第一感觉,它们可能会影响人们对相似项目的选择。代码质量确实可以体现出项目优劣,但 人们在选择时通常不会首先研读代码。人们的贡献是项目的脉搏,脉搏稳定也有利于项目的长远发展。另外,可以利用一些工具增加项目的透明度:
- Travis CI :提供持续集成
- Coveralls :提供代码覆盖
- Code Climate :提供代码分析
- David :提供依赖分析
除了相应的功能外,这些工具还提供了徽章,标明了项目所处的阶段。这可以使其他人对项目运营者的代码能力产生信心。