日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

开源软件的总拥有成本指南

發(fā)布時(shí)間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开源软件的总拥有成本指南 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文翻譯自Is Open Source Really Free? – A Guide to Total Cost of Ownership of Open-Source Software
原文作者:Qt公司高級(jí)產(chǎn)品經(jīng)理Peter Schneider
校審:Sam Wang

使用現(xiàn)成的軟件能加速開(kāi)發(fā)進(jìn)程。然而開(kāi)源軟件(OSS)并不是免費(fèi)使用的。使用開(kāi)源軟件往往伴隨著承擔(dān)義務(wù)和風(fēng)險(xiǎn),這些都是成本。

本指南根據(jù)公開(kāi)信息和我15年的經(jīng)驗(yàn)總結(jié)了使用開(kāi)源軟件進(jìn)行專業(yè)軟件開(kāi)發(fā)的成本。

我的背景:在我的職業(yè)生涯當(dāng)中,我曾使用過(guò)多個(gè)基于開(kāi)源原則的軟件:在諾基亞網(wǎng)絡(luò)公司從Solaris 操作系統(tǒng)切換到了JBoss操作系統(tǒng)(在紅帽收購(gòu)之前),用于運(yùn)營(yíng)商級(jí)刀片式服務(wù)器。我還在諾基亞推動(dòng)并參與了maemo.org的落地,這是用于移動(dòng)設(shè)備的開(kāi)源操作系統(tǒng)。在負(fù)責(zé)某企業(yè)服務(wù)管理平臺(tái)產(chǎn)品時(shí),我也使用過(guò)許多開(kāi)源庫(kù),諸如Angular、Docker、Log4J和Fullcalendar.io。

作者注:我堅(jiān)信開(kāi)源軟件的價(jià)值。分析使用開(kāi)源軟件的成本并不是為了夸大或貶低開(kāi)源軟件的價(jià)值。我一直相信,在具有共同利益的情況下共享知識(shí)產(chǎn)權(quán)才是軟件開(kāi)發(fā)的未來(lái)。盡管如此,我一直愿意為使用開(kāi)源付費(fèi):無(wú)論是JBoss的支持費(fèi)、贊助Maemo社區(qū)、為服務(wù)管理平臺(tái)支付多年的開(kāi)源管理費(fèi),或是購(gòu)置與開(kāi)源產(chǎn)品(fullcalendar.io)相關(guān)的高級(jí)功能。我一直很重視開(kāi)源軟件,尤其是在商業(yè)產(chǎn)品開(kāi)發(fā)領(lǐng)域。本指南的目的是闡明事實(shí),助您做出更好的決策。

開(kāi)源即免費(fèi)的迷思

開(kāi)源軟件的購(gòu)置成本接近于零。然而,開(kāi)源軟件伴隨著管理成本和風(fēng)險(xiǎn)。下圖說(shuō)明了與基于開(kāi)源軟件的開(kāi)發(fā)相關(guān)的總擁有成本的常見(jiàn)誤解。


乍一看,在使用開(kāi)源軟件庫(kù)時(shí),軟件開(kāi)發(fā)的總成本僅包含人員和開(kāi)發(fā)工具的直接開(kāi)發(fā)成本。有商業(yè)支持的軟件庫(kù)會(huì)額外收取軟件許可證費(fèi)用和潛在的分發(fā)費(fèi)用。從這個(gè)對(duì)比可以看出,決定選擇什么方案似乎很簡(jiǎn)單。然而,所有的真相都隱藏在表面之下。


雖然在產(chǎn)品的生命周期內(nèi),使用商業(yè)軟件幾乎沒(méi)有隱性成本,但使用開(kāi)源庫(kù)時(shí)必須考慮幾項(xiàng)額外成本,包括:


1.?? ?自行修復(fù)bug,而不是讓商業(yè)維護(hù)者代勞(或是寄希望于社區(qū)中有人會(huì)義務(wù)快速解決)


2. ? ?履行開(kāi)源義務(wù),比如記錄使用過(guò)的開(kāi)源組件以供審計(jì),管理一處提供源代碼下載的存儲(chǔ)庫(kù),以及創(chuàng)建顯示產(chǎn)品中所用開(kāi)源庫(kù)的用戶界面。


3.?? ?當(dāng)引入新的開(kāi)源元素或開(kāi)源許可證條款發(fā)生變化時(shí),實(shí)施法律審核和風(fēng)險(xiǎn)評(píng)估


4.?? ?根據(jù)企業(yè)信息安全、企業(yè)開(kāi)源政策和開(kāi)源許可證條款,定期進(jìn)行許可證合規(guī)性審核


本指南中不包括年度安全審計(jì)等其他直接成本、間接或一次性成本。安全審計(jì),包括滲透測(cè)試,在這兩種情況下都是必要的。由不遵守開(kāi)源條款和條件導(dǎo)致的潛在一次性開(kāi)支,諸如喪失產(chǎn)品分發(fā)權(quán)、專利訴訟或因公眾聲譽(yù)受損造成的品牌損失,因其影響過(guò)大而被排除在本指南之外。這些風(fēng)險(xiǎn)同樣不容忽視。


本指南是從現(xiàn)實(shí)案例的角度出發(fā)闡釋使用開(kāi)源的總成本。總擁有成本的計(jì)算很容易隨著輸入?yún)?shù)變更。本指南的重點(diǎn)是解釋成本構(gòu)成,而非任何獨(dú)立結(jié)果。


1)自行修復(fù)開(kāi)源代碼的成本


修復(fù)bug需要時(shí)間。每個(gè)軟件不管是否開(kāi)源,都會(huì)有bug。問(wèn)題只是誰(shuí)來(lái)修復(fù)bug。如果購(gòu)買了有商業(yè)支持的軟件庫(kù),就會(huì)有代碼維護(hù)人員修復(fù)bug。如果使用開(kāi)源軟件,那么可以寄希望于開(kāi)源社區(qū)人員會(huì)修復(fù)bug。但是在開(kāi)源社區(qū)中并沒(méi)有服務(wù)水平協(xié)議(SLA)。或者,用戶可以自行修復(fù)開(kāi)源軟件中的bug,并要求開(kāi)源維護(hù)者將bug修復(fù)合并入上游代碼庫(kù),即代碼所有者。這些后勤工作也是一種額外付出,且不能保證得到開(kāi)源項(xiàng)目維護(hù)者的批準(zhǔn)。一旦開(kāi)源項(xiàng)目不接受外部的bug修復(fù),那么在使用每個(gè)新版本時(shí)都必須手動(dòng)為開(kāi)源庫(kù)打補(bǔ)丁。

為了計(jì)算修復(fù)bug的工作量,可以用在任意軟件代碼中預(yù)期的bug平均數(shù)量來(lái)預(yù)估修復(fù)一個(gè)bug的平均時(shí)間。網(wǎng)上的一些說(shuō)法指出,一位軟件開(kāi)發(fā)者平均需要花費(fèi)半天到一天的時(shí)間去修復(fù)一個(gè)商業(yè)軟件中的bug。根據(jù)我管理一個(gè)由20名開(kāi)發(fā)者組成的研發(fā)團(tuán)隊(duì)的經(jīng)驗(yàn)來(lái)看,不得不說(shuō),我從沒(méi)見(jiàn)過(guò)一個(gè)bug能在一天之內(nèi)被修復(fù)。我同意,有時(shí)對(duì)于代碼的實(shí)際修正時(shí)間不超過(guò)30分鐘,但這僅僅是修復(fù)一個(gè)bug所需時(shí)間的一小部分。我會(huì)將開(kāi)發(fā)者修復(fù)一個(gè)bug的平均時(shí)間范圍設(shè)定在半天到兩天之間。


|???? 開(kāi)發(fā)者平均需要半天到兩天時(shí)間修復(fù)一個(gè)軟件bug。


成本計(jì)算的第二個(gè)參數(shù)是開(kāi)源軟件中的bug數(shù)量。假設(shè)開(kāi)源軟件在其生命周期中有和其他軟件一樣多的bug。在這種情況下,我們使用一個(gè)通用假設(shè):根據(jù)卡內(nèi)基梅隆大學(xué)CyLab可持續(xù)計(jì)算聯(lián)盟的數(shù)據(jù),商業(yè)軟件每1000行代碼通常有20到30個(gè)bug。讓我們進(jìn)一步假設(shè),開(kāi)源軟件的bug數(shù)量比獨(dú)立開(kāi)發(fā)的軟件更少(由于更多的參與者貢獻(xiàn)并使用相同的軟件),那么我們可能會(huì)在這個(gè)范圍中取一個(gè)低值。


|????開(kāi)源軟件平均每1000行代碼有20個(gè)bug。


這就留下了一個(gè)問(wèn)題:一個(gè)應(yīng)用程序有多少行代碼,其中又有多少是開(kāi)源的。各個(gè)應(yīng)用程序中的代碼行數(shù)有時(shí)相差會(huì)很大。iPhone應(yīng)用程序平均有五萬(wàn)行代碼,über應(yīng)用程序有大約42.8萬(wàn)行代碼,而TikTok有1500萬(wàn)行代碼。為簡(jiǎn)化這種復(fù)雜性,且因?yàn)槲以赒t工作,我假設(shè)我們的模型應(yīng)用程序使用了Qt Framework Essential開(kāi)源庫(kù),該庫(kù)支持雙重許可模式(商業(yè)支持和開(kāi)源)。Qt Framework Essentials軟件庫(kù)常用于高性能移動(dòng)和桌面應(yīng)用以及嵌入式設(shè)備。據(jù)SLOCCount統(tǒng)計(jì),Qt 6.3版本的Qt Framework Essentials(qtbase與qtdeclarative存儲(chǔ)庫(kù))包含了293,6523行代碼(LOC)。


|??? Qt Framework Essentials庫(kù)包含約三百萬(wàn)行代碼


最后,我們需要估算軟件開(kāi)發(fā)者一天的平均成本。我將使用基于glassdoor.com 的2022年美國(guó)軟件開(kāi)發(fā)者的平均工資,即555美元/天。加上間接員工成本的1.25倍(與歐盟資助項(xiàng)目相同比率),我們得到軟件開(kāi)發(fā)者的日平均成本是688美元/人。我將預(yù)期的bug數(shù)量分?jǐn)偟?0年內(nèi),這是軟件重構(gòu)或重做的典型時(shí)間。所以,如果有人愿意自行維護(hù)Qt Framework Essentials開(kāi)源庫(kù),則意味著:


我們可以寄希望于開(kāi)源社區(qū)修復(fù)大部分bug,但即使假設(shè)某人只需要修復(fù)所有這些bug的1%,這仍意味著每年20,640美元的成本。


2)履行開(kāi)源義務(wù)


使用開(kāi)源軟件伴隨著強(qiáng)制性和自愿性的義務(wù)。強(qiáng)制性責(zé)任的范圍取決于代碼包含的許可證條款和條件類型。盡管在諸如GPL、MIT和BSD等縮略詞背后隱藏著眾多開(kāi)源許可證類型,開(kāi)源軟件用戶的典型責(zé)任包括:

i. ? ?您需要在產(chǎn)品中開(kāi)發(fā)一個(gè)用戶界面(UI),顯示使用了哪些開(kāi)源軟件。如果您使用多個(gè)開(kāi)源軟件來(lái)創(chuàng)建軟件,那么開(kāi)發(fā)這個(gè)UI的工作將在每個(gè)開(kāi)源組件之間分?jǐn)偂?/p>

(圖)諾基亞X20智能手機(jī)中列出所有開(kāi)源組件及其許可證條款的用戶界面


一般來(lái)說(shuō),使用的開(kāi)源軟件越多,將所有內(nèi)容整合在一起所需的時(shí)間就越長(zhǎng)。根據(jù)我參與過(guò)的兩個(gè)待辦事項(xiàng)優(yōu)化會(huì)議來(lái)看,軟件產(chǎn)品中該UI的初始開(kāi)發(fā)需要一位開(kāi)發(fā)者五到十個(gè)天時(shí)間。我估計(jì)每年內(nèi)容維護(hù)需花費(fèi)他/她1天時(shí)間。


ii. ? ?您需要將源代碼與產(chǎn)品一起或單獨(dú)提供,這意味著您需要管理一個(gè)存儲(chǔ)庫(kù),人們可以根據(jù)開(kāi)源許可證,有時(shí)甚至是您自己的代碼,在其中查看和下載開(kāi)源代碼。最好能創(chuàng)建一個(gè)工作流,使人們能夠請(qǐng)求使用開(kāi)源軟件、創(chuàng)建并維護(hù)一個(gè)可以獲得相關(guān)源代碼的軟件儲(chǔ)藏庫(kù),并指派專人負(fù)責(zé)。

(圖)諾基亞X20智能手機(jī)中的UI,顯示如何獲取開(kāi)源代碼的指南

開(kāi)發(fā)相應(yīng)的UI需要大約2到3人天。創(chuàng)建工作流又需花費(fèi)2人天。使用Github等現(xiàn)有基礎(chǔ)設(shè)施創(chuàng)建和維護(hù)軟件存儲(chǔ)庫(kù)可能需要一天的時(shí)間。

iii. ? ?您需要管理一個(gè)列出所有開(kāi)源軟件許可證以及其許可證條款的內(nèi)部文檔,以滿足客戶或潛在客戶的潛在需求,尤其是在構(gòu)建商業(yè)軟件時(shí)。維護(hù)這個(gè)文檔并不困難,但最初創(chuàng)建它需要1人天,以后每年再留出1人天用于管理該列表(可能與UI中發(fā)布的列表使用相同的原始格式)。

iv. ? ?產(chǎn)品用戶需要能夠修改設(shè)備中的開(kāi)源庫(kù)。如果您正在構(gòu)建一個(gè)硬件產(chǎn)品,那么這意味著您需要提供刷寫設(shè)備軟件的方法。出于服務(wù)的目的,您可能需要提供刷寫界面,但為用戶提供包括說(shuō)明書(shū)在內(nèi)的工具鏈可能頗費(fèi)周章。我會(huì)分配5人天來(lái)創(chuàng)建和維護(hù)該工具鏈,但這個(gè)數(shù)字對(duì)于完成此項(xiàng)工作來(lái)說(shuō)可能太少了,至少初始階段是這樣。

如果我們把強(qiáng)制性責(zé)任的成本相加,就會(huì)得到下列成本:

一次性開(kāi)支:


年度開(kāi)支:

?
開(kāi)源社區(qū)的志愿活動(dòng)包括貢獻(xiàn)修復(fù)bug、分享對(duì)原始代碼的功能改進(jìn)、參與和贊助開(kāi)源社區(qū)活動(dòng),以及扮演一個(gè)更積極的角色,比如開(kāi)源組件的審批者或維護(hù)者。本指南不包含任何與志愿活動(dòng)有關(guān)的費(fèi)用,因?yàn)槊總€(gè)人都可以選擇參加哪些活動(dòng)。但請(qǐng)記住,開(kāi)源社區(qū)是一種社會(huì)形式,只有當(dāng)大多數(shù)受益人為項(xiàng)目做出貢獻(xiàn)時(shí),它才能發(fā)揮作用。


3)開(kāi)源軟件的法律審核


每次在產(chǎn)品中添加新的開(kāi)源軟件,大多數(shù)公司都會(huì)進(jìn)行法律審核。法律評(píng)估主要用于驗(yàn)證當(dāng)前的開(kāi)源政策是否得到遵守。由于開(kāi)源許可證類型有限,這樣的法律審核應(yīng)該不會(huì)花費(fèi)太多時(shí)間。如有必要改變開(kāi)源許可證政策,這種法律審核則將消耗大量的時(shí)間。大多數(shù)情況下由律師進(jìn)行把關(guān),而相關(guān)成本通常只發(fā)生一次。


在我看來(lái),律師應(yīng)該更積極地持續(xù)監(jiān)控開(kāi)源許可證的使用,包括風(fēng)險(xiǎn)管理、下游用戶合規(guī)性、遵守行業(yè)專利和他人知識(shí)產(chǎn)權(quán)并保護(hù)自己的知識(shí)產(chǎn)權(quán)等方面。這其中的一些活動(dòng)很難量化,而另一些則可能會(huì)產(chǎn)生危及整個(gè)企業(yè)的風(fēng)險(xiǎn)。


然而,大多數(shù)公司的現(xiàn)實(shí)情況不盡相同,法律審核也只會(huì)執(zhí)行一次。一次法律審核,確認(rèn)在線的許可證條款和條件,評(píng)估潛在的風(fēng)險(xiǎn),可能不會(huì)超過(guò)一天時(shí)間,我預(yù)計(jì)每年需要進(jìn)行一次這種審核。


*根據(jù)Glassdoor.com的數(shù)據(jù),美國(guó)高級(jí)律師的平均年薪為:148,000美元。間接成本:207,000美元,日薪:1,038美元


4)開(kāi)源軟件合規(guī)管理


合規(guī)管理包括企業(yè)所有活動(dòng),需檢查:

  • 公司產(chǎn)品只包含符合內(nèi)部知識(shí)產(chǎn)權(quán)和遵守開(kāi)源政策的開(kāi)源軟件

  • 公司遵守開(kāi)源義務(wù)


根據(jù)Synopsys的2019年白皮書(shū),85%的被審計(jì)代碼庫(kù)存在許可證合規(guī)問(wèn)題。最好能通過(guò)明確開(kāi)源政策和培訓(xùn)軟件開(kāi)發(fā)者來(lái)主動(dòng)實(shí)現(xiàn)合規(guī)性。前文提到的法律審核也是實(shí)現(xiàn)合規(guī)性的一部分。此外,許多公司正在應(yīng)用諸如自動(dòng)化軟件掃描和許可證管理工具來(lái)進(jìn)行開(kāi)發(fā)后合規(guī)管理。


自動(dòng)軟件掃描產(chǎn)品,如Snyk或Debricked,通常是按開(kāi)發(fā)者定價(jià)的云解決方案。每個(gè)開(kāi)發(fā)者的價(jià)格從每月25美元到139美元不等(至少公開(kāi)定價(jià)如此)。我將假設(shè)5位軟件開(kāi)發(fā)者需要該產(chǎn)品許可證。這些產(chǎn)品有助于識(shí)別某產(chǎn)品是否包含可能不符合公司政策的開(kāi)源軟件,例如GPL3許可證的代碼。由于現(xiàn)在的應(yīng)用程序包含數(shù)百萬(wàn)行代碼,自動(dòng)掃描也許是避免合規(guī)問(wèn)題的有效實(shí)踐。


合規(guī)審查工具的成本應(yīng)根據(jù)產(chǎn)品中不同的開(kāi)源軟件組件進(jìn)行部分分配。


使用開(kāi)源軟件的總擁有成本

開(kāi)源軟件的總擁有成本(TCO)可以看成是購(gòu)買汽車。汽車有特定的購(gòu)置成本。然而,除了向汽車經(jīng)銷商支付的價(jià)格以外,您還需要考慮所有額外的開(kāi)支,如登記、保險(xiǎn)和維護(hù)費(fèi)用。盡管開(kāi)源軟件的購(gòu)置成本為零,但在產(chǎn)品的生命周期當(dāng)中,大家還需要了解其他成本。


本指南將以五年為時(shí)間框架計(jì)算TCO,這可能是商業(yè)軟件生命周期的最小值。我將TCO分成初始成本和年度經(jīng)常性開(kāi)支。如前所述,為了簡(jiǎn)單起見(jiàn)我將排除不太可能發(fā)生的或自愿的開(kāi)支,如訴訟費(fèi)用或社區(qū)捐款等。

結(jié)論


總體而言,13.5萬(wàn)美元的軟件開(kāi)發(fā)成本并不算多。開(kāi)源成本的替代方案是帶商業(yè)支持的軟件的成本,通常是SaaS訂閱模式。


我在推薦選擇開(kāi)源或商業(yè)軟件時(shí)一直很謹(jǐn)慎。決策總是取決于諸多因素。總體擁有成本就是其中之一。就我個(gè)人而言,由于我在Qt公司任職,自然就有所偏頗,我的建議是雙管齊下:使用基于開(kāi)源的有商業(yè)支持的軟件,并為開(kāi)源項(xiàng)目做貢獻(xiàn)。為什么?雖然開(kāi)源的購(gòu)置成本近乎為零,這極具吸引力,而且許多相關(guān)成本可以在幾個(gè)開(kāi)源組件之間分?jǐn)?#xff0c;但當(dāng)遇到重要客戶反饋一個(gè)bug而您難以自行修復(fù)時(shí),您就會(huì)覺(jué)得有人提供技術(shù)支持也不錯(cuò)。開(kāi)源和回饋開(kāi)源的好處在于軟件質(zhì)量更好。因此,我的建議是積極參與社區(qū)活動(dòng),這最終會(huì)幫助到每個(gè)人。


您覺(jué)得這個(gè)指南有用嗎?不妨看一看Qt的其他軟件開(kāi)發(fā)指南,例如由Qt公司委托Forrester編寫的Smarter Products Need Smarter Development報(bào)告。

總結(jié)

以上是生活随笔為你收集整理的开源软件的总拥有成本指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。