企业为什么要采用内部开源

Fanly 问答 2022-09-14 22:50:48 阅读(...)

采用内部开源是对程序员们希望或需要阅读和修改代码的一种认可。它说明了一个基本原则,即程序员们是充满好奇的生物,他们不仅渴望了解事物的工作原理,而且也希望自己创造和更改它们。

大多数与内部开源(Inner Source,简称内源)相关的信息和指南都集中在内部开源的方式和内容上。比如将内部开源解释为“从成功的开源项目中汲取有关软件开发的经验教训,并将其引入内部” (内容),或者“确保 GitHub 仓库对所有开发人员开放” (方式)。这些确实是有用的信息,但对我而言,却忽略了为什么需要内部开源。

开源 Open Source

了解为什么要采用内部开源,对于帮助调整团队内部开源的实施方式至关重要。目前有多种内部开源的方法,每种方法都有各自适合的应用场景。但是,除非对内部开源的基本原理理解的很深刻,否则很难选择合适的内部开源实施方法。

程序员们是充满好奇的艺术家

开源既可以单独拿出来说,但它同时也是自由软件运动的“分支”,它基于许多与软件开发有关的基本准则,核心自然就是一个个程序员们。自由软件和开源的共同点是它们都要求必须能够访问项目的源代码。为什么呢?原因很简单:这是对程序员们希望或需要阅读和修改代码的一种认可。它说明了一个基本原则,即程序员们是充满好奇的生物,他们不仅渴望了解事物的工作原理,而且也希望自己创造和更改它们。

程序员们是一群艺术家和手工艺人,那些成功的开源项目就是基于这种认识。可以这么讲,开源项目的 Licenses 定义了代码的文化,但是开源项目本身定义和开创了代码贡献者交流的文化,他们通过交流了解哪些方法有效,哪些并没有什么用。精英管理,透明度和社区的基本理念,开源亦或像 Apache 一样开放合作的模式,他们的核心方面,都是为了实现协作。协作不是最终目标,而是一个起点。全面拥抱精英管理、透明度和沟通无障碍的环境是协作可以扎根的理想土壤。而且,这三条指导原则中的任何一条(或全部)越“削减”,协作就越困难。到那时,你实际上根本就没有在做“内部开源”,因为内部开源的原因是要进行协作。

协作可以带来最佳的人员和结果

正是通过协作,自然地带来了所有内部开源的“福利”。无需强迫团队重复使用代码,他们将自然地重用他们已经协作过的高质量代码。实际上,如果发现必须强制重用某个项目的代码,则有力的证明了团队没有正确的在做内部开源。

协作同时也是创新本身的源泉。多元化社区共同协作的能力可以充分发挥出大家的潜力;协作还能够广泛的提出不同观点,这也能催化出更新的点子。我们在科学,数学和医学领域中都见过并理解了这一点。软件开发领域同样如此。

开源以及由此扩展的“内部开源”基于个人之间的协同工作,从而可以生产出强大,可靠,安全和创新的软件。与任何其他软件开发范例相比,内部开源所创造的项目和产品都可以减轻风险,更快地生产和实施,并在商业上取得成功。

企业公有云/私有化部署解决方案Gitee 企业版

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • 开源 Open Source

    企业为什么需要内部开源

    企业内部开源带来了一组在开源社区中使用的通用技术和工具,通常包括使用共享代码存储库、拉取请求、评论和大量文档,它可以使大量贡献者一起工作,处理不一定是由他们主要责任的代码。
  • 内部开源 内源 Inner Source

    内部开源是什么

    内部开源(Inner Source)简称内源,指把开发开源软件中学到的经验教训应用到公司或组织内部开发软件的实践。公司和组织可以在内部开源的同时开发专有软件。
  • 梦工厂动画 DreamWorks Animation

    梦工厂动画将开源MoonRay渲染器

    梦工厂已经开源其部分技术近年来,它的动画部门正准备免费提供更多工具。梦工厂动画公司表示将在今年晚些时候将其 MoonRay 光线追踪渲染器作为开源软件发布。作为好莱坞记者注意,梦工厂也将在代码库中提供其 Arras 云渲染框架。
  • Open Source 开源

    什么是开源标准

    开源标准是一项公开发表的标准,拥有与之相关的权利,以及与之设计相关的属性。 由于其复杂的用途,不存在一个对于开源标准的单独定义。开源标准中制定使用某种文件格式的,有时被称为自由文件格式。
  • 开源 open source

    开源操作系统是什么

    开源操作系统(open source operating system) 就是公开源代码的操作系统软件,可以遵循开源协议(GNU)进行使用、编译和再发布。在遵守GNU协议的前提下,任何人都可以免费使用,随意控制软件的运行方式。
  • NAS desktop

    五大免费开源NAS操作系统

    NAS服务器提供一个中央场所让你可以存储、访问和共享本地网络--有可能还可以是互联网上的--上的文件和文档。它们在多操作系统环境下显得尤其有用,因为它们支持所有的共享协议。