怎么运营开源项目
Contact me
或者用邮件交流 jacky.wucheng@foxmail.com
1. 开源的动机
开源和商业本来不矛盾,某种意义上,开源只是另一种研发和营销方式,区别在于,以社区运营代替市场销售。
通过开源能得到什么?
- 品牌宣传
- 吸引人才
- 通过社区提升产品质量
2. 成功开源项目的核心要素
- 具有凝聚力的社区
- 高质量的代码
- 具有宣传效力的品牌
3. 涉及到的工作
3.1. 产品定义
- 开发该产品的目的是什么?
- 主要有哪些产品功能?分别是为了解决什么问题?
- 该产品的使用者是谁?
3.2. 商标,专利和Logo
- 在工商局注册商标/Logo
- 申请专利(专利和开源这两件事不冲突)
3.3. 许可证
社区常用的许可证有
- MIT License
- Apache License
- GNU GPLv3
尝试开源的初期,我们更偏向于Apache License.
3.4. 官方网站
- 自建网站
- 托管在Github
- 托管在国内的Coding.me
为了将代码和网站统一存放,且使用社区最流行的做法,我们偏向于托管在Github。
3.5. 代码
- 项目的代码完整。做到一键构建,如果达不到,写明构建步骤。
- 提供demo和使用方法。对demo的要求是,copy-paste就可以运行。
- 代码规范化,符合本语言的社区规范,删除任何敏感信息或者商业信息。
- 保留最基本的CONTRIBUTE.md和README.md。
3.6. 文档
社区里流行的托管方案有
- https://www.gitbook.com, 文档语法支持
- Markdown
- AsciiDoc
- https://readthedocs.org, 基于Sphinx,文档语法支持
- reStructuredText
- Markdown
我们更偏向于gitbook,可以跟Github很好的集成。
3.7. 交流社区
- QQ群
- 微信群
- 论坛
前期我们偏向于QQ群,后续社区发展起来后可以引导到论坛。
4. 衡量开源社区的指标
- 活跃度
- 贡献者规模
- 表现
- 人员流动
- 多样性
通过Github Graphs能获取到这些数据。
5. 商业公司运营开源软件易犯的错误
- 期望人们来为你的项目贡献代码。不能简单以为将代码open了,就会有人来贡献,还有很多工作需要做。
- 对于自己的产品是有选择的去开源。这种半开半闭的行为,很容易让社区反感。
- 忽略文档的重要性。不写文档,或者文档跟不上最新的代码。
- 采用了简单粗暴的商业模式。免费奉送代码然后销售技术支持,这不是正确的方法,正确的方法是构建品牌。
- 重复造轮子。开源组织若想壮大就需要尽量避免构建冗余的解决方案,否则的话,项目很难在社区里突出。
6. 运营开源项目的几个原则
- 开源的核心是
协作
,建立正确的心态。 - 社区运营的重要程度等同于或者超过代码本身。
- 选择合理的开源许可证,保护所有人的贡献成果。
- 建立小型的,独立的小项目,不要搞大项目。
- 保持开放的态度,让
贡献者
成为维护者
,让维护者
成为负责人
。 - 保留权利将表现糟糕的人踢出局。
- 保持愉快的社区氛围, 避免政治问题。
- 在商业公司运营开源项目,如果业务和开源发生冲突,以业务为主。
7. 认清开源的不如意之处
- 开源软件的开发速度(甚至质量)尝尝不能令人满意,常常会走弯路。
- 开源软件相比比原软件更难做到“设计一致性”或者“概念一致性”,时间/空间使此问题恶化,系统过大导致盲人摸象。
- 千般不如意,但终归向好。虽然慢,走弯路,但是仍然往好的方向发展。
任何事物都不是完美的,开源也是,调整好心态。
8. 参考资料
关于如何选择许可证,参考
Markdown参考资料
- Github-Markdown-Syntax-Guide: Mastering Markdown
- Gitlab-Markdown-Syntax-Guide
- ByWord-Markdown-Syntax-Guide
- ultiMarkdown-Syntax-Guide
开源运营和参与方法