
【开源生态60问】——什么是内源,为何在企业中推广内源?
1. 内源的定义与核心特征
内源(InnerSource)是指在组织内部采用开源软件开发的最佳实践,并建立类开源文化的一种策略,用于开发非开源或专有软件。内源由Tim O'Reilly于2000年提出,初衷是将开源社区的高效协作模式引入企业内部。内源的其核心特征如下。
-
开源文化的移植:基于开放式协作原则(平等、精英领导、自组织),允许企业内部的员工跨部门贡献代码、文档或解决方案,打破传统部门壁垒。在企业内部打造“社区”,而不是原有的、金字塔式的组织架构,从而实现更加宽松与自由的交流与协作氛围。
-
技术实践标准化:强调持续集成/持续部署(CI/CD)、自动化测试、代码复用和透明化协作流程,通过工具链(如内部代码托管平台)实现高效开发。首先是代码在内部平台集中存放,然后是开发协作在统一的平台上进行,目标是实现基础设施、工程实践、代码模块的复用。
-
目标导向:相较于外部的开源社区,内源更加强调持续度量,持续优化,并不断追问“这些实践为企业带来了哪些价值”?在以“共享、复用、协作、学习和自动化”为明确目标的指导下,提升软件质量、加速创新并降低重复劳动。
2. 企业推广内源的核心动因
(1) 创新能力增强:打破壁垒,加速协作与创新
传统部门墙阻碍了知识和创意的流动。研究显示,83%的公司受到操作孤岛的负面影响,97%承认孤岛对公司绩效有负面影响(来源:Together Mentoring Software)。内源通过默认开放代码库和开发过程,让不同团队的工程师能轻松看到、学习甚至改进彼此的成果。这直接打破了信息孤岛,使创新得以加速。
(2) 软件工程改进:提质增效,降低成本与风险
内源的核心实践,如开放的代码审查和鼓励复用,直接提升了软件质量与工程效率。更多双眼睛审查代码(即使来自其他团队)能更早发现缺陷和安全漏洞。更重要的是,工程师可以轻松找到并复用内部已有的可靠组件,而非重复“造轮子”。某大型企业的一个50人的研发团队,内部采用开源社区的同行评审实践,使得后续版本的“bug复现率”下降了30~40%。而来自PayPal的案例则表明:他们的ALM(应用程序生命周期管理)项目,在引入内源方法之后,不仅可以在不到一年的时间内实现15个主要功能,包括容器化和数据库即服务,而且还能够开始重构ALM以过渡到平台即服务。 在与各个团队合作之后,该团队创建了一些令人惊奇的开放标准文档, 让我们看到开放文档带来的效率提升。(来源:https://innersourcecommons.org/zh/learn/learning-path/product-owner/03/)
(3) 人才发展提升:赋能员工,构建韧性组织
内源为工程师提供了超越本职团队的学习和贡献舞台。他们可以参与感兴趣的内源项目,学习新技术和业务领域,通过有价值的贡献获得更广泛的认可,提升成就感和参与度。这加速了人才成长。同时,项目的代码、文档和决策过程对内部开放,极大简化了新员工的入职熟悉过程。知识不再集中在少数“关键人物”脑中,而是沉淀在内部社区之中。以沃尔玛的内源实践为例:“沃尔玛推行开源的开发方式之后,对开源社区成果的使用和回馈行为还帮助他们吸引了许多技术人才。在他们准备录用的候选人中,50%手中还握有Google、Apple、Facebook、LindedIn或其他硅谷著名公司的Offer,可是最终这些人中有70%还是选择了沃尔玛。King把争夺人才胜利的原因归功于两点:一是小而专的团队,二是开源。“大家都对我们已经取得的成就非常赞赏,同时也希望如同在创业公司工作一样。”(来源:https://opensourceway.community/posts/innersource/use_case_of_innersource/)
(4) 奠定开源基础:内通外达
成功的内源实践,实质上是在企业内部培养开源文化和协作模式。员工熟悉了代码开放、同行评审、社区贡献和基于共识的治理流程。当企业战略性地需要参与或主导外部开源项目时,这种文化、流程和人才储备就成为强大的基础。华为、微软等大型科技公司在深度投入外部开源生态前,都经历了长期的内源实践,使其在合规、协作、代码管理等方面具备了顺畅过渡的能力。内源是安全可控地锻炼“开源肌肉”的有效途径。
3. 如何解答那些对于内源的质疑?
虽然已经有很多实践案例证明内源对于企业的价值,但是依然不乏对于内源的质疑。
(1) 内源效率低下,事实上是在期待着员工用业余时间多打零工
的确,在很多996严重的公司,我们很难想象员工还有业余时间,为公司里的其他项目做出贡献。以至于很多企业的内源项目,基本上无法获得跨部门贡献,使得内源的“加速协作与创新”的承诺,成为一句空话。但是这正是内源希望推动解决的问题。如下图所示,一个企业的员工研发效率低下,通常受限于他们的自身能力,而想要提升员工的研发能力,则需要他们激发活动,主动学习、交流、分享,无论是在企业内部社区的交流分享,还是在外部社区的沟通与协作,都需要他们有起码的业余时间,否则能力提升无从谈起。于是,这就陷入了一个死循环,因为慢所以累,因为累所以没时间,因为没时间所以更慢。而内源实践,就是希望打破这样的死循环,帮助更多的研发人员,得到成长的机会。

图3-7:研发活力与研发效率、研发能力的关系
(2) 内源绑架开源精神而不是汲取开源精神
这个说法似是而非,因为它将推行内源过程中可能发生的乱象,总结为内源的本质必然导致的问题。如果一家企业一方面不遗余力的推行内源,另一方面却对于开源从不参与,从不贡献。这当然会被视作一种“过于利己,毫不利人”的行为。但是,一家企业如果真的想要获得推行内源的收益,也必须实现内源<->开源的双向互通,外部开源项目在内部有内源团队负责维护。而内部的内源项目成熟之后,有机会对外开源,以获得更大的社区/技术影响力。否则,缺乏源头活水,完全封闭的内源,就会成为一潭死水,无法为企业带来开源文化与研发模式的变化。如果推广内源的企业却限制员工在开源社区的贡献,就会受到类似的批评:“内源以牺牲 (对外部) 开源为代价”,这都是非常短视的行为。
(3) 期待内源项目转化为开源,为何不是直接开源
这是另一种相当常见的质疑,我会称之为“开源激进主义”。因为我始终不认为100%开源对于企业来说是符合其商业利益的选择。而企业如果一心做公益,却不顾自己的商业利益,这样的开源也不会长久。我更加赞同企业在深思熟虑之后,做出符合自身长期战略的开源,这样的开源,也会有更好的持续性。否则一阵热闹之后,人去楼空,原厂不再维护,社区也难以接手,就会成为典型的“烂尾开源”。
总结
越来越多的企业开始意识到内源的价值,也开始积极的尝试引入内源实践。虽然不可能做到“一用就灵”,获得立竿见影的成效,但是,内源的确应该成为企业开源战略的重要组成部分。在具体的推行过程中,难免会遇到各种困难,推荐阅读 https://innersourcecommons.org/ 网站的众多优秀实践案例,以及由国内志愿者翻译的《开源治理良策》一书。
转载自 庄表伟 阅读思考与生活 【开源生态60问】——什么是内源,为何在企业中推广内源?


