怎么运营开源项目

少于 1 分钟阅读

Contact me

或者用邮件交流 jacky.wucheng@foxmail.com

1. 开源的动机

开源和商业本来不矛盾,某种意义上,开源只是另一种研发和营销方式,区别在于,以社区运营代替市场销售。

通过开源能得到什么?

  1. 品牌宣传
  2. 吸引人才
  3. 通过社区提升产品质量

2. 成功开源项目的核心要素

  1. 具有凝聚力的社区
  2. 高质量的代码
  3. 具有宣传效力的品牌

3. 涉及到的工作

3.1. 产品定义

  1. 开发该产品的目的是什么?
  2. 主要有哪些产品功能?分别是为了解决什么问题?
  3. 该产品的使用者是谁?
  1. 在工商局注册商标/Logo
  2. 申请专利(专利和开源这两件事不冲突)

3.3. 许可证

社区常用的许可证有

  1. MIT License
  2. Apache License
  3. GNU GPLv3

尝试开源的初期,我们更偏向于Apache License.

3.4. 官方网站

  1. 自建网站
  2. 托管在Github
  3. 托管在国内的Coding.me

为了将代码和网站统一存放,且使用社区最流行的做法,我们偏向于托管在Github。

3.5. 代码

  1. 项目的代码完整。做到一键构建,如果达不到,写明构建步骤。
  2. 提供demo和使用方法。对demo的要求是,copy-paste就可以运行。
  3. 代码规范化,符合本语言的社区规范,删除任何敏感信息或者商业信息。
  4. 保留最基本的CONTRIBUTE.md和README.md。

3.6. 文档

社区里流行的托管方案有

  1. https://www.gitbook.com, 文档语法支持
    1. Markdown
    2. AsciiDoc
  2. https://readthedocs.org, 基于Sphinx,文档语法支持
    1. reStructuredText
    2. Markdown

我们更偏向于gitbook,可以跟Github很好的集成。

3.7. 交流社区

  1. QQ群
  2. 微信群
  3. 论坛

前期我们偏向于QQ群,后续社区发展起来后可以引导到论坛。

4. 衡量开源社区的指标

  • 活跃度
  • 贡献者规模
  • 表现
  • 人员流动
  • 多样性

通过Github Graphs能获取到这些数据。

5. 商业公司运营开源软件易犯的错误

  • 期望人们来为你的项目贡献代码。不能简单以为将代码open了,就会有人来贡献,还有很多工作需要做。
  • 对于自己的产品是有选择的去开源。这种半开半闭的行为,很容易让社区反感。
  • 忽略文档的重要性。不写文档,或者文档跟不上最新的代码。
  • 采用了简单粗暴的商业模式。免费奉送代码然后销售技术支持,这不是正确的方法,正确的方法是构建品牌。
  • 重复造轮子。开源组织若想壮大就需要尽量避免构建冗余的解决方案,否则的话,项目很难在社区里突出。

6. 运营开源项目的几个原则

  1. 开源的核心是协作,建立正确的心态。
  2. 社区运营的重要程度等同于或者超过代码本身。
  3. 选择合理的开源许可证,保护所有人的贡献成果。
  4. 建立小型的,独立的小项目,不要搞大项目。
  5. 保持开放的态度,让贡献者成为维护者,让维护者成为负责人
  6. 保留权利将表现糟糕的人踢出局。
  7. 保持愉快的社区氛围, 避免政治问题。
  8. 在商业公司运营开源项目,如果业务和开源发生冲突,以业务为主。

7. 认清开源的不如意之处

  1. 开源软件的开发速度(甚至质量)尝尝不能令人满意,常常会走弯路。
  2. 开源软件相比比原软件更难做到“设计一致性”或者“概念一致性”,时间/空间使此问题恶化,系统过大导致盲人摸象。
  3. 千般不如意,但终归向好。虽然慢,走弯路,但是仍然往好的方向发展。

任何事物都不是完美的,开源也是,调整好心态。

8. 参考资料

关于如何选择许可证,参考

  1. http://choosealicense.com/
  2. http://choosealicense.com/licenses/

Markdown参考资料

开源运营和参与方法