比较内源和开源的异同

开源原则可以应用于公司内部,以获得协作开发的益处。以下是如何实现。
55 位读者喜欢这篇文章。
two women kanban brainstorming and brainmapping with post-it notes on a whiteboard

CC BY 3.0 US Mapbox Uncharted ERG

自 20 世纪 90 年代以来,开源软件 (OSS) 便已出现,并且蓬勃发展,迅速成长为主流。现在,它在世界范围内的理解程度比以往任何时候都更高。有些人将其称为 FOSS,以突出开源的自由部分(自由和开源软件)。2014 年,在 OSCON 大会上,“内源”一词首次亮相,人们开始讨论如何在公司内部使用开源原则。对于那些不熟悉这个词的人来说,这引发了一些问题,我希望通过这篇文章来解答。例如,两者之间有什么相似之处,有什么不同,公司在两者中扮演的角色,内源是否会分散开源的能量等等。这些都是合理的问题,由于我的组织同时实践这两种方法并参与这两个运动,我想花一些时间以开发者、公司和开源爱好者的身份与大家分享一些见解。

开源成功有两个主要因素。首先,它是在 OSS 许可下获得许可的,这些许可促进和支持源代码及其二进制文件的自由分发,供人们以任何他们想要的方式使用。当 GPL(通用公共许可证)在 20 世纪 90 年代推出时,它是革命性的——不收费,包含源代码,并且对使用没有限制。这有助于像 Linux 这样的开源项目的普及,并实现了快速创新。

另一个特别重要的因素是开源软件的增长和发展方式。它通过一个社区的人们实现,这些人通常不在同一个组织或地理位置。他们走到一起是因为他们相信项目的解决方案或使命。由于这些人来自不同的开发文化,但需要共同开发项目,因此他们形成了协同工作的规范,例如他们如何相互沟通,如何做出决策以及如何审查新的提交。这种对不同团队如何在不同组织中协同工作进行编纂的方式是独特而强大的。这种类型的开发被称为“协作开发”。

并非所有社区都有效,但那些弄清楚如何协同工作的社区通常有一些共同要素

  • 治理:他们制定项目如何进行自我治理——决策、角色、审查、会议、使命、预算、组织结构等。

  • 沟通:他们弄清楚如何与跨时区、跨文化和跨组织的人员合作。例如,将决策记录在邮件列表上而不是实时讨论。为人们提供 24 到 48 小时来审查和回复问题或决策是另一种良好的实践,旨在让不同时区和不同工作状况的人员能够协作。

  • 通用工具:审查和沟通对于开发至关重要。GitLab 和 GitHub 等工具内置了协作实践,以实现跨团队工作。

  • 架构:项目通常在架构上被分解为组件、API(应用程序编程接口)、子系统,这样并非每个人都需要了解所有内容,或者他们在进行更改时不会更改整个项目。

为了应对数字化挑战以及不断变化的客户期望,尤其是在技术供应商领域之外的企业,一直在转变他们构建产品和服务的方式以及他们与客户互动的方式。随着 2020 年 COVID-19 大流行,许多公司和组织已经转向虚拟化,并快速推进了他们的数字化转型计划,以满足不断变化的客户和市场需求。一些公司还加快了他们的计划,以抓住新的机遇并支持客户消费服务方式的变化。依赖于物理邻近、走廊谈话和开发的其他要素的团队面临着改变其工作方式的需求。他们中的许多人意识到,他们可以转向开源的协作开发模式,以了解如何远程有效地工作。

甚至在 COVID-19 大流行之前,由于早期的数字化转型计划,公司已经开始采用和使用开源,并认识到开放式创新的好处。更快地前进、降低成本、打破公司内部的孤岛以及重用而非重新发明的需求,刺激了在公司围墙内进行更多协作开发或开源风格的社区开发。

协作开发的好处可以应用于多种方式

  • 远程和地理分布组织之间的协作

  • 在公司内部创建更开放和协作的文化

  • 围绕共同兴趣和共同问题创建社区

公司内部开发软件的传统方式与开源协作模式截然不同。由于预算、组织结构和激励机制的运作方式,团队在孤岛中工作,是自上而下的驱动,并且没有动力在整个组织中共享和协作。团队通常向同一个组织报告,导致决策文档记录不足,并且公司内部专家利用率低。

许多组织已经尝试协作开发一段时间了。例如,在 Comcast,团队称之为企业源。但是,在 2001 年,O’Reilly 出版社的创始人、首席执行官兼出版商 Tim O’Reilly 创造了“内源”一词。(这个与 Tim 的访谈讲述了他如何创造这个词的非凡故事)。他谈到代码的模块化和对源代码的访问是协作的巨大驱动力,甚至比许可证本身更重要。他称之为“参与架构”。不久之后,在 2015 年,当时在 PayPal 运营 OSPO(开源项目办公室)的 Danese Cooper 在 OSCON 大会上介绍了这个词。她还分享了 PayPal 在公司内部为打破孤岛和创建协作所做的工作。InnerSource Commons 非营利基金会也成立了,旨在让人们可以协作分享他们的经验、模式和最佳实践。以下是内源的更正式定义

“内源是将开源实践应用于仍然是专有的代码,并且只能在单个组织或一小组协作组织内查看。因此,内源是借鉴开源运动以及软件其他趋势的历史发展。”

—摘自 O’Reilly 出版社出版的采用内源

开源和内源之间最大的相似之处在于协作开发模式。在传统企业中,跨组织内部团队就通用源代码进行协作是一种文化变革。这两种形式都需要高层的赞助和支持才能在组织内部蓬勃发展。

最大的不同之处在于启动内源项目而不是开源项目的动机。开源社区经常重复的智慧是,人们参与其中是因为他们有“迫切的需求”。通常,尝试解决技术问题是他们启动新项目的原因。对于内源,可能更多的是组织范围内的原因来启动开放代码并与其他团队协作。一个主要原因是使另一个团队能够更有效地使用平台或减少重复工作。一些组织选择了一种默认方法,即开放所有存储库,供公司中的任何人查看和使用或协作。一个巨大的驱动因素是在完全开源之前将其作为内源项目进行阶段性实施。这允许团队在开源之前磨练良好的协作策略和实践。

我喜欢 PayPal 使用的模式——让内源和开源成为同一组织的一部分。两者可以共享实践、技能和工具。在 Comcast,这两种实践都存在于开源项目办公室中。内源团队与架构、安全和领导层成员建立了一个协会,以发展我们内源项目的实践和治理。您可以收听 Comcast 开源项目经理和内源负责人 Brittany Istenes 的演讲,以详细了解我们在 2020 年秋季 InnerSource Commons 峰会上与协会所做的工作以及扩展内源的规模。

虽然有些人批评内源运动,并说它分散了开源运动的注意力,但实际上它加速了组织内部的开源协作实践。虽然大多数公司都使用开源,但很少有公司深入参与社区或了解开放协作的工作原理。协作开发模式可以在公司内部用于产品或组织工作这一事实,使 Comcast 对协作开发有了更深入的理解和更好的开发实践。我看到,随着团队对通过内源工作进行互动更有信心,这将自然而然地发展为更多贡献和更多参与开源社区。

无论您称之为内源、企业源、协作开发——公司内部更多的协作都是一件特别好的事情。更好的开发实践、文档、入职和指导通常是直接结果。如果您对更多信息感兴趣,请访问 innersourcecommons.org,了解来自多家实践内源的公司(包括 Comcast)的精彩演讲。我相信内源是开源开发的下一个阶段。

接下来阅读什么
标签
User profile image.
Nithya A. Ruff 是 Comcast 开源项目办公室的负责人。她负责发展 Comcast 内部的开源文化以及与外部社区的互动。Nithya 在过去 3 年中一直担任 Linux 基金会董事会的大型董事,最近当选为 Linux 基金会董事会主席。

评论已关闭。

© . All rights reserved.