【开源生态60问】——企业应如何制定开源战略?

【开源生态60问】——企业应如何制定开源战略?

Yinchunyuan

2026-03-02 发布8 浏览 · 0 点赞 · 0 收藏

开源战略是企业经营战略的一部分,需要服从企业的整体经营战略,并应该始终从经营战略的角度进行思考。制定并执行战略的常见思路是:评估经营状况,明确战略目标,搭建执行组织,具体执行与度量。用于制定企业的开源战略,同样适用。

1. 评估经营状况

正如上述关于开源治理的讨论(第23问),企业应该从使用开源、回馈开源以及主动开源三个层面考虑问题。在评估企业的经营状况时,也应该以上三个层面出发,回答以下三组问题。

(1) 使用开源:企业首先需要对于自身的开源软件使用情况,做到心中有数。企业用到了哪些开源项目?是内部直接使用,还是在内部的软件中依赖开源软件,还是在可能对外销售的商业产品中依赖开源软件?用到了同一个开源软件的哪些不同版本?是原样使用还是修改后使用?这些开源软件是否存在公司内不同团队,都在使用同一开源软件的情况?这些开源软件为公司带来了多少价值?带来了哪些风险?又引入了多少必须履行的合规义务?这些开源软件背后的开发社区的构成情况如何,是否掌握在某些单一的企业手中?那些开源软件的相关贡献企业,与自身是竞争关系、合作关系,还是竞合关系?在社区里是否存在其他同类开源软件,是否应该考虑替换,或者作为备选方案,持续关注?

(2)回馈开源:在回答了第一组使用开源的相关问题后,自然能够梳理出企业重视对哪些开源软件的社区回馈工作。必须履行义务向社区回馈的开源软件有哪些?从企业自身技术发展的需要,应该主动参与社区建设的项目有哪些?一旦决定回馈社区,企业的哪些源代码会被提交到社区?社区里的哪些企业会因此受益?

(3)主动开源:属于开源商业模式相关的范畴,参见上一问题(第25问)。开源战略与开源商业模式是一种包含关系,或者可以是:大多数企业的开源战略,就是围绕自身的开源商业模式,制定更加详细的战略与计划。

2. 明确战略目标

企业的开源战略目标,通常有以下几类,也可能存在多目标并存但侧重不同的情况。

一个常见的目标是降本增效。通过采用开源软件,企业能够有效降低在软件许可上的采购成本。同时,借助开源社区的资源和技术,企业内部的开发流程也能得到加速,提升整体效率。

技术创新也是关键驱动力之一。开源社区汇聚了全球的开发者和前沿思想,参与其中能让企业更快速、更直接地接触到最新的技术趋势,比如人工智能或云原生技术,从而加速自身的技术更新和突破。

开源还可以成为一条有效的商业化路径。企业选择将核心产品的源代码开放,能够吸引大量用户和开发者,建立广泛的用户基础。在此基础上,通过提供专业的增值服务、技术支持或企业级功能,实现商业价值的转化,Red Hat的OpenShift模式就很好地诠释了这一点。

提升生态影响力、构建整个生态系统是许多技术领先企业的追求。主导或深度参与重要的开源项目,有助于企业建立行业技术标准,显著提升自身在技术领域的品牌声誉和话语权。像谷歌推动Kubernetes、阿里巴巴贡献Apache Dubbo,都是这方面的成功例子。着眼于通过开源引领整个行业的技术发展方向,汇聚各方力量形成强大的生态合力,最终借势引领行业发展。这可以说是开源战略的最高境界之一。

3. 搭建组织与制定政策

要成功实施开源战略,企业需要搭建相应的执行组织,并构建清晰的组织架构与治理机制。

首先,组建一个开源项目管理办公室(OSPO) 是常见的核心举措。这个办公室将负责推动战略的落地执行,具体工作包括评估引入的开源项目、管理与开源社区的协作关系,以及管控使用开源带来的法律合规和安全风险。为了确保治理工作的有效性和一致性,围绕开源的使用、贡献和发布,制定清晰的政策和流程也是必不可少的基础工作。

同时,成立一个跨职能的开源委员会也非常重要。这个委员会通常需要法务、技术研发、安全部门和产品负责人等关键角色的参与。委员会的核心职责是共同制定开源相关的关键政策,并对这些政策的执行情况进行监督,确保各部门协同一致。

OSPO与开源委员会,前者是实体团队,而后者是虚拟团队;前者是执行团队,而后者是决策团队。在实际的职能与分工方面并不相同。但是不同的企业,可能有些会只有OSPO,也可能只有委员会,我们从概念上需要有所区分。

在政策层面,有几类核心政策需要重点制定:

  • 开源软件使用政策: 这需要规范企业选用开源软件的流程,重点考量因素包括许可证的兼容性以及必要的安全审计。

  • 开源贡献政策: 必须明确员工参与外部开源社区(例如贡献代码或加入基金会)的内部审批流程和要求。

  • 内部项目开源发布政策: 对于决定将内部研发项目开源的情况,需要规定标准化的发布流程,这通常涉及代码扫描清理、符合要求的文档撰写等环节。

4. 具体执行与度量

在具体执行层面,采取渐进式策略通常更为稳妥。企业可以优先选择风险较低的项目进行试点,积累经验后再逐步扩大开源投入的广度和深度。同时,保持灵活性,根据市场的实际反馈和技术的演进趋势,对战略进行动态调整至关重要。比如,初期可以通过向已有项目贡献代码或者赞助社区活动来熟悉开源运作,待到时机成熟,再考虑开源自有核心技术以增强市场竞争力。

开源战略的成功离不开内部的高效协作,尤其是在跨部门之间。一个基础的工作是进行软件识别,梳理清楚各个部门都在使用哪些开源软件,并建立统一的共享资源库进行管理。同时,积极促进最佳实践的分享也非常重要,鼓励不同部门(例如IT部门和开发团队)交流使用开源工具的经验、遇到的挑战以及解决方案,共同优化开源工具的部署和使用效率。

管控风险是开源战略执行的核心环节,需要建立全面的框架。法律与合规风险、技术风险在第23问已经详细讨论,而社区治理风险往往容易被低估。为参与或主导的开源项目设立明确的《贡献者公约》,规范社区成员的行为准则,有助于维持社区健康,避免因分歧导致社区分裂(历史上Node.js与Io.js的分叉就是典型案例)。另外,要警惕陷入“指标陷阱”,单纯追求Star数量等表面指标可能导致低质量贡献泛滥,真正值得关注的是补丁采纳率、问题解决效率等反映社区健康度和贡献深度的指标。

工程能力建设方面,在第23问的“基础设施与IT工具”一节已经有所讨论,除此之外,从数字化运营的角度考虑,为对外开源的战略级项目,建立一套辅助运营的数字化工具,也是非常必要的。这方面华为的OpenHarmony与openEuler都做得非常不错。

在工程能力建设的基础上,合理的指标才能够被采集、统计和展示,从而成为战略执行所需的度量工具。详见第二章第14问。

总结

越是大型的企业,越是会同时存在大量使用开源,经常需要回馈开源,甚至有多个重点的对外开源项目的情况。还可能会出现,一开始是使用开源,然后决定要部分回馈开源,再后来决定主动将整个项目对外开源,这样的演化过程。制定开源战略,就需要通盘考虑政策的一致性,项目演进阶段的延续性,以及企业对外技术与品牌形象的一致性等问题。是否捐赠项目,捐赠到哪个开源基金会,希望围绕开源打造何种生态联盟,则是更加复杂,也更加难以回避的战略挑战了。

转载自 庄表伟 阅读思考与生活 【开源生态60问】——企业应如何制定开源战略?

请前往 登录/注册 即可发表您的看法…