开源软件通识基础:第二周课程回顾与总结
接第一篇《開源軟件通識基礎:第一周課程回顧與總結》,本文為第二周課程內容的回顧與總結。
本導學班在調研全球開源教育與課程的基礎上,通過收集、整理、理解、拓展國際最新的前沿開源課程,采取眾創的模式,由 X-lab 核心開源研究的成員共同進行協作學習,以最大效率的吸收國際前沿開源知識,共創、共享、共進。本導學班,以開源 FOSS 和開源 COSS 課程內容為基礎,結合自己的理解,并進行適當拓展。第二周的課程內容包括了:
軟件行業與開源
開發者主導的開源基金會
用戶主導的開源基金會
單一開源軟件供應商模式
勞動者經濟學
一、軟件行業與開源
為了了解開源中的各類商業模式,我們先來看看整個軟件行業是如何工作的,什么是軟件,以及軟件如何為生態系統提供基礎。
現在誰都知道軟件是什么,它無處不在,在過去的二十年里,軟件蓬勃發展,幾乎進入了每一個行業,上面這些圖片展示了各類軟件。今天的軟件行業已經成為主流行業。在 2016 年,就達到了 1.3 萬億的總市值。這些數字到底是否精確,其實并不重要。但至少能看出,它是一個非常非常大的行業,影響力非常大。如果你從事這方面的事業是一件好事,因為它正在不斷的增長,而且是一個找工作的好地方。
畫面中的人物是硅谷精英 Marc Andreson。他在接受《華爾街日報》的采訪時說到——軟件現在正在吞噬這個世界。實際上,我認為他的觀點主要是:軟件無處不在意味著,沒有高科技產品能脫離軟件的服務;但我更傾向于:沒有軟件就不會有創新,也沒有如此高速的創新。
和其他行業比較,比如,農業和其他的行業也在進行創新,都是硬件主導的。但是因為軟件的獨特特性——它是可塑的,可以快速、容易地更改。軟件領導的創新速度比任何硬件都高出一個數量級。
正在吞噬這個世界的不僅僅是軟件,更具體來說,開源軟件正在吞噬世界。
軟件行業的重要參與者有軟件供應商、咨詢公司以及監管機構等。軟件供應商公司,他們生產軟件產品;咨詢公司,他們需要與客戶進行交互來執行項目。不同之處是,軟件供應商的產品被賣給一個市場,而不是單一的客戶,而咨詢公司的項目總是針對特定的客戶群體,為它們開發特定的解決方案。另外還有監管機構和其他的參與者。
那我們先來看軟件產品,上圖總結了軟件產品的要點,整個產品包含核心產品以及培訓、咨詢、運營等部分。
其中核心產品包含了軟件最基本的功能部分,具體圖中寫的比較清楚了。那對于產品的使用權如何定價:首先要看的使用范圍,可以按用戶的數量或機器的數量來收費;也可以出售不同的持續時間,這些給到用戶的權限可能只有一年或一個月,也可能是永久的。例如,如果您提供的軟件作為他人產品的基礎,他們肯定會想擁有永久性地使用它的權利,而如果客戶就是最終的用戶,他們可能會選擇一個有限時間的版本。客戶會根據自己的需要進行選擇。
在軟件服務的訂閱服務中,您可以進一步將這些支付細分為:初始許可費和定期維護費。
現在我們來看軟件項目,要注意和軟件產品的區別。項目是一個過程,有開始,也必須有一個結束,否則它不是一個項目。與產品相比,軟件項目的價格與正在執行的勞動力密切相關。所以客戶為定制的項目付費,通常還會支付勞動力。比如,學士和碩士論文可以作為項目。
為了更深入的理解:在這里我們看到這兩種類型的企業之間的主要區別。左邊是,向市場銷售產品的軟件供應商。右邊是,與客戶交互做項目的咨詢公司。
我們可以看到產品收入是如何不斷積累的。項目收入是逐年保持不變的,因為咨詢公司只有有限的人數。如果他們每年做一個項目,那就是他們賺的錢。
所以你可以看到。最初你在項目設置中賺的錢可能會高于訂閱費或維護費用,甚至是軟件產品的初始許可費。但隨著時間的推移,它不能真正成長。
所以在一段時間后。一個公司的軟件產品收入將超過一些咨詢的項目收入。當然,咨詢公司可以通過雇傭更多的人來成長。但經濟增長卻受到了他們雇傭稱職人才的速度的限制。這通常比軟件公司增加客戶去使用他們的產品的速度要慢得多。下圖舉出了幾個很好的例子,來說明產品和項目的發展關系。
現在我們來看看,軟件行業是如何基于這些的軟件產品和項目來工作的。所以首先要理解,客戶實際上不想購買軟件產品,他們實際想要的是一個所謂的解決他們問題或挑戰的辦法。
因此理想情況下,他們去聯系IBM這樣的全面服務提供商。對客戶來說,他們從一家公司購買最合適的硬件,軟件和實施服務。如果出錯了,他們可以向那家公司投訴。
這就是垂直集成模型。這種垂直購買的情況實際上是六七十年代、八十年代的原始情況。在一個軟件幾乎不作為一個獨立的實體存在的時候,像 IBM 和 DEC 這樣的公司相互競爭,向客戶銷售一個垂直集成的解決方案。
其中包括:屬于特定供應商的專利和知識產權的硬件,一種在硬件上運行的操作系統。它也是特定供應商擁有的操作系統。然后首先是一個應用程序,一個出售給多個客戶的標準應用程序。甚至可能是為特定客戶開發的自定義應用程序。但所有這些都建立在專有的操作系統和硬件之上。優點是,垂直集成可以確保這些部件真的能夠很好地協同工作。缺點是,一個供應商必須把所有的工作做得很好。
更好的方法是水平分層設計,并且讓這些層的專業化。所以從 80 年代和 90 年代開始。我們看到了分隔這些層的非常明確的邊界出現了。
有了明確定義的邊界,會出現專門從事這些層的供應商。有時這些層主要被一個特定的供應商占據。就像 Windows 一樣,有很長一段時間是主要的操作系統供應商。層內之間會有競爭,底層的實現會使上層的實現成為可能,這樣就產生了平臺,構成一個生態系統。垂直集成無論怎么重構,最終速度都太慢,而且不夠創新。
商業模式:商業模式是一種企業的運作方式,是企業元素及其關系如何互動以幫助企業實現戰略目標的概要描述(模型)。代表性的元素可以是產品,合作伙伴,人員,職位等。代表性的關系是管理其互動的流程。
你有時會聽到人們談論開源的商業模式。嚴格地說,“開源不是商業模式”,但開源可以是商業模式的關鍵推動者,以至于有時這是商業模式的主導地位和核心,以至于商業模式本身被稱為“開源”(open core模式)。
二、開發者主導的開源基金會
一個開源的開發人員主導的基金會是一個非營利性的組織。其目的是管理無差異化的開源軟件的開發,可供基金會成員和公眾使用。
作為一個組織,它有一些成員,但通常是在開發人員的基礎上,然后是軟件供應商,產品供應商、產品服務提供商和咨詢公司。
開發者基金會的動機:最初的歷史意義是支持和保護開發人員和開源項目、保護開發人員免受法律訴訟的影響、確保良好的開源治理、在法律上代表項目利益。
此后不久,工業界就了解到了這一點。開源開發人員基金會是一種以結構化的方式結合起來的好方法。這也幫助他們創造了一個更具競爭力的生態系統。生態系統中的人可以從增強的競爭力中獲益。具體來說,它讓客戶錢包份額的增加。這意味著在不傷害客戶的情況下賺更多的錢、接觸到價格更敏感的客戶、發展可尋址市場。
課上我們針對這三個獲益點,結合下面三張圖進行了具體說明。
新的開源項目可以快速獲得用戶和貢獻。也會面臨一系列問題。我們在課上介紹了開源社區的優勢,以及相較于傳統財團有哪些優勢。
開發者基金會也可以分為兩類,一類是應用型開發者基金會,在一個應用程序開發人員的基礎上,重點是共同開發、聯合管理、開發一個特定的開源應用程序。然后是涉及其中的公司,通常提供附加組件、服務和咨詢。例如,WordPress 基金會,Drupal基金會, blender基金會。
另一類是平臺型開發者基金會,是平臺開發人員的基礎。專注于特定行業標量軟件平臺的開發。這不是一個直接賣給客戶的應用程序。相反,該平臺會被相關的公司嵌入到任何更大的項目或產品中。所以這種平臺開發人員基礎的例子包括 Linux 基金會、Eclipse 基金會、OpenStack 基金會等。
上圖展示了一個開發者基金會的藍圖,課程中我們針對每一個關鍵部分進行了介紹,感興趣的朋友可以去B站看我們的錄播課程。
三、用戶主導的開源基金會
這次我們將討論開源軟件基金會的另一個變體,我們稱之為用戶主導的開源基金會。不同于由軟件開發公司和產品供應商發起和組織的開發者基金會,用戶基金會是由軟件用戶組織和發起的。
當你再次審視開源項目時,你會發現一些項目都是基于用戶并由其推動的,典型的有 GNU Health 項目。但是 GNU Health 項目具有一個前提條件,除了 FSF 之外沒有正式的組織,但它并不是真正的開發者用戶基金會。通常,一個特定的軟件中的利益相關者的利益,是由一個非盈利實體組織負責的,該組織接管了所有需要商定和管理的事情,例如加入某個組織的聯合權利和商標。Kuali 基金會將是我們將要研究的一個例子。
因此,這里對開源用戶基金會的定義是,一個非盈利性組織,其目的是提供資金和管理, 但不一定是開發資金和管理非差異化的開源軟件的開發。它通常是由軟件用戶公司(如銀行或大學)發起,他們需要軟件來進行運營,而不是銷售基于開源軟件的產品,他們只是想使用開源軟件。這些用戶公司的用戶相互協作,首先為儲備資金支付專款,然后再管理路線圖,以及下一步他們都想要的軟件開發的功能。
我們將在之后討論這些公司是如何運作的。這里有幾個用戶基金會的例子,Kuali 基金,是大學系統中使用的用戶基金會。這可能是運行時間最長的例子,也可能是最容易理解的一個,這就是為什么我們將在下面進行更深入的研究。
首先,我們需要了解導致用戶基金會誕生的最初的原因。用戶基金會想要達到的目的是,擺脫對單一供應商的依賴,讓他們所使用的軟件能夠得到多個供應商的支持和進一步開發。只有當他們所使用的軟件是開源軟件。而不是公司的專有知識產權時,這才是可行的。因此, 為了在使用同一個軟件時,使之從一個供應商轉變為多個供應商來為用戶提供服務。這就需要使該軟件開源,否則這些額外的供應商將不被允許使用它,或者如果他們沒有對源代碼副本的訪問權,那么它們的服務將遭遇巨大的阻礙。
大學的具體情況與石油和天然氣、銀行和保險等行業之間截然不同。他們決定開發他們自己需要的開源風格的軟件。如果你閱讀文獻的話,你會發現最初的動機是來自封閉源碼供應商的高成本許可證。大學花了這么多錢購買的軟件,甚至不能很好地滿足他們的需要,太過缺乏性能,不能滿足他們的需要,他們不能真正有能力去改變其他軟件的發展方向。他們非常想影響發展規劃,但他們做不到,所以他們選擇建立他們的 Kuali 基金會,這一個開源用戶基金會來改變這一切。它創建的很低調,由一些巨頭支持。隨著越來越多的美國大學的加入,一直不斷的成長著。
當你從組織的角度看像 Kuali 基金會之流時,你會發現一個藍圖,類似于你已經看過的開發者基金會。所以你需要明確組織結構,如下圖所示。首先,你當然想有一個愿景和傾聽的使命,那么你的目的是什么,你要如何管理你需要澄清的問題,如何管理知識產權,建立董事會、成員的治理機制,有哪些成員級別,最后但同樣重要的是,如何治理、發展以及如何為所有這些提供資金。
圖上這八點,我們在課程中進行了詳細的介紹和討論,歡迎感興趣的朋友來B站看錄播課程(B站賬號:Xlab2020)。
接著我們繼續介紹用戶基金會的第二個例子,OPENK。
這里的動機與預期很接近,舊的封閉源代碼模型沒有很好地發揮作用。對一個特定的供應商有很強的依賴性,成本很高,反應遲鈍,因為他們可能會把所有人或大多數人都綁死在里面,因此盡管有大量的用戶群,但是用處很小,幾乎不能影響軟件未來的發展方向、現在正在發生的事情,也不能改變軟件的內容,使其更好地為一個特定的能源供應商工作。同時還有著高風險,因為它都是封閉的,除此之外,新的軟件挑戰剛剛在德國發生,就是德國能源發展基礎設施支持下的長期的智能電網,例如現在許多房屋從屋頂上的太陽能板反饋能量,將能量反饋到能量分配網絡中,為此,需要編寫軟件,以便有一個交換條件,或者現在能源供應商可以適當補償家庭投入系統的能量。
因此,OPENK 的最初動機實際上是,該如何處理可憐的舊軟件,但很快動機就變成了面對全新的、即將到來的軟件挑戰該做些什么,并決定以用戶基金會的形式來應對這些新的挑戰。同樣,我們也按照用戶基金會的藍圖對OPENK進行了分析,歡迎來B站觀看錄播課程。
如果深入思考這個模式,依然會存在問題。如果市場規模太小,那么它可能很難實現,另一方面,如果說市場太小,那應該可以得到一個閉源供應商對這塊感興趣。如果由一個閉源代碼的供應商提供其產品和服務,那么他們會提高價格,所以也許有一個死亡區間,它不足支持用戶基金會的產生,但對于小軟件供應商來說足夠大。所以在這個區間內,用戶基金會很難生存。
四、單一開源供軟件應商模式
在之前討論用戶基金會的時候,我們就提到了用戶基金會誕生的原因就是為了防止單一供應商的綁定。這一節我們將介紹單一開源供應商的定義、歷史、益處、挑戰、生命周期和產品。
首先,單一供應商開源項目是指被單一供應商控制的開源項目。在法律上,這個項目可能是開源的,但在實際上,它更符合是一個專有軟件。單供應商開源軟件是一種新型的專有軟件。那么單一開源供應商就指的是在單一開源項目背后的公司,它以這些單一開源項目作為主要業務。這里我們列舉了一些單一開源供應商。
對于原始的單一開源供應商,通常是企業家或者公司。企業家識別市場機會、創辦公司、獲得資金;公司從零開始開發軟件、通過發布開放源代碼的軟件進入市場、保持知識產權的權利。
但最近的單一開源供應商往往是這樣:企業家發現現存項目周圍的商業機會,再去創辦公司籌集資金;公司在開源社區版項目的基礎上進行開發,再發布開源代碼進入市場,保持對拓展部分的知識產權的權利。下圖展示了單一開源供應商的幾個時期。
接下來我們討論了這樣做的好處,包括更快的市場銷售、更好的業務發展、更快的產品管理、更低的軟件開發成本、更好的社區口碑、行業的信譽基礎等。當然,也有對項目的挑戰,會產生從來不付費的用戶、商業版軟件要求更高、需要更專業的支持等。
對于單一開源供應商來說,知識產權也是非常關鍵的,使用對等的許可證阻止競爭、使用貢獻者協議來保持所有權等等。通常情況下,單一開源供應商會使用多重許可證,來起到不同程度的許可。下圖展示了 2018 年的 MongoDB 許可證變化。
并且,社區是單一開源供應商非常重要的部分,優秀的開源社區可以幫助單一開源供應商提升聲譽、提高產品的質量等等。單一供應商需要針對社區創建一套引導流程,包括提升社交引導力、明確的開發流程、策略性的方向等等。社區管理是非常重要的商業環節,需要有專門的角色來負責。
并且公司也應該認識到,社區版的開源項目,大多是消極的使用者,少數是積極的貢獻者,最少的應該是公司專門負責該項目的員工。同時,對于收入來源的分布來說,絕大部分應該是企業級的交易。如下圖所示。
接著我們討論了單一開源供應商的生命周期。早期到中期,單一開源供應商都會是非常專注、非常公平的開源開發者,一直到后期,才會出現閉源的產品。
五、開源勞動者經濟學
這一節我們來看開源的勞動者經濟學。如果說,誰是最大的開源受益者,我想 Linus Torvalds 可能是最符合的人。但是他在參與之初,絕對想不到能帶給他如此之大的收益。不僅是他,許許多多參與開源的人都獲得了巨大收益,這背后的勞動者經濟值得我們深思。
我們先來看傳統的開發者生涯。一個軟件企業內部,通常有市場營銷、產品管理、產品開發三個大部門。作為開發者,可能畢業后從開發工程師做起,一條路是一直技術做到底,那么架構師甚至 CTO 可能是最高的職位。但開發者也可能會轉型去做產品,先從產品經理做起,最后成為 CPO 也有可能。不過很少有人會去市場部門,這個比較少見。
但是在開源中,開發者的職業生涯是不同的。這一塊我們上一周的內容中也有提到。首先是用戶,你作為用戶,對某個項目出現了興趣,慢慢熟悉,后來成為貢獻者甚至領導這個項目的發展等等。
參與開源社區,對開發者來說有非常大的好處,比如可驗證的技術能力、同行證實的能力、有權力和影響力的地位等等。與傳統軟件公司不同,開源世界中的技術是在陽光底下的。你的實力可以用代碼來證明,也可以看到你在開源社區中的影響力。你的聲譽你的地位,都證明了你的實力。課程中,我們花了很多時間具體介紹開源開發者的這三點好處。
剛剛是對開發者的好處,然后我們來聊一下開源開發對公司的好處。通常,這個開源項目的未來發展是更清晰的,開發的每一步都是透明的,而且在社區的視野之下,比起公司少得可憐的開發者來說好很多。另外,開源項目的問題更容易被發現、被解決,這也導致了產品的質量更高。同時,開源項目的開發成本更低,社區中有非常多熱心的貢獻者,愿意自己花時間來解決問題。一個優秀的產品,帶給公司的除了經濟收益,還有更大的影響力、提高公司在行業的聲譽。下表總結了一些,對于不同類型的公司,開源的商業目的。
需要特別指出的是,貢獻者的身份并不能提供可持續的優勢,每個足夠聰明的人都可以做出貢獻并獲得認可,沒有進入的障礙,總是有一個更多的功能要實現,也沒有障礙,因為開源是免費提供給所有人的。
但是 committer 的身份確實提供了可持續的位置優勢。這個地位具有經濟價值,因為它不容易實現,也不容易派發。成熟的項目基本上不對新的提交者開放,一旦獲得,提交者的地位也不會輕易被剝奪。
從長遠來看,普通開發人員可能會被雇傭來開發專有代碼,他們知道并使用開源代碼,可能會也可能不會做出貢獻。較低的勞動力市場準入門檻拉低了工資。而開源項目的 committer可能會受雇于商業相關的開源的工作,committer 的經濟價值與開源項目有關,committer 的行為更像自由人而不是雇員。并且committer 身份的稀缺性可能導致高薪,所以未來開發者的勞動力市場將成為一個兩級社會嗎?
如果想要成為 committer,又需要哪些能力呢?項目的技術能力是肯定的,通常是編程技能,但真正的項目需要更多的技能,配置,管理,文檔,網站,...對系統構建過程的理解等等。
社會技能同樣重要,需要溝通和協作技能來進行團隊工作,需要良好的閱讀和寫作技能(電子郵件溝通)。領導技能永遠是稀有的,也是需要的,需要了解同行的行為、亞文化。在同等條件下,往往社交技能更為重要。
獲得 committer 資格是一個共同的過程,用戶通過自己的努力,從用戶到 committer 的地位不斷提升。這樣可以建立聲譽,減少錯誤決定的風險。最終,貢獻者被推舉為committer。決定通常是由現有的committer投票決定的。
有好的時機,也有壞的時機,一個成長中的項目需要更多的人,會在早期給予更多的責任。一個發展緩慢的成熟項目,很少需要更多的committer。盡量在需要幫助的時候盡早加入。對于那些潛在的committer ,這就有了兩難的境地:押注于哪個項目呢?
以上就是第二周直播課程的總結,下一次將是 COSS(商業開源軟件)的部分,小伙伴們不要錯過,歡迎加入我們~
本文為 ?X-lab開放實驗室 ?原創文章,遵循CC-BY 4.0協議,轉載請附上原文出處鏈接及本聲明。
文中部分圖片源自:https://nythesis.com
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的开源软件通识基础:第二周课程回顾与总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 万字总结:开源软件通识基础课第三周知识点
- 下一篇: 依赖注入生命周期