當(dāng)用開源軟件來構(gòu)筑產(chǎn)品時(shí)有4種規(guī)則來理解。一個(gè)產(chǎn)品團(tuán)隊(duì)(工程,產(chǎn)品管理,市場)需要去理解這些規(guī)則,最好去參與一個(gè)開源項(xiàng)目社區(qū)和交付產(chǎn)品同時(shí)服務(wù)于客戶。
這四個(gè)規(guī)則是開始于所有關(guān)于開源產(chǎn)品空間的討論的。
規(guī)則#1:你總是給予的少,獲得的多
超時(shí)的投資在一個(gè)技術(shù)上跟隨的是一個(gè)正態(tài)分布。試想以一個(gè)開源項(xiàng)目的投資作為堆積條形圖,公司和個(gè)人貢獻(xiàn)被同時(shí)占據(jù),并且替換一個(gè)個(gè)人公司的投資。那么在一個(gè)開源項(xiàng)目集合投資看起來就和作為個(gè)人投資開發(fā)封閉產(chǎn)權(quán)軟件產(chǎn)品一樣。個(gè)人和公司貢獻(xiàn)來滿足他們的私欲(個(gè)人需求)。這是一個(gè)完美的不對稱關(guān)系,投資者放棄了一些相對少的價(jià)值,隨之得到的是一些實(shí)質(zhì)的回報(bào)(一個(gè)完整的可用的軟件)。一個(gè)可以看到 Openstack 或者 Linux Kernel(linux 內(nèi)核)行為最好的可度量的方法。而不是看著這個(gè)作為一個(gè)贈(zèng)送的知識產(chǎn)權(quán),它需要被看起來是獲得所有的產(chǎn)權(quán)。
代碼行數(shù)和 COCOMO 計(jì)算來自于 Openhub.net 爬蟲的代碼倉庫。我可以確切的理解代碼行數(shù)有多滿。我理解對于 COCOMO 精度背后的關(guān)注,但是他們是代表模型,如果不是完美的,并且他們表示出了近似的趨勢。
規(guī)則2: 不要把項(xiàng)目和產(chǎn)品弄混
這一點(diǎn)有時(shí)很難理解。首先,我們假設(shè)我們討論的是一個(gè)正常運(yùn)行,成功的開源項(xiàng)目。(更多參見規(guī)則 3 和規(guī)則4)一個(gè)項(xiàng)目是一個(gè)軟件集,可以安裝運(yùn)行,解決某個(gè)有趣的問題。它是相對較少,擁有寫入權(quán)限的幾個(gè)開發(fā)人員(如:代碼提交者)之間通過代碼進(jìn)行的協(xié) 作與溝通,希望有大量用戶和貢獻(xiàn)。產(chǎn)品是解決用戶的問題并獲得金錢。
項(xiàng)目不是產(chǎn)品。 盡管很多來自開源項(xiàng)目的優(yōu)秀軟件緩解了工程師的工作(見規(guī)則1),但仍然有大量的工作要做 才能把它轉(zhuǎn)化成產(chǎn)品用來解決用戶的問題。Linux 內(nèi)核是一個(gè)項(xiàng)目,F(xiàn)edora 是一個(gè)發(fā)行版項(xiàng)目,RHEL 是一個(gè)產(chǎn)品,“但 Ubuntu 是什么“,你哭了?它有多種商業(yè)模型。Ubuntu 是一個(gè)發(fā)行版項(xiàng)目,長項(xiàng)目支持版本(LTS)是 Canonical 多個(gè)產(chǎn)品的基礎(chǔ)。
產(chǎn)品通過滿足用戶對金錢價(jià)值的期待。它們安裝于盒子之外,運(yùn)行并提供保障和賠償,服務(wù)(支持,更新,培訓(xùn),咨詢),文檔。產(chǎn)品可以通過服務(wù)或硬件的方式把項(xiàng)目打包。產(chǎn)品的就像市場中用戶獲取金錢的需求一樣具有多樣性。盡管好的項(xiàng)目解決了前兩個(gè)盒子(安裝和運(yùn)行),但它們不解決用戶關(guān)注的其他問 題。和用戶想解決的問題相比,項(xiàng)目只解決了很窄的一些問題。
不要被開源許可和它們是否“商業(yè)友好”搞暈了。不同的提供商針對不同的許可采用不同的策略。每一個(gè) OSI 批準(zhǔn)的主要許可都有相關(guān)成功或失敗的故事。與業(yè)務(wù)執(zhí)行相比,許可證是無關(guān)的。
規(guī)則3:不要把社區(qū)和客戶搞混
如果有什么難以理解,這個(gè)規(guī)則會(huì)和規(guī)則 2 直接交織在一起。如果規(guī)則 2 是關(guān)于工程師和商業(yè)模型,那么規(guī)則 3 就是信息和銷售。社區(qū)和客戶存在于不同的價(jià)值空間。社區(qū)有閑沒錢。客戶有錢沒閑。也許一個(gè)更好的說法是:客戶拿錢加速解決方案和消除風(fēng)險(xiǎn),而社區(qū)(社區(qū)的 個(gè)人開發(fā)者)沒有錢。
傳統(tǒng)意義上,工程為流水線提供產(chǎn)品,市場提供信息,銷售通過封閉交易將有價(jià)值的人拉入,在執(zhí)行上是一件很簡單的事。很多公司使用開源項(xiàng)目并認(rèn)為項(xiàng)目社區(qū)也是這條流水線的一部分,在社區(qū)論壇找到客戶后他們更進(jìn)一步這樣認(rèn)為。他們可能甚至認(rèn)為社區(qū)項(xiàng)目就是購買前的一種試用。但這是錯(cuò)誤的。
與一家公司(產(chǎn)品管理,工程,市場)具有的相關(guān)社區(qū)的對話和與支付客戶的對話是不同的對話方式。每個(gè)對話都具有特定的工具和契約規(guī)則。成功企業(yè) (公司)理解怎樣進(jìn)行這些對話。他們有良好理解的構(gòu)建工具和具有資格的管道(渠道)。他們有同等良好理解的工具和為開發(fā)成功社區(qū)(規(guī)則#4)的規(guī)則。每種工具鏈和對話有不同的矩陣來捕獲和考慮。
有種交互是介于一家公司社區(qū)和客戶之間的。社區(qū)成員們?yōu)轫?xiàng)目(所以這也是公司品牌的價(jià)值的一種周到的表現(xiàn)形式)進(jìn)行傳教(原意是福音傳教)。社區(qū)成員們,在再次加入產(chǎn)品生產(chǎn)渠道(管道)之前,提供支持和專業(yè)技能給那些潛在的在項(xiàng)目社區(qū)中能夠自我勝任的顧客。
社區(qū)也提供一種為了終極的產(chǎn)品解決方案的慣性,通過漸漸的給予專業(yè)和時(shí)間的投資。這種挑戰(zhàn)是保持事物清晰流暢的在社區(qū)和顧客之間分離,就好比, 你可以又快又方便的認(rèn)知在你面前的這個(gè)正在一邊玩同時(shí)適度指導(dǎo)他們的人,是什么角色。一定從來沒有信息(蓄意或者別的)的混亂發(fā)生過。
比如說,產(chǎn)品是給客戶使用的。如果你有一個(gè)試用版,買之前先試用,那么“買”就在這,所以,需要跟客戶溝通。如果你有一個(gè)社區(qū)版本,然后構(gòu)建一 個(gè)社區(qū) (規(guī)則 #4),否則你就只是簡單的遵循開源授權(quán)協(xié)議發(fā)布一個(gè)軟件,而沒有從一個(gè)開源社區(qū)獲取任何的好處。這是兩個(gè)分開的東西,但是可以讓我們了解最后一個(gè)規(guī)則。
規(guī)則4:成功的開源社區(qū)遵循簡單易用的模式和實(shí)踐
所有成功的開源社區(qū)項(xiàng)目都遵從同一種類型的模式和實(shí)踐。項(xiàng)目開始的時(shí)候只是一些核心的開發(fā)者在溝通討論。所以,你需要構(gòu)建 3 個(gè)入口點(diǎn)。第一個(gè)是驅(qū)動(dòng)使用和加強(qiáng)用戶群,因?yàn)檫@樣會(huì)促使開發(fā)者找到你的項(xiàng)目。 (你需要不請自來的用戶!這就意味著你成功了!)軟件必須容易安裝和運(yùn)行。用戶會(huì)告訴你他們想要什么,比如,你收到一個(gè) bug 報(bào)告和特性請求,這就是成功的例子。更重要的是,開發(fā)者找到了你。
第二,使得構(gòu)建軟件變成已知的,測試過的狀態(tài)更容易。這允許開發(fā)者可以自己選擇和實(shí)驗(yàn)他們的需求。假定一個(gè)聰明的開發(fā)者指出拋掉開發(fā)周期是不可 以的,那么他們就不會(huì)這樣做。沒有人想要浪費(fèi)他們的時(shí)間在你的懶散和缺乏紀(jì)律之中。他們將會(huì)陷在挫折和厭惡之中。讓他們回到正常狀態(tài)很難,但不是不可能的。正確處理這個(gè)問題,你會(huì)得到下一組更困難的 bug 報(bào)告和建議修正。
最后,告訴開發(fā)者怎么去做,在哪里可以貢獻(xiàn)和怎樣更方便地去做。感謝他們的貢獻(xiàn),如果其他事情超過了代碼而感到振奮,設(shè)置這些貢獻(xiàn)頻道可以讓他們能更方便。常常說“謝謝”,用盡一切方法,鼓勵(lì)分支,尤其是當(dāng)你是一個(gè)公司的時(shí)候。
建立社區(qū)是一項(xiàng)很艱難的工作。但是對自由社區(qū)卻不是這樣。相反,自由社區(qū)在從使用者和開發(fā)者的貢獻(xiàn)中帶來價(jià)值,同時(shí)也帶來了對技術(shù)的粘著力。
這一領(lǐng)域的最后的實(shí)踐是要理解基金會(huì)在開源軟件中所扮演的角色。基金會(huì)在 IP 管理制度上進(jìn)行組織和分類。基金會(huì)可以做很多其它的事,但如果他們不把這個(gè)中心事情做好,那么他們在社區(qū)成長潛力這個(gè)項(xiàng)目上是失敗的。將中立的 IP 所有權(quán)分類有助于專門投資增長,這一專門的投資來自于有志于整個(gè)生態(tài)系統(tǒng)的成長的參與者和貢獻(xiàn)者,換句話說公司致力于為用戶解決問題。
基金會(huì)創(chuàng)造了一個(gè)中立的空間,在這空間中公司可以以平等的社會(huì)關(guān)系參與進(jìn)來。一個(gè)公司從不是由他們發(fā)起也并非屬于他們的開源項(xiàng)目(比如 SUSE 和 Linux,HP 和 Openstack 等)中做產(chǎn)品需要清晰的理解他們的貢獻(xiàn)是怎樣被處理的,他們并非簡單地在做其他人的產(chǎn)品。同樣地,一個(gè)公司發(fā)起一個(gè)開源項(xiàng)目并希望驅(qū)動(dòng)圍繞著這一項(xiàng)目的生態(tài)系統(tǒng)的采納和成長,這將很好地貢獻(xiàn)于項(xiàng)目的軟件 IP,這些 IP 區(qū)分非營利性質(zhì)的基金會(huì)(或者在適當(dāng)時(shí)創(chuàng)造一個(gè))如 Google 最近和 Kubernetes 所做的項(xiàng)目,或者 Pivotal 和 Cloud Foundry 所做的項(xiàng)目。這是最終獲得權(quán)利的四分之一個(gè)匝道。
總結(jié)
因此情況就是這樣。我將這 20 多年來所了解到的有關(guān)對開源項(xiàng)目的支持,基金會(huì)的參與和產(chǎn)品工程總結(jié)為這四條規(guī)則,10 張 ppt 和將近 1600 個(gè)字。我期望大家能提點(diǎn)問題作點(diǎn)評價(jià)。
英文原文:Open source for products in four rules (and 10 slides)