在我关于开源项目办公室的系列文章的第一篇中,我深入探讨了什么是开源项目办公室以及为什么您的公司可能需要一个。接下来我看了谷歌如何创建一种新型的开源项目办公室。在本文中,我将解释拥有开源项目办公室的一些好处。
乍一看,非软件开发业务的公司可能更热情地拥抱开源项目办公室的一个重要原因是,他们没有什么可失去的。毕竟,他们没有拿直接与收入相关的软件产品冒险。例如,Facebook 可以轻松地将分布式键值数据存储库作为一个开源项目发布,因为他们没有销售名为“企业键值数据存储库”的产品。这回答了风险问题,但仍然没有回答他们从贡献开源生态系统获得什么的问题。让我们来看看几个潜在的原因,然后逐个解决。您会注意到与供应商开源项目办公室有很多重叠之处,但一些动机略有不同。
招聘
招聘可能是向上层管理人员推销开源项目办公室的最简单方法。向他们展示与招聘相关的成本以及投资回报率,然后解释如何与有才华的工程师建立关系,从而形成一个由才华横溢的开发人员组成的管道,他们实际上熟悉您的技术并乐于帮助开发。我们真的不需要在这里深入研究——这不言自明,对吗?
技术影响力
曾经,不专门销售软件的公司无力直接影响其软件供应商的开发周期,尤其是在它们不是大型客户的情况下。开源彻底改变了这种局面,并将用户与供应商置于更加公平的竞争环境中。随着开源开发的兴起,只要他们愿意投入时间和资源,任何人都可以将技术推向选定的方向。但是这些公司了解到,仅仅投资开发人员的时间虽然富有成效,但如果与一个总体战略努力联系起来,可能会更有用——想想错误修复与软件架构师——许多公司将错误修复推送到上游开源项目,但其中一些公司开始了解到,协调一项持续的努力并做出更深入的承诺,可以更快地开发功能,这可能对业务有好处。借助开源项目办公室模式,公司拥有可以嗅出具有战略意义的开源社区的员工,然后他们可以在其中投入开发人员资源。
对于像 Google 和 Facebook 这样快速发展的公司来说,在现有开源项目中提供领导力仍然不足以满足其不断扩展的业务需求。面对快速增长和构建超大规模系统的挑战,许多最大的公司已经构建了高度定制的软件堆栈,仅供内部使用。如果他们能说服其他人合作开发其中一些基础设施项目会怎样?因此,在保持对 Linux 内核、Apache 和其他现有项目等领域的投资的同时,他们也开始发布自己的大型项目。Facebook 发布了 Cassandra,Twitter 创建了 Mesos,最终 Google 创建了 Kubernetes 项目。这些项目已成为行业创新的主要平台,证明了参与公司取得了巨大成功。(请注意,Facebook 在需要创建一个新的软件项目来解决更大规模的问题后,停止在内部使用 Cassandra。但是,到那时,Cassandra 已经变得流行,并且 DataStax 已经成立来承担开发任务)。这些项目中的每一个都孕育了整个开发人员生态系统、相关项目和最终用户,从而加速了增长和发展。
如果没有开源项目办公室与公司战略举措之间的协调,这是不可能实现的。如果没有这种努力,上述每家公司仍将尝试单独且更慢地解决这些问题。这些项目不仅有助于在内部解决业务问题,还有助于将创建它们的公司确立为行业重量级企业。当然,谷歌已经成为行业巨头好几年了,但 Kubernetes 的发展确保了更好的软件,并且比以往任何时候都更能直接参与容器技术的未来发展方向。这些公司仍然以其超大规模基础设施和仅仅作为大型硅谷中坚力量而闻名。鲜为人知,但可能更重要的是,它们作为技术生产商的新相关性。开源项目办公室通过技术建议和与有影响力的开发人员的关系,更不用说在社区治理和人员管理方面的深厚专业知识,来指导这些工作并最大限度地发挥其影响。
营销力量
与技术影响力相伴随的是每家公司如何谈论其开源工作。通过围绕这些项目和社区磨练信息,开源项目办公室能够通过有针对性的营销活动传递最大的影响力。长期以来,营销在开源圈子里一直是一个贬义词,因为每个人都有过糟糕的企业营销体验。在开源社区的案例中,营销采用了与传统方法截然不同的形式,并且涉及放大战略重要社区中已经发生的事情。因此,开源项目办公室可能不会创建关于甚至尚未发布任何代码的项目的精美幻灯片,但他们会谈论他们创建的软件以及他们参与的其他计划。基本上,这里没有空头支票。
想想谷歌开源项目办公室所做的第一个努力。他们不仅仅是向 Linux 内核和其他项目贡献代码——他们经常在开源会议的主题演讲中谈论它。他们不仅仅是向编写开源代码的学生捐款——他们创建了一个全球项目,即谷歌编程之夏,该项目成为了开源开发的一种文化试金石。这项营销努力在 Kubernetes 开发之前很久就巩固了谷歌作为主要开源开发者的地位。因此,谷歌在 GPLv3 许可的创建过程中发挥了重要影响力,并且公司发言人和开源项目办公室代表成为了技术活动的常客。开源项目办公室是最适合协调这些工作并为母公司提供真正价值的实体。
改进内部流程
改进内部流程可能听起来不是一个很大的好处,但克服混乱的内部流程是每个开源项目办公室(无论是软件供应商还是公司驱动)面临的挑战。软件供应商必须确保他们的流程不会影响他们发布的产品(例如,无意中开源专有软件),而用户更关心侵犯知识产权 (IP) 法:专利、版权和商标。没有人希望仅仅因为发布软件而被起诉。如果没有活跃的开源项目办公室来管理和协调许可和其他法律问题,大型公司在围绕开源流程和治理达成共识方面将面临很大的困难。为什么这很重要?如果不同的团队在不兼容的许可下发布软件,这不仅会令人尴尬,而且还会为实现最基本的目标之一——改进协作——带来重大障碍。
再加上这些公司中的许多公司仍在以惊人的速度增长,无法围绕流程建立基本规则将比预期更快地变得笨拙。我见过大型电子表格,其中包含批准和未批准的许可矩阵,以及如何在遵守法律限制的同时创建(以及如何不创建)开源社区的指南。关键是要有一些开发人员在需要做出决定时可以参考的东西,而无需每次开发人员想要为开源社区做出贡献时都承担大规模、降低工作效率的知识产权审查的法律负担。
拥有一个积极主动的开源项目办公室,负责维护许可证合规性和源代码贡献的规则,并为工程师建立培训计划,有助于避免潜在的法律陷阱和代价高昂的诉讼。毕竟,如果有人没有阅读许可,导致公司损失真金白银,那么在开源项目上进行更好的协作又有什么好处呢?好消息是,与软件供应商相比,公司在专有知识产权方面需要担心的事情更少。坏消息是,他们的法律问题并不那么简单,尤其是在他们直接遇到软件供应商的法律逆风时。
您的组织从拥有开源项目办公室中获得了哪些好处?请在评论中告诉我。
2 条评论