Linux基金会企业开源指南系列之十二 ———— 企业开源战略制定

将开源提到公司战略的高度,是一件需要认真、严肃对待的事情,事关全局,怎能掉以轻心?开源最大的作用在于收获人心,但是商业公司如何收获人心这件事从来都不是谁都可以成功的。但不是不可能,现在需要做的就是提高认知。

特别声明

本文拥有创作共用授权之相同方式共享授权4.0版国际许可协议(Creative Commons Attribution ShareAlike 4.0 International License)授权许可。 开源之道独立精心翻译分享,欢迎同道中人商讨。

引言

企业利用开源主要是要理解其价值,并对开源的诸如高效、灵活、互操作性强、快速的创新等优点有足够的认识。然而,现实的情况却远远不是这样,据最新的一项关于开源未来的调查显示,参与调查的公司有半数以上仅仅实践了基本的开源管理,如社区开发、代码维护诸如此类的,距离战略还有很长一段距离。

创建开源战略,并将之诉诸文字,是意识到开源的投资回报率的重要的第一步。贵司的开源战略和管理、参与、创建开源软件的计划与计划所服务的业务目标联系起来,这将开启很多的机会并加速创新。

为什么要创建业务战略?

将贵司的开源管理纳入正式的方法论,并以战略形式来重视,是有效提高效率和减少风险的途径。无论贵司现在是否围绕开源相关制定了业务战略,但是一定明白这件事非常的重要。

增加开源投资的关键第一步是创建战略文档。这么做可以帮助贵司最大化的从开源当中获益,同时避免因错误而导致的麻烦,例如选择了错误的许可证,亦或无法正确维护代码。战略文档应包含以下几点内容:

  • 让公司的领导有意愿并积极的参与
  • 获得公司内部各级的认可
  • 促进分散的多部门组织的决策
  • 帮助个人和发明者做出更好的决策
  • 帮助围绕发明构建一个健康的社区
  • 对贵司的开源方法论进行最终的解释,并支持它积极的落地
  • 明确贵司在社区驱动的外部研发中愿意投资的地方,以及贵司将重点放在那些有增值差异化的地方

“如果你没有在开始的时候就在高层达成共识,就政策细节和流程投资达成协议往往是非常困难的,甚至是不可能的。” Ibrahim Haddad, 三星研发副总监兼开源实验室头目在其著作《企业合规性》中如是说

开源战略文档

让我们首先明确一下最终的目标,然后再来诠释一下如何才能够达成目标。你的目标就是将开源战略的所有细节都记录在案,所有人都可以随时随地查看,包括但不限于工程团队、法律团队、营销人员、各个管理层等等。该战略文档可以很好的帮助人们理解开源项目背后的业务对象,从而确保更佳的决策制定、最小化风险。

“ 在 Salesforce,我们会将内部的文档分发给工程团队,围绕开源为他们提供指导并激励他们。这会鼓励大家使用开源项目,乃至创建开源项目,让工程师们清晰明白的理解拥抱开源是公司管理层的决定,并获得完全的支持,另外,如果我们不希望工程师们使用某些许可协议的代码,或者是其它类型的开源向导,我们的内部文档均会明确的进行说明。” – Ian Varley,Salesforce 软件架构师

  • 退一万步讲,文档最起码应该做到:

解释贵司的开源方法论以及文档背后的目的。 贵司自身所追求的成功样子是什么?开源在其中将扮演何等角色?

“以 Autodesk 为例,我们新的开源方法论背后的原因是让公司迁移到云计算相关,因为Autodesk 的产品聚焦于向云计算环境的转型。现实的情况就是:‘构建在云端的技术均是基于开源的,所以必须慎重思考开源战略’。” – Guy Martin,Autodesk 开放总监(Open@ADSK).

  • 明确指出贵司的开发者如何使用开源代码: 如果代码从具有不同许可设置的项目进入您的某个产品,该怎么办?开发人员应遵循哪些接受、拒绝、例外的策略?贵司对开源开发整体的立场又是什么?一份好的战略文档应该明确回答这些问题。
  • 明确指定贵司的开发者如何贡献代码到上游开源项目,且要明确哪些项目对于贵司的业务战略很重要(且鼓励开发去做积极的贡献): 如果开发人员想要将代码从一个开源项目贡献给您正在处理的项目,但这两个项目有不同的许可证,该怎么办?开发者如何贡献方能达到一个良性的循环,即最佳的平衡?即收获和付出是称正比的。 这些考量都要纳入到战略的制定中。

“ 如果贵司的产品严重依赖于某开源项目,然而贵司在该项目并没有任何的话语权,公司也没有打算去获得领导力,那么贵司的业务就是出于严重的风险当中。” – Guy Martin,Autodesk 开放总监(Open@ADSK).

  • 为制定新决策提供指导,并鼓励计划的支持和承诺: 开源的治理是否应和技术治理分离出来?如何让员工成为开源积极的拥护者?一份良好的战略文档应该提供这些问题的答案,而且还应该将贵司对开源和围绕开源发展的总体姿态。
  • 校准贵司的业务目标和管理方式: 那种类型的开源项目与贵司业务目标相一致?
  • 提供许可证、契约文档、政策指南: API 应如何文档化?是否制定了每位员工都可以使用的贡献者许可协议?是否为贵司所开源的项目选择了最合适的许可协议?开源战略文档应将许可实践和 API 纳入。
  • 制定符合贵司的代码和想法的使用策略以及商标: 正确地为一个开源项目打造品牌对于任何发明的品牌化都同样重要,并且不应该对使用策略有任何疑问。
  • 提供开源的最佳实践: 成功的开源项目拥有繁荣的开发者社区,并且通常在商业产品中进行友好的产品化,进而为企业带来相应的利润。该如何做方能维护好这样可持续发展的良好生态?
  • 随着时间的推移,要不断回答各式各样的问题。 一份优秀的开源策略文档应该包括常见的FAQ,而且是保持更新的,随着时间的推移,应在常见问题解答中不断提供常见问题的答案。

“FAQ 应该针对用户和开发人员实际提出的问题进行解答 —— 而不是你自己认为他们需要的问题和答案,因此,所谓的优秀的 FAQ 是那些用户和开发者一看就是自己努力寻求的哪种,另外,优秀的FAQ 不是一下子完成的,而是随着时间的推移不断累积的,它们应该是保持互动的,随着时间的推移而不断更新,应随时以最佳答案报答需要它们的人。” – Karl Fogel,生产开源软件 一书作者

如何创建开源战略

制定开源战略的第一步: “决定谁应该参与到制定开源战略当中”。这也就意味着不仅要充分利用内部的业务伙伴的参与,而且还要考虑哪些外部的策略可参考、资源可利用。

外部资源

有非常多的外部资源可以帮助贵司完成开源战略的制定,而且这些资源绝大多数都是可以免费获取的。举例来说,黑鸭子公司为成千上万的公司做咨询,并帮助它们制定开源战略,而且提供关于这些主题的教程和指南。Linux 基金会所提供的额外的教育资源,也可以帮助到大家,另外还有诸如书籍:《商业化使用开源软件最佳实践》

由 Linux 基金会管理的旗下组织:TODO(Talk Openly Develop Openly的简写),对于希望就运行开源项目和程序的实践和策略进行协作的成员公司而言,它也是一个很好的资源。

由 GitHub 发起并撰写的《开源指南》,是非常不错的参考文档,涉及内容非常的全面。

Google 公司最近将其内部的开源政策文档开源,而且它还提供了一份模板,让你可以直接借鉴来创建自己的内部政策。

通用 InnerSource,由 PayPal 发起,专注于帮助公司在内部开展开源相关原则和实践,以及专有软件和基础设施开发的想法。GitHub 仓库的地址是:https://github.com/paypal/InnerSourceCommons,可以免费获得PDF电子书。

还有一个非常棒的有关开源战略的在线资源:一个叫做 Changelog的博客,其还包含了一个涵盖不同开源话题的播客,叫做: “Request for Commits.” ,该播客解决了从创建开源软件的人性方面到有关商业模式和策略的问题的所有内容。

这里提醒一下各位看官,很多软件行业或非软件行业的公司均设立开源项目部,你可以而且应该向他们学习。尽管每家公司对于开源有着不一样的需求和解决方法,你可以根据自身的情况来进行选择和调整。如Linux基金会旗下的TODO 小组,创立伊始就是为了将一些开源走在前列的公司最佳实践能够整合、分享出来。TODO 甚至还在GitHub上提供了现成的开源政策和模板,当然其本身也是基于开源模式的,欢迎你的参与和贡献。

就拿著名的通用电气公司举例,当看到这个名字,看官可能不太相信这家古老的公司和开源有什么关系,但是事实上却是通用电气在开源圈是相当重要的角色。通用电气软件拥有一个“工业级道场” —— 和 Cloud Foundry 基金会合作运营 —— 共同努力来应对来自世界上最大的工业挑战。通用电气通过和开源合作伙伴的合作受益,反之亦然。

如果看官觉得通用电气的例子不够的话,我们再来看一个近几年崛起的新型公司,基于流媒体的视频订阅公司—— Netflix,这是一家拥抱开源的现代公司的翘楚。 看官可以访问Netflix托管在GitHub的仓库,这里也是Netflix公司开源的中心。Netflix 为开源社区贡献了很多使用的工具和应用程序,涉及范围非常之广泛,从机器学习到应用编排、再到各种自己平台上的工具,这些都是在实际的可扩展的环境中测试过、验证过的。同样,Netflix 通过为开源贡献有益于其平台运行效率的提高,而且由于其在开源的不懈努力为其广泛的合作伙伴打开了大门。

内部资源

当上述这些外部的资源提供了重要的向导,而且各位看官对于自己的开源战略也有了一定的标尺,那么接下来就是考虑内部的协作了,这是制定开源业务战略的关键所在。贵司的开源战略应根据您自己独特的商业模式而量身定制,那么自己公司内部的人才是最好的信息来源。另外,你还需要照顾到所有的利益相关者达成共识,要确保所有人都在一个层面上,愿意对于预期实现的目标投入心血和努力。比如,例如,在协作过程中涉及执行领导是很重要的。 ( 在公司设立开源项目办公室对于达成内部的协作意义非凡。 本指南系列之公司如何创建开源项目办公室明确谈到:“通过创建开源项目办公室,企业可以启用、精简、组织等方式来看待开源的利用,从而直接和企业的长期业务规划齐头并进。开源项目办公室旨在成为公司级别的开源运营和架构的核心,帮助将所有必需的组件集中到一起。”。

开源项目办公室可以帮助决定各种政策,如代码的使用、分发的方式、如何选择、审计等等,而且还可为培训开发者、确保法律合规性、构建社区参与等提供指导。公司如何创建开源项目办公室还谈到:“开源项目办公室还要做公司内外部的所有和开源相关的布道和沟通”。

“ 找到积极主动、自驱力的人是获得(推进开源战略)的精髓和灵魂的不二法门。” – Guy Martin, Autodesk 开放总监 (Open@ADSK).

当在公司内部选择制定开源战略的人选是,请记住,让有资格提供项目业务和法律治理的人员以及能够提供技术治理的人员参与至关重要。举例来说,精通技术的同事对于当前的开源实践有所了解,并且也是有可能是最有资格来撰写内部贡献指南的人选,拥有商业经验的同事可能更有资格制定有关商务上的政策。同样,具有法律资格的员工最适合定义许可政策。当然,确定对开源有真正热情的利益相关者至关重要。(有关开源项目办公室的各种考虑和管理细节,请移步公司如何创建开源项目办公室,这里有着更为详尽的讨论。)

如何与所有利益相关方合作?从谈话开始,并认真倾听,那些事有效的,而那些又是无效的。你的参与方式取决于对贵公司及其现有文化有何影响。但是,在深入研究战略之前,进行研究总是百利而无一害的。

这里举个例子,有 Guy Martin 分享,当他到 Autodesk 做开放总监的时候,他向他的老板提了两个请求:“我想列出一些人,他们相信你正在尝试做什么(开源)以及为什么在这项计划上雇用我;而且我希望列出一些人,他们要么不相信它会起作用,要么可能会陷入困境。” 然后,在老板的支持下,Martin 和名单中的所有人都谈了话。反对者帮助确定了业务绊脚石的位置,支持者则是帮助 Martin 实现计划的人。

关键考量

到此我们可以开启战略文档的关键内容了,并讨论如何创建它。接下来有两件关于创建战略非常重要的考量:治理和可持续性。

这两个概念将确定贵司的开源哲学框架,决定如何运营、并最终帮助确定如何/是否可以最大化您的开源策略。

考虑事项一: 治理

在你正式制定开源战略之前,要知道在企业当中会遇到很多的流程,跨团队和部门、产品团队、IT团队等等,以及开发者使用代码或者贡献上游等。实现标准化的治理是简化和优化流程的关键所在,因为它可以让开发者能够更加积极的参与(这是核心)。同时它还可以让公司的每一位参与者都在一个水平上沟通,且为衡量目标进度和降低风险打下坚实的基础。如果每个人都遵循相同的政策和流程,那么更容易找到并解决可能发生的任何障碍。

“ 我不需要一个十个星期的流程,有着500页文档,去修复一个只需5行代码就能搞定的bug,所以,我和法律团队协作搞了一个让工程师可以自行做决定的简化流程。” – Guy Martin,Autodesk 开放总监 (Open@ADSK).

贵司的战略要具体,具体到公司内外部的治理都有的放矢,恰当的治理需要特定的政策和流程,但是也要围绕构建、部署和维护开源软件所倡导的文化进行。特别提醒的是,开源文化的特点在于透明度、开放性、以及鼓励多样化的贡献者参与。

“所有的开源项目都非常欢迎外部的贡献者,但是项目的路线图和治理对于单一公司来说非常的重要,欲要成为真正的社区驱动的开源项目,就需要在这方面下大功夫。开发者们是可以分辨出自己愿意在哪里工作。” – Joe Beda, kubernetes 联合创始人,前Google员工,Heptio 联合创始人兼CTO

治理可以有效的最小化风险。举例来说,有一些开发者愿意从网上获取一些开源工具并将之集成到现有的代码、平台或应用当中,然而,如果这一过程没有任何的监管、指南或建议的话,无疑是将公司置于安全和法律风险极高的位置,同样,开源许可证和政策可能对组织对技术和知识产权组合的控制产生巨大影响。另外,对于基于开源项目的商业版本来说,需要慎重考虑的是外部利益相关者是否应该参与治理。

还有一个人们难以察觉的治理方式,那就是内部治理的组织架构要和开源社区的组织架构尽可能的相似,用计算机的一个术语来讲的话,这样可以有效降低开发者的“上下文切换”,因为内部项目的直接参与就是上游项目的贡献。还有一个好处就是,当内部的项目最终选择开源时,就会简化过渡期,因为开发者早已适应了这样的治理模式。

“我们试图在 Kubernetes 社区中建立的一件重要的事情就是:项目大于个人或公司,什么是对项目有利的应该是单独的问题,应该从什么是对于参与项目的公司有利的区别开来。当开源项目和某个具体的公司有了紧密的联系,那么可能就会出现一些难以处理的问题。” ———— Joe Beda, kubernetes 联合创始人,前Google员工,Heptio 联合创始人兼CTO

考量事项二: 可持续性

一个开源项目成功的关键驱动力之一,就是制定战略是要围绕其它公司的商业产品会使用到这个开源项目,长期而言,可持续性的项目的成长依托于多样化的开发者社区,这些开发者的代码整合到他们的商业产品当中,商业产品获利之后再返回来继续在项目中做贡献,形成了一个正循环。目标是使良性项目能够构建能够产生利润的产品,并将其重新投入项目社区生命周期。

伙伴关系,贡献者协议和商业依赖关系可以基于公认的治理和知识产权模型推动商业和社区参与的良性循环。一个充满智慧的开源项目可以实现所有这些,贵司在在分享开源发明和货币化合作以及商业依赖方面的政策是什么?

举例来说,很多开源的工具都提供免费的在线版本,但是提供支持时收取一定的费用,那么外部贡献者通常会推进商业上提供的平台和应用程序。明智的做法是在您的战略文档中确定这些版本的不同之处以及如何对其进行控制,同时牢记控制级别可能随时间的推移而变化很大。

其它重要事项

除了上述这些重要的开源战略内容之外,这里还提一点补充。好消息是,您可以利用来自可靠外部来源的免费指南。

举例来说, 黑鸭子针对制定开源战略提供一套实用的四步实现指南

  • 定义构建开源平台和应用程序的战略
  • 定义使用开源构建的策略,如将开源工具整合到已有产品和服务。
  • 定义构建开源的战略,如鼓励贡献和参与现成的项目。
  • 定义利用开源的战略,包括内部重构、基于开源的应用程序。

除了上述这些支柱式的战略和治理指南之外,我们还提供了一些应该包含在贵司战略文档中的关键组件:

  • 目标。 定义好你的业务战略,以及开源如何帮助你达成目标。举例来说,有些公司目前正在将他们的平台切换到诸如 OpenStack 之类的开放云平台,在大多数情况下,是因为这些公司通过将基础架构迁移到云,避免了被供应商锁定,并为他们想要实现的特定财务里程碑设定目标。进而获得可观的投资回报率。

要为贵司战略文档制定一整套的目标,而且要制定相应的绩效指标。通过跟踪相应的指标,考虑为上游贡献增长的报告、消减开发成本、以及增加维护者的招聘人数等等。除了这些指标之外,贵司的业务目标和目标清单还应提供有关开源领导力里程碑、项目安全性、以及性能提升等详细的信息。哦,对了,不要心存侥幸,开源无捷径。

“ 在你正在工作的每个社区找到那些指标项,我倾向于根据特定社区的糟糕程度找到指标,并尝试更好地改变这些指标。社区和生态的健康是没有单一的、魔术般的指标的,要全面的去评估,从 PR 直到贡献者数量。方能说明真相。 “ – Sarah Novotny,Kubernetes 社区项目经理,Google员工

  • 管理规划,一旦贵司的战略文档包括了特定的目标,而且要确保它还规定了实现开源业务目标的具体操作,并为跟踪进度分配角色和职责。
  • 提供特别的KPI(关键绩效指标),用于跟踪目标的实现。
  • 政策和流程,为接受贡献、外部代码、管理政策和流程设置额外的许可和规则是很关键的,linux基金会的 TODO小组在GitHub上提供了免费的开源政策模板和样例
  • 合作伙伴和收购,合作伙伴关系和收购是成功的开源业务战略的关键。贵司的战略文档应该记下关键领域的对象,而且应该建立关键的战略合作伙伴关系如 TODO小组、Cloud Foundry 基金会等等。
  • 专利和知识产权,专利权和知识产权指南会对发明的使用方式产生巨大影响,并且在许多情况下会对商业利用产生影响。贵司的战略文档应该针对专利、与专利相关的规则、知识产权等内容提供指南。
  • 基金会和赞助,开源基金会和其它非盈利性组织最近几年对于开源的世界越发的影响深远。贵司能够和诸如Linux基金会、Eclipse 基金会、Apache软件基金会的合作中获益,如果可以的话贵司也可以发起自己的专注于开源的基金会,并从中受益,贵司的战略文档应该提供与基金会合作的计划,并明确伙伴关系。

“基金会提供了很多的价值,没有基金会的存在,历史上很多的项目将无以为继,基金会提供了一个公平的竞争环境,且为参与的公司提供相应的机制,以便在不直接为开发人员提供帮助的情况下回馈开源项目。” — Luke Faraone,Dropbox 软件工程师

  • 内部贡献指南/指标,贵司可以从贡献开源中获益良多(请参考可持续性发展章节)。战略文档应提供针对贡献的指南和指标。

当然,关于贡献这块的内容你根本毋须从头写起,贡献者契约是公认的权威的行为准则和贡献者指导文件,有超过4万个开源项目使用该契约文件,其中包括著名的Kubernetes、Rails、Swift,组织当中有 TODO 小组、Linux 基金会、黑鸭子等等利用该契约来撰写内部的贡献指南。

一份卓越的内部贡献战略还得包含 API 的最佳实践,OpenAPI已成为描述RESTful API的行业标准。

“打造开源社区其中最为重要的一件事情就是确保你自身的流程是公开的,你的决策流程越是透明,社区的归属感就会越强烈。同时也要确保不要让流程成为绊脚石,如果贵司的内外部流程非常的繁琐,那么就会出现两种极端情况,人们要么绕过它,要么干脆就放弃了。” – Luke Faraone,Dropbox 软件工程师

“你需要让众多的人参与到你的项目进来,而不是一开始就设置一些门槛,如必须拥有博士学位、在某个领域由超过25年的经验等等,你需要让人们能够很快的参与,而不是做过多的犹豫,这也就意味着你须提供很好的向导文档,而且拥有一个活跃的、健康的论坛。” Ian Varley, Salesforce 软件架构师

投资的时间和金额:确定投资回报率

目前为止,世上还没有一种办法就像挥动魔杖一样,能找到公司从开源项目中获得的确切好处,但是,有关如何搞定的方法论还是有的。你必须考虑如何将投资回报率和你的战略牵上线,最起码的,应该从多个角度来考虑,如何从开源战略中获得可观的投资回报。

首先,应该权衡开源所带来的益处和管理开源所带来的风险和成本。 Novica 和 OpenLogic 提供了一份免费的联合白皮书(PDF),该白皮书中说明了几种计算开源投资回报率的特定方法,以及如何制定战略。举例来说,下面图示就取自于白皮书,旨在说明项目开发持续的时间,对于投资回报率都有不同程度的影响,其中也包括许可费用、IT/服务费用:

上图: 该图说明了项目的持续时间会对项目的不同成本要素的关系产生不同影响。虽然项目第一年的许可费用占项目成本的比例小于IT /服务费用,由于他们的经常性维护费(通常是原始许可费的20%),他们最终成为项目总成本的最大开销。因此,在进行开源项目 ROI 计算时,使用真实的项目周期预测至关重要,因为这样可以实现更为准确的 ROI 评估。ROI项目计划的一个常见做法是创建一个基于三年,五年和十年项目持续时间的ROI计算表。这样,项目计划就可以提供更广泛的ROI信息,以协助决策。

图片来源 - 开源投资回报:实现开源软件的财务承诺(Navica和OpenLogic)

当你开始计算投资回报率的时候,请谨记下面几条向导:

  • 计算成本节约的好处。 众所周知,评估开源战略的益处时,其中一大衡量基准即是成本上的节约。评估开源部署和开源创新的成本节约,同时也要考虑到许可费用、硬件、支持等等方面的节省。对于很多公司来讲,支持是一项非常大的支出,那么如果你能够将这部分节省下来,那么就可以获得很大一部分的经济收益。那么同样,是否也可以通过迁移到诸如Linux、OpenStack这样的开源平台来消除哪些具体的硬件和许可成本?答案是肯定,举例来说,在开放云平台的中,云中的存储和计算资源完全可以消除内部对许多此类资源的需求。另外请一定要明白,尽管开源软件是所谓的“免费”,其实仅仅只是没有了传统软件那样的许可证授权费用,它依然有参与贡献上游的开发、集成到其它的系统等等之类的开销。
  • 通过覆盖面和转化来计算收益。通过所创建的开源项目的基准,可以收集到有用的信息,在某些情况下,还可以衡量公司产品和服务的转换率。诸如 npm、RubyGems.org 之类的包管理器也可分发开源项目,它们可以让你跟踪下载量。很多公司会将他们的项目托管在 GitHub 上,项目页面的”流量”子页面有关于项目被 clone 的次数、PR数量等等详情。这些指标可以帮助你了解项目的品牌知名度,获得贡献者的可能性等等。
  • 进行运营风险评估。开放web应用安全工程(OWASP)近来在排名前十大风险列表中新增了:“使用具有已知漏洞的组件”一项,开源软件常常就处于这项的风口浪尖。不过通过开源软件安全审计,可以了解代码中的组件和漏洞。有很多工具可以探测已经漏洞和问题,如黑鸭子公司的开源安全审计WiresharkNikto等。
  • 避免法律风险。运营风险和法律风险是有着显著不同内容的,但毫无疑问,二者的评估都是非常重要的。围绕开源的法律风险可能包括使用错误许可证的法律诉讼费用,以及在具有不同许可证的项目之间合并代码的费用等。

开源的定义是一个理解开源项目如何分发、开源需要什么样的资格等不错的启蒙材料,另外开放标准需求也是很好的资料或规范。

你还必须评估项目中所涉及到的许可类型。软件自由法律中心(SFLC)提供了一些在线的资源,关于开源许可证、版权等等内容。另外,choosealicense.com/网站提供了一个关于许可证特征的列表,也可作为参考之用。

还要考虑的有:许可证合规性的成本和收益。linux基金会的开放合规项目提供了诸如出版物培训教材以及针对开发者的免费的教程。(另外,你也可以参考本指南系列之公司如何正确的使用开源代码,其中有一些简单的合规性内容。)

当然,有一个常识要时刻谨记,那就是:专业的事情应该有专业的人才负责。SFLC 的作者均是参与创建流行的开源许可证的律师。紧跟《国际自由和开源软件法律评论》以及阅读它们旧的的内容,也是不错的选择。

决定在哪里投资

要从多个角度来探讨开源的投资,其中包括有效利用内部资源和外部资源。一定要谨记:将开发者的资源用于开源项目上游的贡献是投资的一个重要部分! 另外要深刻理解使用外部内容、将内部代码开源的运转机制、项目处于哪个阶段、软件如何分发等等。

进行内部审计。是否通过收购获得了开源工具和平台,并从中获得最大收益?请在审计中评估这一点。

确定哪些开源项目对于贵司交付的产品或服务至关重要。一旦公司了解其知识产权组合及其开发人员想要的开源贡献,它就可以确保其开发人员有能力做出这些贡献。

确定贵司可以开源的内部项目。

还可以构建良好的方法来识别组织内部或应存在的开源项目。举例来讲,在硅谷,有一些公司采用内部激励和举办黑客松为员工们提供奖励,鼓励他们在开源中做出的创新。通过这样的机制,不管是 PayPal 还是 Google 均将员工的这样开源创新整合到了自己的产品和服务当中,获益更大。

“在举办黑客松期间,有可能发生的就是重组的力量显现 —— 正如其中的发起者所言’我知道这么做的方法,而在另外一个项目需要这样,那么我就可以将他们放在一起。‘ 如果所有的都是闭源形式的,那么解决问题的途径就少了很多。相比之下,开源的世界就有着无穷的解决办法来构建。” – Ian Varley,Salesforce 软件架构师

接下来,转向外部资源,以帮助查明贵司尚未使用或参与的项目,但这可能会带来商业利益。在一开始就选择合适的开源项目和社区有很大的影响力。选择具有重要战略意义的项目是至关重要的。

和其它组织达成伙伴关系。他们可以帮助到你选择最好的项目,并参与其中,并明确已经从哪些项目中获益。有很多的独立机构可以提供帮助,如,Linux基金会、TODO小组、Innersource Commons 、开源促进会等等。

甄别出在贵司所处行业中的其它公司参与的开源项目。他们可以引导你走向正确的项目以参与其中。举例来说,很多电信供应商均从开放网络功能虚拟化(NFV)技术中获益良多,因为 NFV 项目可以消除电信技术堆栈中历史上的专有组件的遗留问题。其中一些公司与Linux基金会一起合作促成NFV,并进一步成立了专门的工作组。这些行业内的专门工作组可以为贵司提供相当有价值的指导,前提是贵司是处于该行业中。

您是否对更多资源感兴趣,以帮助您制定策略?以下是鼎力推荐的参考资源:

Measuring Open Source ROI

开源投资回报率

Launching Successful Open Source Projects

在Linux 基金会成功的启动项目

国际自由和开源软件法律评估 开放合规性项目

许可协议

Choosealicense.com

贡献者行为准则

贡献者公约

开源政策

TODO 小组模板

开源战略日志

开源战略日志

开源战略播客

开源战略播客

致谢

本文的贡献者有:

  • Ian Varley ,Salesforce 软件架构师
  • Guy Martin,Autodesk 开放总监(Open@ADSK)
  • Joe Beda , kubernetes 联合创始人,前Google员工,Heptio 联合创始人兼CTO
  • Sarah Novotny ,Kubernetes 社区项目经理,Google员工
  • ,Chris Aniszczyk,CNCF CTO
  • ,Luke Faraone,Dropbox 软件工程师
  • Jim Jagielski,Consensys 首席开源

这些资源是与TODO(公开对话,开放式开发)小组 – Linux基金会的专业开源程序网络小组合作创建的。 特别感谢那些贡献自己的时间和知识来制作这些综合指南的开源项目经理。 参与的公司包括Autodesk,Comcast,Dropbox,Facebook,Google,Intel,Microsoft,Netflix,Oath(Yahoo + AOL),Red Hat,Salesforce和Samsung。 要了解更多信息,请访问 todogroup.org。我们邀请您在GitHub上下载、传播,如果可以请积极的参与这些指南。