构建块:您应该从开源代码中寻找什么

2021-04-04 03:02:05

开源代码构成了大部分软件供应链。但是,你如何选择一个开源产品超过另一个产品?

每个人都使用开源。那个'什么提出了我们收到的问题 客户如此有趣。他们又从他们自己那里得到了问题 客户,询问为什么他们使用了51个层次的服务而不是一个 替代方案和我们的答案,也许值得一位更广泛的听力。我们的 图书馆和替代方案都是开源,因为大多数代码是;现在 这不再是一个鉴别者,您在产品之间选择了什么? 知道如何使选择是您的技术战略的关键:我们将解释一下 超越代码开放的事情,您应该考虑。我们会看看如何 开源弥补了大部分软件供应链,即使是无形的; 您如何理解谁构建该软件和原因是至关重要的 他们这样做;以及如何帮助塑造该软件,以便您的公司 好处。

您可以制作SaaS产品或硬件平台; devops和sysadmins有 脚本和管理工具。您公司写入的所有软件贡献 到您的value-add,但您写的大多数软件实际上都没有写 你!它' s的图书馆和工具由其他人和您使用的工具以及您使用的工具 有几乎所有这一切都是开源代码的很大机会。这就像一个 冰山:顶部的软件的一小部分,水上钻头 人们看到,是你制作的部分以及你区分的地方。多赖 较大的底部是现有的开源代码;它的发动机' 大部分工作在你的方向。

和它的重要性,它很重要,而且更重要的是 它在哪里' ll来自明天。云部署的重要性说明了 这个;大多数云技术都是开源,他们都大量使用 开源,以及CIO和管理人员以及开发人员都更喜欢 他们。

你的供应链:你所写的所有软件都是批判性依赖 形成基础的现有库,构建块您 建立在。当Isaac Newton致力于站在肩膀上时 巨人,他实际上正在谈论github(可能)。作为监督员 供应链,您需要了解它的何处,以及可确保的是什么 它' ll继续向贵公司提供。

有许多关于开源软件的神话。一个人讲述 一个社区的业余开发人员可以自由地努力建立一个强大的东西 有用。通过发布代码,无数公司已为此神话堕落 一个项目并假设一支开发人员似乎会修复错误和 保持它而不需要支付它们......不会发生这种情况。

适用于他们的每个软件依赖性的公司可以说, 开发商和#39是什么;激励是为了保持它。 Stuart Langridge

但是有一个反神话,这是一个与公司的开源项目 涉及的毫无比较不可能比开源项目更可靠。 这同样不真实,通常由某人暗示(或彻底说明) 试图卖给你一些东西。你需要看看项目的激励 每种情况的贡献者。

激励可能是最简单的一个:你使用他们的软件并支付 公司为支持合同。他们继续保持的理由 软件和倾听您的反馈是您' LL继续支付他们 所以。激励可能是合作而非直接财务。许多人开放 项目由公司和开发人员社区维护和开发 集体,因为他们都需要这个项目继续存在并保持 在职的。公司贡献与他们直接相关的更改或 (和更好)员工甚至在工作中开发项目的时间 这一点和#39; T直接受益,因为它确保了整体健康 他们依赖的代码。例如,Hadoop是其中之一;多 公司帮助维护它,因为它扮演他们的商业产品,或 补充它。帮助您的产品' s补充是有价值的时间; 如果你可以提供帮助,那么没有必要放弃剃须刀并卖掉剃刀刀片 别人送走了剃刀。整个行业段是基于的 在共享开源核心周围,每个贡献者都采用该核心和 销售产品基于它。

对于每个贡献者的软件,看看他们的动机是什么,而且 什么可能改变这些动机并阻止他们继续贡献。

该公司失败,枢纽或购物。战略方向会从所需品中变化

该公司失败,枢纽或购物。该公司用竞争对手替换这种依赖

他们使用该软件,或享受工作,并可能会获得商业赞助商的额外津贴或可见性

开发人员获得更苛刻的工作,或者个人情况的变化意味着他们有更少的空闲时间

这里的关键点是它并不一定重要这些激励措施 如此,如你了解他们并批判地思考它们。为了 每个结构块,问自己:人民和公司和 使这个的社区,是什么激励他们?什么可能改变这种动机? 如果主要的资助者削减资金,或项目团队是聘用的 您的竞争对手或主要贡献者改变工作?

这是你已经为昂贵的专有而做的同样尽职调查 当然:软件:我如何知道这一伙伴关系将在一年内可行,或者 5年?我在本合同中的休息条款是什么;如果他们走了会发生什么 失业;如果他们收购或枢轴会发生什么,或者枢转?你考虑一下 稳定性和业务连续性;当软件是时,这并不会改变 从Github下载而不是用签名合同购买。开源 项目可能不一定与合同保证有关,但可能不会 需要,因为更多的过程可用于您的Perusal。你可以 判断是否积极维护了这个构建块,保持最新 行业变革,由多样化和广泛的社区工作或有一个 通过在公共场合看项目的历史来进行巴士问题。

这正是为什么我们练习我们在这里讲道的原因; 51度图书馆 和开发人员资源是故意的 保持在开放和良好的记录,以便您可以看到为什么 会选择使用该代码和我们的服务。我们奉献时间和资源 记录和指导和支持,因为这些是一个重要的部分 完整的开源产品。业务连续性至关重要;一个良好的开放 来源项目可以令人信服地向他们的用户展示项目是 安全取决于今天,因为它明天仍然会在这里。

这些是同一个硬币的两侧;一个大型开源项目,特别是 一个主要由单一公司维护,通常应该被视为事实上 专有软件。如果开源软件'重新使用太大或 对于有意义的贡献来说太复杂了,然后经历了 与您的商业和专有软件相同的采购过程 产品即使您'重新实际支付或签订合同。

现在,行业主要使用开源的重要差异是 你不仅仅是这个过程的观察者;你是其中的一部分。弱点 使用专有(或遗弃专有)软件是,如果它没有工作 你需要它如何,你可以做到这一点。如果您的评估是 这个项目需要更多的帮助,你可以做到这一点;财务贡献 允许项目在维护上花费更多钱,或者拥有自己的开发 团队在该项目的维护中花费带薪​​带来领先地位 发展。使你尽职调查的这一部分:如果这个项目消失了 明天,你的时间和努力会花多少钱?你会如何更换它? 这会让你恢复多少钱?现在有点额外省略了很多 支出后来;阅读STEPHEN WALLI ON软件 详细研究的可持续性。

但是,通过开源,您可以影响战略方向和可行性 您依赖的构建块。 Stuart Langridge

许多,许多开源维护者都宣布他们'重新靠近倦怠 在没有支持的情况下,他们维护的关键项目。 Álvarotrigo写道 关于这个最近,而Heltbleed崩溃表明它是一种持续的策略 临界开源构建块,同时假设维护是某人 别的问题。你可以通过倾身来帮助这里,用钱或时间 开发团队;您也可能考虑支付专业服务公司,如 Igalia用于浏览器开发或潮汐 维护者支持代表您这样做。

这里可能有一个空间在这里为CIO的专业建议如何 最佳评估您的开源依赖项,以及您对它们的支持的位置 最好的目标。 这可能是,应该是一个整体的专业; 在您的公司中可能暴露的高质量,清醒的咨询 开源以及如何减轻这种曝光。 这不是一个' s 通过自动报告提供良好的服务,每周一在您的收件箱中被忽略; 它' s 全面看看隐藏的90%的公司' S软件的连续性 产品。 有人应该采取这个想法并与之运行。