首页/文章/ 详情

Qt商业版 | 为什么要使用基于开源的商业支持软件,并为开源项目贡献上游?

2年前浏览1866
 使用现成的软件可以加快开发速度。然而,使用开源软件(OSS)并不是免费的。使用开源伴随着义务和风险,这是有代价的。        

开源的神话是免费

开源软件的购置成本接近于零。然而,开源软件伴随着管理成本和风险。下图说明了与基于开源软件的开发相关的总拥有成本的普遍误解。

乍一看,在使用开源软件库时,软件开发的总成本仅包括人员和开发工具的直接开发成本。商业支持的软件库附带额外的软件许可费用和潜在的分发版税。看看这个比较,决定选择哪种方法似乎很简单。然而,整个真相都隐藏在表面之下。

虽然使用商业软件在产品生命周期内几乎没有隐藏成本,但在使用开源库时必须考虑一些额外的成本。这些包括:

1、自己修复错误,而不是让商业维护人员代表您进行修复(或希望社区中的某个人会免费快速完成);

2、实施开源义务,例如记录使用的开源组件以进行审计,管理人们可以下载源代码的存储库,以及创建显示产品中使用的开源库的用户界面;

3、在引入新的开源元素或开源许可条款发生变化时实施法律检查和风险评估;

4、根据企业信息安全、企业开源政策和开源许可条款执行定期许可合规检查。

我已经排除了其他直接成本,例如年度安全审计和本指南的间接一次性成本。在任何一种情况下都需要进行安全审计,包括渗透测试。与不遵守开源条款和条件相关的潜在一次性费用,例如产品分销权的丧失、专利诉讼或因公共诽谤而造成的品牌损害,我将其排除在外。这些都需要被视为风险。

该指南以这样一种格式编写,它基于示例展示了开源的总成本。使用您的输入值很容易调整TCO计算。本指南的重点是解释成本构成,而不是任何单个结果。


自己修复开源代码的成本

修复错误需要时间。每个软件都有错误,无论它是否使用开源。问题只是谁修复了这个错误。如果购买商业支持的软件库,代码维护人员会进行错误修复. 如果有人使用开源,那么可以希望其他人在开源社区中修复该错误。但是开源社区中没有服务水平协议(SLA)。或者,可以自己修复开源中的bug,请开源维护者将bug修复合并到上游代码库中,即代码的主人。这些后勤工作也是一项额外的工作,并且不能保证开源项目维护者会批准它。如果开源项目不接受自制的错误修复,则必须为每个新版本手动修补开源库。

要计算修复错误的工作量,可以估计修复错误所需的平均时间,以及人们期望在任何软件代码中找到的平均错误数量。如果您在Internet上搜索,您会发现几个陈述,即修复商业产品中的错误平均需要软件开发人员半到一天的时间。根据我管理一个由20名开发人员组成的研发团队的经验,我不得不说我从来没有在一天之内看到过一个错误。我同意代码的实际更正有时不超过30分钟,但这只是修复bug所需时间的一小部分。 我会将修复错误所需的开发人员天数范围设置为0.5到2天。

开发人员需要0.5到2天的时间来修复软件错误

成本计算的第二个参数是开源软件中的错误数量。假设我们假设开源软件在其生命周期内的错误数量与任何软件一样多。在这种情况下,我们使用了一个广泛使用的假设:根据卡内基梅隆大学的CyLab可持续计算联盟的数据,商业软件通常每1000行代码就有20到30个错误。让我们进一步假设开源软件比单独开发的软件具有更少的错误(由于更多的参与者贡献和使用相同的软件),那么我们可能会在该范围的低端取值。

开源软件平均每1000行代码有20个错误

这就留下了一个应用程序有多少行代码以及其中有多少是开源的问题。应用程序中有各种各样的代码行。平均iPhone应用程序可能有50000 行,而Über应用程序有大约428000 行,而TikTok有1500万行代码。为了简化这种复杂性,并且由于我在Qt工作,我假设我们的模型应用程序使用双许可(商业支持和开源)中可用的QtFramework Essential 开源库。Qt Framework Essentials软件库通常用于高性能移动应用程序、桌面应用程序和嵌入式设备。根据SLOCCount的测量,Qt 6.3 版本的Qt Framework Essentials(qtbase和qtdeclarative存储库)包括 2.936.523行代码(LOC).

Qt Framework Essentials库包含大约300万行代码

最后,我们需要估计一个软件开发人员一天的平均成本。我将使用基于glassdoor.com的2022年美国软件开发人员的平均工资,即555美元/天。为间接员工成本加上1.25乘数(使用与欧盟资助计划相同的比率),我们得到688美元平均软件开发人员一天的成本。我将在10年期间分布预期错误的数量,这是软件重构或重做的典型时间。因此,如果有人自己维护Qt Framework Essentials开源库,那将意味着:

3000000行

/ 10年

x 20个错误

/ 1000行

x 0.5天

x 688美元
--------------------
2064000美元

人们可以期望开源社区修复大多数错误,但即使假设一个人只需要修复所有这些错误中的1%,这仍然意味着每年的成本为20640美元。


实施开源义务的成本

开源软件的使用伴随着强制性和自愿性义务。强制性责任的范围取决于代码所赋予的许可条款和条件的类型。虽然GPL、MIT和BSD等缩写背后隐藏着大量开源许可证类型,但开源软件用户的典型职责是:

1、您需要在您的产品中开发一个用户界面(UI),以显示已使用的开源软件。如果您使用多个开源软件创建软件,则开发此UI的工作将在每个开源组件之间共享。

∆ 列出诺基亚X20智能手机中所有开源组件及其许可条款的 UI

2、根据经验,您使用的开源越多,您需要将所有内容放在一起的时间就越多。根据我参加的两次积压改进会议,软件产品中此UI的初始开发需要5到10个开发人员日。我估计内容的维护每年需要一个开发人员日。

3、您需要将源代码与产品一起提供或单独提供,这意味着您需要管理一个存储库,人们可以在其中检查和下载开源代码,这取决于开源许可证,有时甚至是您自己的代码。最好创建一个工作流,允许人们请求开源软件,创建和维护一个提供相关源代码的软件存储库,并指定负责人。

∆ UI 显示如何在诺基亚X20 智能手机中获取开源代码的指南

4、相应UI的开发需要大约2到3个开发人员日。设置工作流需要另外两天的开发人员时间。创建和维护软件存储库可能需要使用Github等现有基础架构一天的时间。

5、您希望管理一份内部文档,其中列出所有开源软件许可及其许可条款,以应对客户或潜在客户的潜在请求,尤其是在您构建业务软件时。维护这份文档不是火箭科学,但我会留出一个开发人员日来最初创建它,并每年留出另一个时间来管理这个列表(可能与UI中发布的原始格式相同)。

6、您产品的用户需要能够修改设备上的开源库。如果您正在构建硬件产品,那么这意味着您需要提供刷新设备软件的方法。您可能无论如何都需要一个用于服务目的的闪烁界面,但为用户提供工具链(包括文档)可能需要相当多的努力。我将分配5个开发人员日来创建和维护工具链,但这个数字可能太少,无法完成工作,至少在最初是这样。

如果我们总结强制责任的成本,那么我们得到以下成本:

一次性费用:

5个开发者日(OSS列表UI)

2个开发者日(OSS请求UI)

2个开发人员日(OSS请求工作流程)

1个开发人员日(软件存储库)

1个开发者日(OSS PDF文档)

5 开发者日(软件刷机工具链)
------------------

16天

x 688美元(开发人员每日费率)
-------------------

11008 美元

 

年度费用:

1开发者日(OSSUI更新)

0.5开发者日(OSS 存储库更新)        

0.5开发人员日(OSS请求处理)

0.5开发者日(OSSPDF 维护)
--------------------

2.5开发者日

x 688美元(开发人员每日费率)
--------------------

1720 美元

对开源社区的志愿活动包括贡献错误修复、分享对原始代码的功能增强、参与和赞助开源社区活动,以及扮演更积极的角色,如开放的批准者或维护者-源组件。我不会在本指南中包含与志愿活动相关的任何费用,因为每个人都可以选择参加其中的哪一项。但是,请记住,开源社区是一种社会形式,它只有在大多数捐助者回馈项目时才有效。


开源软件的法律检查成本

每当将新的开源软件添加到产品中时,大多数公司都会进行法律检查。法律评估主要用于验证当前的开源政策是否得到遵守。由于只有有限数量的开源许可证类型,因此这样的法律检查不应该花费太多时间。如果有必要改变开源许可政策,这样的法律检查将耗费大量时间。很多这样的律师充当看门人,相关费用主要只发生一次。

在我看来,律师应该更加积极地监督开源许可证的使用,包括风险管理、下游用户合规、行业专利合规以及其他方拥有的知识产权以及保护自己的知识产权。其中一些活动无法轻易量化,而有些活动可能会产生危及整个业务的风险。

然而,大多数公司的实际情况不同,法律检查只进行一次。法律检查、在线确认许可条款和条件以及对是否值得承担风险进行一些研究可能不会超过一天,我希望每年都需要进行其中一项检查。

1高级律师日

x 1038美元*
--------------------

1038美元

* 根据 Glassdoor.com 的数据,美国高级律师的平均年薪:148000 美元。间接成本:207000 美元,每日费率:1038 美元


开源软件的合规管理成本

合规管理包括企业中的所有活动,以验证

- 公司产品仅包含符合内部知识产权和开源政策的开源软件

- 公司遵守开源义务

根据Synopsys 2019 年的一份***,85% 的已审计代码库包含许可证合规性问题。最好通过明确开源政策和培训软件开发人员来主动实现合规性。前面提到的法律检查也是实现合规的一部分。此外,许多公司正在应用开发后的合规实践,例如自动软件扫描和许可证管理工具。Snyk或Debriked等自动化软件扫描产品通常是按开发人员定价的云解决方案。每个开发商的价格从每月25美元到139美元不等(至少在公开可见的定价方面)。我将假设五个软件开发人员需要此功能的许可证。这些产品有助于确定一个人的产品是否包含可能不符合公司政策的开源软件,例如GPL3许可代码。由于当今的应用程序包含数百万行代码,因此自动扫描可能是避免合规性问题的有效做法。

5位贡献软件开发者

x 25美元/月

x 12个月
--------------------

1500 美元

合规检查工具的成本应根据产品中不同的OSS组件进行部分分配。


使用开源软件的总拥有成本

开源软件的总拥有成本(TCO)可以与买车相提并论。汽车有特定的购置成本。但是,除了您向汽车经销商支付的价格外,您还需要考虑任何其他费用,例如注册、保险和支持费用。虽然开源软件的购置成本为零,但在产品的生命周期中还有其他需要注意的成本。

对于本指南,我将计算五年时间范围内的TCO,这可能是商业软件生命周期的最小值。我会将TCO分为初始成本和年度经常性费用。如前所述,为了简单起见,我将排除不太可能或自愿的费用,例如诉讼费或社区捐款费用。

一次性费用:

开源义务:(16个开发天数* 688 美元)= 11008美元

年度费用:

修复错误(3M LOC / 20 BUG / LOC / 10 YEARSx 0,5 DEV DAYS x 688 USD x OWN 1%)= 20.640 USD

开源义务:(2.5 开发天 x 688 美元)= 1720 美元

法律支票:(1 律师日 x 1038 美元)= 1038 美元

合规性扫描(5个开发人员 x 25美元/月 x 12个月):1500 美元

-------------------

24898美元 

x 5年

------------------- 

124490美元

11008美元

-------------------

135498美元


结论

总体而言,135000 美元在开发您的软件产品时并不算多。开源成本的另一种选择是商业支持软件的成本,它通常以 SaaS 订阅模式出现。

故意地,我一直对推荐哪种方式持谨慎态度:开源或商业软件。决定总是取决于许多因素。TCO就是其中之一。就个人而言,由于我在Qt公司工作,所以我有偏见,我建议两者都做:使用基于开源的商业支持软件,并为开源项目贡献上游。为什么?虽然开源的采购成本非常有吸引力,并且许多相关成本可以在多个开源组件之间分摊,但它需要您的一个关键客户上报一个您发现难以修复的关键错误,并且您会喜欢有人支持你。开源和回馈开源的好处在于软件质量更好。因此,我的建议是积极参与社区活动。【作者:Peter Schneider】

如果您想了解更多关于Qt商业版的详情,请随时与我们联系。

深圳市优飞迪科技有限公司成立于2010年,是一家专注于产品开发平台解决方案与工业软件开发的高科技企业,是ANSYS、MSC、COMSOL、Qt、国产CAD、国产尺寸链公差等工业软件的战略合作伙伴,拥有十多项行业领先的自主工业软件著作权。优飞迪科技倡导“极致用户体验驱动产品开发模式”变革,助力中国质造,赋能极致研发,专注于仿真咨询、工业软件开发、工业软件销售、系统集成等领域的产品开发平台解决方案,拥有一支硬核实力的技术服务专家团队,能为企业提供“全心U 端到端服务“。如今,华为、中兴、中国航天、格力、大族、华强、华星光电等知名企业与优飞迪保持着长期的紧密战略合作伙伴关系。


来源:IFD优飞迪

航天汽车UG尺寸链
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-29
最近编辑:2年前
优飞迪科技
赋能新仿真,创优新设计
获赞 309粉丝 280文章 386课程 4
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈