摘要
在开发软件时使用开源组件的好处是显而易见的。根据 Github (source),超过 90% 的软件公司在其商业软件中使用开源。使用现成的组件具有成本效益,可以加快开发速度,并让开发人员腾出宝贵的时间来专注于关键任务。此外,查看源代码的能力,而不是使用闭源专有软件,让开发团队接触到新的想法、技术和解决方案,这些想法、技术和解决方案可以在以后在他们的自定义应用程序代码中实现。但这些好处是有代价的。下载代码是免费的,但实际上在关键任务生产环境中使用它 - 通常不是。深入研究使用统计数据并分析开源时间-价值-花费关系,揭示免费软件的真实成本。可能需要解释一点的是开源软件通常被称为“自由软件”,其中“自由”一词是指“自由”,而不是“免费”。为了清楚起见,并且由于本文主要讨论的是财务方面。
一、寻找开源的真正成本
让我们首先考虑在商业环境中使用开源的直接成本。由于开源组件很少开箱即用,因此在集成、定制和维护它们时会产生直接成本。根据 Tidelift (Source) 最近进行的一项调查,开发人员将 35% 的时间用于研究、测试和维护代码。其中 25% 的时间围绕开源代码展开。平均工资为 43 美元/小时(来源,在西方国家),拥有 100 名开发人员的公司每年花费近 1 万美元,仅用于开源“家务”任务。这不包括为手头的任务寻找合适的项目、从通常稀缺的文档中了解项目、定制、将其集成到现有代码等方面所花费的时间。实际成本可能接近我们刚刚看到的数字的两倍.这是一个惊人的数字,即使对于价值数百万美元的公司来说也是如此。这些只是直接成本。其他间接成本也应考虑在内,例如法律和安全风险、管理开销、购买管理开源组件的软件工具以及可能用于其他更关键任务的时间损失。这笔巨额费用隐藏在众目睽睽之下,深深嵌入开发费用中,很难捕捉,更不用说减少了。开源的真正核心根本不是代码:它是社区。拥有强大社区的项目比那些没有强大社区的项目存活时间更长并且被更多地采用。考虑到这一点,不仅要拥抱而且积极规划您希望围绕您的项目建立的社区是一个好主意。
二、使用开源的风险
研究(source)表明,使用开源组件的开发人员关心他们使用的代码在未来的维护情况。未维护甚至被遗弃的项目在开源生态系统中并不少见,并且可能对在生产环境中依赖它们的公司造成严重损害。想象一下依赖 Github 存储库来构建代码,突然间开发人员决定从 Github 中删除存储库,或者将其设为“私有”?这种情况以前发生过,并且会再次发生,造成真正的风险。
开源可持续性问题已成为许多讨论的主题,论坛和博客。它已成为每个开发和使用开源的人的主要关注点,并且似乎软件公司和开源开发人员都开始明白开源的持续增长面临风险,除非创建一个可行的商业模式来提供持续激励以更好地维护他们的代码的开发人员。
世界上一些最大的组织正在寻找维护人员来维护他们正在使用的开源项目。其他公司选择捐赠给他们最喜欢的项目。这听起来像是针对开源问题的解决方案,但这两种解决方案仅适用于大约 1-2% 的开源项目。其他 99% 的组件由个人开发人员维护,他们根本没有任何报酬来支持他们的工作。公司发现自己构建的产品依赖于组件,这些组件是由明天可能不在场的人创建的,用于维护代码、修复错误或解决安全问题。
2.1 当开源优点变成缺点时
开发软件的组织在招聘、培训和保持软件开发人员的满意度和承诺方面投入了大量资源。但是,如果您的组织正在使用开源组件,这些组件是由您不认识的人开发的、从未雇用过且从未付过钱的,那么您如何相信他们代码的质量、支持和连续性呢?
开源开发人员启动项目的原因有很多:出现的需求、个人兴趣、社区认可等等。开发人员希望与社区分享他们的知识,并希望他们的项目能够获得人气和追随者。有些项目在受欢迎程度方面做得很好,以至于开发人员成为他们自己成功的受害者。当一个开源项目突然爆发时,会给开发人员带来巨大的压力。他突然被错误修复、功能请求、问题和评论轰炸。在某些时候,开发人员无法继续投入所需的时间和精力来维护他的项目。有时这意味着更少的维护、未修复的错误或推迟到开发人员有时间的新版本。在某些情况下——这意味着项目放弃。在这两种情况下 - 维护项目的头痛变成了公司的问题。
2.2 向开源开发者付费模式
虽然我不能用硬数字来支持这个概念,但浏览受开发人员欢迎的社交媒体页面和博客正在显示一种趋势。越来越多的开发人员意识到,为了继续开发他们的项目,他们需要持续的、可靠的财务支持。请求捐赠似乎不是一种可行且可靠的商业模式,一些开发人员已经诉诸于通过各种方式将他们的代码货币化。一种选择是在双重许可下提供他们的代码,其中代码的限制性许可版本保持免费,而许可许可版本是收费的。流行的 Vus.js 库 Vue-tables-2 (link) 的开发人员就是这样做的,并且看起来对他有用。另一个广受欢迎的名为 FUSE 的库也决定“关闭”代码并将其商业许可(源)。
这种趋势可能会增长,软件公司越早明白开始向他们使用的代码背后的开源开发人员付费符合他们的最大利益——这对我们所有人、用户和开发人员都将更好。
三、开源的未来发展
开源将继续存在。它变得如此广泛使用,软件公司不太可能停止使用它,因为好处多于问题。但有些事情需要改变。如果软件行业和开源社区无法找到一种可行的、可持续的方式来开发、使用和为开源付费——明天可能就不存在了。至少与今天不同。像 Github 这样的平台令人难以置信,因为它们促进了开源的分发、开发和采用。但公司需要更多的东西。他们能够与创建他们使用的代码的开发人员联系,因此创建了有意义且有利可图的关系。与 Redhat 等许多大型开源项目相同的过程也需要在较小规模的项目中进行。 Redhat 为免费的开源 Linux 发行版提供付费支持和增值服务的方式同样适用于每个人使用的 +30M 开源项目。哪里会有补偿——哪里就有动力。有偿且积极进取的开发人员将成为未来十年引领开源的人。
博文参考
https://devpress.csdn.net/opensource/62f3e55f7e6682346618781c.html