互聯網所依賴的開源社區免費勞力還能撐多久?(中)

開源經濟

儘管開源軟件很快被許多硅谷大型科技公司所接受,但經濟學家們仍在研究,這些項目怎麼總能成功地解決市場問題呢?對此,自由軟件人群給出的標準解釋是:自由軟件可以在自由和利他主義的道德要求下持續發展,但這似乎也不足以解釋像Linux這樣的項目為什麼能如此快速發展。 人類歷史上,從來沒有任何行業僅依靠其貢獻者的善意,就產出了這種對技術要求非常嚴格的項目。

互聯網所依賴的開源社區免費勞力還能撐多久?(中)

為了搞清楚真相,21世紀初人們進行了一系列研究,這些經濟學家試圖在開發者身上找到理性生產者/消費者的概念。

2000年,哈佛大學經濟學家Josh Lerner和麻省理工學院經濟學家Jean Tirole分別發表了關於開源開發的經濟學定義,他們聲稱能證明開源的主要動因是開發人員的經濟利益,而不是給自由軟件世界做貢獻的願望。

他們認為,直接利益來自他們所在的公司,而這些公司通過修復錯誤或添加功能來獲利。長期利益方面,開源開發者通過向未來僱主或風投展示才能,以此推動職業生涯發展,同時也可獲得開源同行的支持和認可。

Josh Lerner和Jean Tirole關於開源開發的經濟學解釋獲得廣泛認可。2000年,21世紀初,這一理論一度非常流行,但二十年來,FOSS(Free and opensource software,免費開源軟件)生態在規模和生產方式方面都發生了很大變化。

這一變化主要因為一個叫Git的神器,Git是一個開源工具,它能讓分佈式協作開發成為可能,基於Git的Github(據說是全球最大的同性交友網站)網站大大加速的開源開發的節奏,降低了新開發者的入門門檻。在Github出現之前差不多十年前,Josh Lerner和Jean Tirole就預見到會出現一個允許大量貢獻者協作的平臺。

開源貢獻者數量的激增,通常被認為是對其開發範式的驗證。 在過去十年中,越來越多的FOSS開發者在抱怨維護開源代碼庫很麻煩。許多開發人員指出,用戶的權利是這種抱怨的根源。

正如開發人員William Gross(威廉·葛洛斯)所說,當依賴開源軟件的公司越來越多,那開源開發人員將面對激增的功能請求和代碼問題,許多公司都希望他們的改進能快點得到反饋。 換句話說,人怕出名豬怕壯,一旦一個項目火了,該項目的開發者就快忙瘋了。

此時,許多人又想起了Lerner和Tirole兩位經濟學家的言論,許多FOSS開發者也開始懷疑,依賴於志願者善意的軟件開發模式是否能持續擴大規模。一些開發人員把這個當做一種文化問題,可以通過讓新手熟悉規則,讓維護人員來解決這些問題。有些人則認為,這是一個可以通過錢來解決的問題。不過,也有人覺得這都不叫事兒。

開源的悲劇

2015年,Nadia Eghbal捨棄了她作為風投家的工作,開始研究為什麼開源項目很難將這些工作貨幣化。Eghbal說,當看到許多開源軟件被廣泛使用後,他對開源的經濟學越來越感興趣,但始終搞不清楚改如何為其開發提供資金支持。

在Eghbal看來,這其中有許多讓人費解的事兒。流行的開源項目跟成功的創業公司有相似之處:都能迅速被採用,都有龐大的用戶群,開發成本或者說門檻比較低。不過,如果要看中投資回報的話,很多時候這些創業項目都是風頭毒藥。對支持開源社區的金主來說,最重要的是要找到能持續為開源提供資金的機制。

為了找到這個機制,Eghbal下了很大功夫去了解開源項目的維護者。在對數百名開源開發者進行了一年的訪談之後,Eghbal發佈了(Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure)《路和橋:數字基礎設施背後的奉獻者》,可能是有史以來開源軟件經濟學最具代表性的研究了。

Eghbal的報告將開源軟件視為一種非排他性的公有產品(原文是“public good”或者翻譯成共有產品?),這是社會科學中的一種描述,簡而言之就是任何人都可以使用的資源,無論他們是否交了稅,非排他性的公有產品是健康社區的基石,但也受到所謂的“搭便車問題”和“公地悲劇”的影響。

這個問題也比較明顯,就是有些公有產品一方面被過渡消費,一方面又產能不足,但是又沒辦法阻止那些沒有做過貢獻的人使用它。開源就是典型的公有產品,比如像谷歌這樣的巨頭能沉下心來研發一個叫Tensorflow的好東西,然後把它開源,谷歌沒法讓別人說你別用我的,如果突然有很多公司開始用Tensorflow,但是維護團隊又沒有對應增多,生產力跟不上消費者增多了,問題就來了。

社區公共用地也是一樣,當人們無管制地使用公共用地,但沒有機制來鼓勵某個個體承擔維護公共用地的成本,每個人都只顧著自己的利益而不付出的時候,最後都會消耗殆盡的。對應到FOSS中,公有產品是十億行開源代碼,代碼本身不是消耗品,但開發和維護代碼的程序員時間和經歷是消耗品。

公共用地的悲劇是經濟學中被研究的比較透徹的問題,它的解決方案是把將公地變成私人或受監管的商品,但Eghbal很快意識到,這辦法在開源軟件方面並不適用,因為將軟件變成私有產品會破壞開源開發的整個過程。

另一方面,規範開源軟件的生產過程(例如,建立類似於國家科學基金會的組織,將公共資助分配給開源軟件項目)破壞了開源軟件開發的主要優勢。監管所帶來的穩定性是以犧牲效率為代價的,在快節奏的軟件開發領域,這根本行不通。

以前,一些開源維護者試圖規範誰能用開源軟件,例如禁止與移民和海關執法部門合作的公司使用這些軟件,很快就遭到了來自開源社區的強烈負面反應,最終這項決定被撤銷,這充分證明開源軟件應該向所有人免費用。

開源社區設置訪問規則被視為解決開發人員倦怠的一種可能性方案。William Gross在博客中寫道,在這種“開源但封閉社區”的模式下,如果想要進入開發者社區,需要付費。

這種模式下,用戶仍可以隨意使用這些代碼,但是如果想要提改動和需求的話,你得掏錢,因為我們也是付出了時間和精力的,William Gross認為這種激勵下社區的活躍度會提升。

對於另外有些不願意管理社區的維護者而言,最合理的解決方案是要求開源軟件的用戶聘請開發人員來開發,這種方法最重要的要找到誰從開源項目中受益最多,然後讓他們能儘可能多地回饋生態系統。雖然準確的數據能跟蹤開源貢獻者,但有一樣東西能儘可能的描述些情況,它就是GitHub。

GitHub是2008年上線的代碼託管網站,被網友戲稱為全球最大的同性交友網站,與開源社區關聯巨大,來自全球各地約2500萬貢獻者在GitHub上存放著超過1億個代碼庫,這2500萬人參與開源的動機多種多樣,根據開源Web開發框架Ruby on Rails的創建者David Hansson的說法,過去的二十年中,開源貢獻者們的個人資料發生了很多變化。

“絕大多數開源軟件,尤其是與網絡相關的軟件,都是一些公司為了解決一些重要的技術問題,給開發人員提供一些資金贊助。”漢森表示。 “這跟理查德·斯托曼所說的自由軟件有很大不同,但它也是一種能產出優秀開源軟件的方式。”

當然,也有很大一部分開源代碼是由開發者在業餘時間寫出來的,這也非常具有代表性,漢森也認為,這些人對開源的熱情是開源生態系統的基石。

但仔細看看GitHub 2017年的主要貢獻數據會發現,漢森的說法更具有代表性,我們看到最活躍的開源項目貢獻者都來自谷歌,微軟,亞馬遜,IBM,Facebook,騰訊,百度,紅帽和英特爾等等大公司,他們每年都從基於開源軟件的產品中獲利數百億美元。許多開發者都說這些大公司從開源上獲利太多但是回饋太少,但是從這些大公司的回應中我們看到,實際上,這些公司對開源軟件有實質性貢獻。

IBM開放技術副總裁Todd Moore指出,自90年代中期以來,IBM一直在為開源項目做貢獻,當大名鼎鼎的Linux和Apache還在發展初期就得到了IBM的支持,Tood Moore給出的數據說,先後有超過1200名IBMer為1000個開源項目做出過貢獻。Moore還說,“很多”IBMer全職貢獻Linux,Kubernetes,Java和Node.js等開源項目,並且IBM每年都會獎勵社區裡的頂級IBM開發者。

Moore還說,IBM推行了年度認證計劃,幫助IBM員工瞭解與開源相關的價值和風險,教員工如何成為開源社區或者某個項目的有效成員,據說,有超過72000名IBMer已獲得該認證。

Google開源主管Chris DiBona也有一段類似的描述。

自谷歌成立之初,自由和開源軟件就一直是谷歌技術的一部分,DiBona表示谷歌多年來在開源許可下發布了數百萬行代碼。DiBona沒說具體谷歌有多少人在全職貢獻開源代碼,只是表示谷歌在Github上貢獻了2000多個開源項目,谷歌還為業界貢獻了開源語言Go和k8s,還有大名鼎鼎的Tensorflow。

谷歌鼓勵員工在與工作相關的開源項目上做貢獻,或者出於個人興趣去做貢獻,DiBona說,Github公佈的數據顯示,谷歌員工在Github上的行為數(activity)佔到總體的行為數的1%以上,你很難找到一個沒貢獻過代碼的谷歌員工。

谷歌和IBM通過強制或者鼓勵的方式讓員工在開源社區做貢獻,許多公司還向Linux基金會和Apache基金會捐錢。

不過,也有開發者提出,這些大公司做不做不是個問題,問題是這些公司做的貢獻夠不夠,還有,這些公司貢獻的是什麼項目?

Django是非常著名的Web開放框架,它的聯合開發者Jacob Kaplan-Moss表示,這些市值幾十億美元的大公司應該做更多貢獻,之前微軟不是說要收購Github嗎?他覺得應該把這錢的一半給到開源軟件的創建者和維護者們。

Jacob Kaplan-Moss在推特中說,開源軟件這些問題的根源是錢,解決問題的方式就是錢,這些科技公司從開源軟件中賺數十億美金,但是沒有什麼回報,他們本可以很輕易的解決這些問題,如果這些大公司真的關心開源軟件,而不是作作秀,他們應該在開源維護者和開源基金會上投入更多資金。

雖然漢森不反對為開源項目提供更多資金的提議,但在關於“開源和錢的風險”的問題時,採取了更為謹慎的立場。

如果你管理著有幾百個貢獻者的項目,有一天你為這個項目引入金錢獎勵機制的話,那會很危險!漢森認為,這些人做這些事兒並沒有經濟上的考量,只是單純出於興趣或者創造熱情才寫的代碼,你突然告訴他們說,你們投入了時間是吧,給你算成錢轉給你,這樣的話,很多人在心理上會很受傷。

這種傷害有多大呢?

漢森說起了在對Ruby on Rails做貢獻代碼時的故事。當漢森最開始啟動Rails時,漢森就說遲早會被功能請求壓得喘不過氣兒的,後來確實湧現出鋪天蓋地的需求,一瞬間他感覺自己像個軟件開發商一樣。這時候,避開市場化操作的話就顯得特別明智,因為他能不理會這些請求,如果真的拿了這些提需求的人的錢,那就得必須滿足人家的要求,但是因為他是對社區做自由貢獻,所以他不用感激任何人,拿人手短,哪兒哪兒都一樣。

我的軟件你可以免費用,如果你想讓它變得更好,那可以啊兄弟,一起來吧,漢森說,但是如果你對我大喊大叫的說這說哪兒的話,對不起了,您內,走好不送!

需要注意的是,沒人說給開源社區資金是壞事兒,包括漢森也說這是好事兒鴨!開源社區真正的問題不是要不要資金的問題,而是怎麼分配這些資金的問題!(未完待續)


分享到:


相關文章: