打造卓越开源项目的12条原则 原创 精华
@toc
本文整理自51CTO开源基础软件学习季直播公开课《打造卓越开源项目12条原则》,更多细节,可点击链接跳转查看。
因为专注开源领域十余年,参与建设过ClickHouse、Dolphin,SeaTunnel等社区,现在是Apache基金会Member,也是Apache孵化器导师,所以常常在私下或公开场合被问及:从您的角度来看,究竟什么样的开源项目更有可能成功?如何把一个开源项目做好?近期,针对过往积累的开源相关碎片化知识进行梳理,归纳总结了打造卓越开源项目的12条原则,本次直播分享给大家。
一、全球开源潮流的分析
在分享打造卓越开源项目的12条原则之前,我们通过三张节选自OpenLogic 2022全球开源报告的三个图表,来看看全球开源潮流是怎样的。
如上二图,可以从中看到一些明显趋势及用户使用开源软件需要面临的挑战:
- 在过去 12 个月中,77% 的受访者在其组织中增加了对开源软件的使用,36.5% 的受访者表示他们的使用量显着增加。
- 79% 的受访者赞助(sponsor) 开源组织。
- 使用开源软件的第一个原因是获得创新,从而将降低成本排在第二位。补丁的安全性和可用性也排名靠前。
- 采用开源软件的第一大障碍是缺乏测试、使用、集成和支持的内部技能。
- 所有行业的开源软件的第一大支持挑战是人员经验和熟练程度。
- 使用率总体增幅最高的是开源 DevOps 工具。云原生 CI/CD 工具的采用率显着提高。
- 最令人向往的新技术是容器和 Kubernetes。目前只有 18% 的受访者使用 Kubernetes,39% 有云战略,29% 有容器化战略。
- 在所有组织规模中最高的是,41% 的小型组织拥有开源战略。
- 银行、保险和金融服务行业的 Innersource 项目数量最多。
- 只有 13% 的组织拥有熟悉开源许可的法律团队。
整个OpenLogic 2022全球开源报告内容有很多,大家能够从中了解到全球诸多开源化的趋势,更多详情可点击查看: [2022国际开源趋势如何——速读《2021全球开源趋势报告》]
二、打造卓越开源项目的12条原则
对海外开源潮流有一定了解之后,我们来看看打造一个卓越的开源项目所需要的12条原则。这些原则是基于过往的经验积累,针对开源初期规划、开源产品、开源项目推广、开源项目可持续发展这四方面进行深入探究,归纳总结而成,下面我们逐一延展开来。
开源初期规划之初心
开源成功的概率非常小,整个过程遇到的挑战繁多,明确初心尤为重要。在计划做开源项目之前,一定要做好无人问津的准备,当坚持不下去的时候,初心便是动力。
我认为,开源是一种先进的项目开发工具,可以促使某个项目在全球范围里,不用重复造轮子,并且凝聚全球顶级智慧,去集中研究打造这个项目。
所以,我觉得做开源的初心就是把这些全球领先的智慧聚集起来,并且让更多的人知道,是特别有成就感的事情。我们做开源的初心可以不一样,但是一定要有,在后面遇到到坎坷与挑战,才能秉承初心,咬牙坚持下去。
开源初期规划之协议
开源初期做规划的时候,协议是重中之重,用什么样的开源协议去开源,需要慎重取舍。开源协议可以理解为和客户之间的合同,种类不同开源项目,它们的协议也会存在差异。
如上图所示,协议大致分为两个角度,一种是当别人使了你的开源代码,并做了修改,是不是要开源?另一种是当别人使用你的服务/类库,是不是要开源?选择哪种协议,最终的结果截然不同,所以一开始就要慎重思量。
开源初期规划之周期
ClickHouse社区到中国至今,已有六个年头,事实证明前期是需要一段时间积累,这个周期大致需要一年半到两年时间。例如ClickHouse社区,从零到五百用户花费一年多时间,后期随着用户增长,才会聚集很多能力参差不齐的各种用户,找到适合的场景,最终像滚雪球一样,越滚越大,用户会如潮水一样涌进来。
还有技术的迭代周期,纵观过去一些知名开源项目的增长趋势,如下图所示:
通过这组数据,我们发现,每隔五年就会有一个新的开源项目问世,如果技术没有把握好,五年左右就会被其他项目所替代。核心理念、产品理念、核心技术、核心团队直接决定你的开源项目能否一直遥遥领先领先,也直接影响对应的社区是否能经久不衰。
开源产品之定位
在开源初期规划时候,我们明确初心、选好协议、确定周期,接下来就要开始打造开源产品了,这里也有三个原则,分别是定位、调性与团队。
产品定位必须明确,明确知道解决了哪些问题或痛点,解决的究竟是伪需求还是真实存在。不要自我感觉良好,但没用户,社区终究也不会做起来。在这里,需要用一句话描述你开源项目是什么,然后能够清楚明了的知道产品的赛道,解决的问题,产品的边界。只有痛点明确,边界清晰才有利于开源项目的扩展,如果什么都涉及的开源项目,基本上均以失败告终。
开源产品之调性
开源产品的调性是你的开源项目在解决实际问题时,主打的用户感知价值是什么?通俗来说,就是你这个开源项目究竟是做什么的。如果一开始就叫嚣这“我是下一代XXXXX,我要颠覆YYYYYYY”,凡事这样的开源项目,很难做好,因为没有自身的产品调性与价值主张。开源,需要的是全人类的创新,而不是在“内卷”。
产品需要有自己的调性,我们要像“火锅”一样做开源。为什么要像火锅呢?大家想起你这个产品,就能想到它是什么?当我们一说吃火锅,就马上想到热气腾腾的锅子,麻酱,各种肉,蔬菜,放到一起好吃且简单易做。同时,具备强大的有号召力,一说大家都想参与进去。你的产品,也要做的和火锅一样,有自己的调性,特色,以及号召力。
开源产品之团队
开源产品的团队如何组建很有讲究,比如在技术大牛与屌丝众创之间,对于整个团队而言,后者要比前者合适,因为技术大牛精力很有限,万一短时间内有事情要忙,项目也就只能搁浅。你的开源项目一定是有特别多的人参与,大部分人都在勤恳的做贡献,并真正融入到项目中去,才会有活力。团队对开源的理解力,团队的韧性,也是能否做好开源产品很关键的两个因素。
开源的创新主要来源于发动的是群策群力的力量,像用户的反馈、社区的开发者、社区外的专家等,而不是1-2个技术大牛就可以。开源,中高级的社区用户和贡献者往往会大于1-2个技术大牛,否则社区会不稳定。
开源项目推广之借势
开源产品敲定之后,我们来看看如何做推广与运营,这里也是有三大原则,分别是:借势、自传播、影响力。
要如何借势? 这里我们以ClickHouse与SeaTunnel这两个社区的兴起为例。现在,ClickHouse在国内比在海外火爆,那是因为在当年推广过程中,借了当时兴起的“用户行为分析”的势。在这种*客增长的趋势下,ClickHouse恰好适合与这个场景相契合。
而SeaTunnel之所以可以进入Apache孵化器,是因为SeaTunnel在早期是借了ClickHouse的势,因为ClickHouse是个计算引擎,但ClickHouse有个弊端,就是在灌数的过程中经常会出错,SeaTunnel恰好可以解决这个问题,延续到现在,形成了Bulk load模式,灌数到ClickHouse中极其方便。
借势往往比造势简单的多,一般情况下,也可以借基金会的势。无论Apache基金会,CNCF基金会,以及各类的开放原子基金会。
那么这些基金会有哪些“势”呢?大致总结如下几点:
- 第三方的保护中立:产权中立,贡献中立,品牌中立,协议确认
- 基金会内的生态:Apache基金会 vs 大数据、AI CNCF vs 云原生;
- 基金会内的导师:有经验的领路人,出问题时候的KOL
- 更是多个项目之间会联合Meetup,相互支持,相互发现和帮助。
开源项目推广之自传播
优秀的项目是自传播出来的,而不是通过市场PR,因为自传播的概率在某个小圈子里是爆炸性的,在这里有重要的三个点:产品的口碑,人的口碑,社区的口碑。
产品的口碑,是你的产品究竟是不是真的好用,是否方便,在调性,在解决问题上是否有自己的特性,是否实用。
人的口碑,是产品背后的支持者,是否靠谱,所在的圈子里口碑是否尚佳,也包括核心团队、项目PMC项目管理团队的所有人员口碑也很重要。
社区的口碑,Community over Code,社区胜于代码,社区的氛围是开放的,还是封闭的,能够容纳不同意见的社区,还是独裁专政、就几个大佬在说话?社区的口碑好坏直接影响开源项目最终的成果。
开源项目推广之影响力
影响力这里也是三方面,分别是人、用户和社区。
一般情况下,深耕某个领域的专家做项目开源,相对更容易成功,因为他具备足够的影响力,能够触达更多的用户,找到充足的资源,促使他所负责的项目在初期就发展很快。
有相关领域专家的影响力还远远不够,用户水平也很关键,用户如果大多是来自大厂或有一定知名度,TA们影响力聚合起来就能达到出奇的效果。
社区是否加入基金会,社区里面的大咖与用户级别是怎样的,都直接决定社区的影响力。社区做的不好,不开放,没人气,不够活跃,到最后再好的代码都会付之东流。
开源项目可持续发展之闭环逻辑
开源项目想要持续发展,不能光靠开发者为爱发光,还是需要更多专职开发者,光靠爱好者贡献绝对不行,毕竟大家还是要养家糊口的。
对于开源项目能否可持续发展,你的软件保证体系、商业公司生态、以及商业模型都是决定性因素,这中间的闭环逻辑要想明白。
开源项目可持续发展之商业化
商业化对于开源项目可持续发展来说是必要环节,现在开源在全球范围里,开源项目的商业化逻辑可行性已经过验证,答案是肯定的。一般商业化基本上遵从四大模式,分别是Open-Core 开放核心
、Professional Services专业服务
、Hosting 托管服与Marketplaces 市场
。当然,在实际实施过程中,公司往往会混合多种模式。
时至今日,对于成功的开源公司来说,最常见的模式是开放核心产品,且将与托管、服务作为第二和第三收入来源。如果这种组合对你的产品来说是有效的,那么它可能是一个不错的选择,不过它需要你考虑如何在商业产品和开源产品之间做出明确区分。
当然,在某些情况下,这些模型可能都不适用,你可能需要为自己产品找到独特的商业模式。除了找到一个能够让公司规模发展的模式外,关键在于所选择的模式要与产品的特性相吻合。同样,创业者和整个社区的目标和愿景也很重要。
开源项目可持续发展之社区
可持续发展的开源项目,你会发现人员、工作都是可变的,但是社区是永存的。想要可持续发展,社区不能去依赖某一个人或某几个人,也不能依赖某一个公司,一定是得能够此起彼伏的让社区更有持续的生命活力。
综上所述,是打造卓越开源项目的12条原则的概述,在分享接近尾声之时,以SeaTunnel、ClickHouse、DolphinScheduler等为经典案例,对这些原则进行了验证,更多细致内容请点击观看直播公开课回放:《打造卓越开源项目12条原则》
看来开源项目在世界范围内是越来越好了,个人也看好开源项目的未来,感谢老师详细的解读。