Stories

Detail Return Return

讀開源項目成功之道05治理和託管模式 - Stories Detail

讀開源項目成功之道05治理和託管模式

1. 治理和託管模式

1.1. 開源的理念源自黑客社羣,他們看到了現有軟件生產和使用方法中的問題

1.2. 擁有有效的治理模式是長期成功和可持續發展的關鍵

1.3. 開源治理旨在為社羣提供類似的清晰度,併為項目的運作奠定了基礎

1.4. 項目的需求和社羣的文化會隨着時間的推移而改變,調整治理模式以支持這些需求能夠確保得到支持並提升參與度

2. 開源治理

2.1. 開源治理就是開源項目需要具備的流程和政策,以使開源項目能夠正常運行

  • 2.1.1. 項目如何接受代碼?

  • 2.1.2. 項目如何發佈代碼更新?

  • 2.1.3. 由誰決定哪些代碼可以進入項目,哪些代碼不可以?

  • 2.1.4. 需要做什麼才能為項目貢獻代碼?

  • 2.1.5. 項目如何處理問題?

  • 2.1.6. 如何解決和披露安全漏洞?

  • 2.1.7. 誰可以作為項目代言人?

  • 2.1.8. 誰擁有項目的名稱、作品和其他資產?

2.2. 行動至上

  • 2.2.1. 最基本的治理模式是由實際做工作的人驅動的,這通常被稱為“行動至上”

    • 2.2.1.1. 精英治理
  • 2.2.2. 開源通常是由其用户和貢獻者驅動的

  • 2.2.3. 許多人是有償從事開源工作的,但他們的報酬是由那些希望看到特定項目成功的人支付的

  • 2.2.4. 行動者需要解決各自的問題,可能會存在衝

  • 2.2.5. 行動者在做事效率上有些起伏不定,導致代碼倉庫中的某些部分發展得更快,而其他部分則停滯不前。從外部看,​“行動至上”的項目往往

  • 2.2.6. “行動至上”的項目往往看起來像是封閉的俱樂部,這會給新加入者帶來挑戰

2.3. BDFL

  • 2.3.1. 終身仁慈獨裁者(Benevolent Dictators for Life,BDFL)模式

  • 2.3.2. 當項目陷入衝突或困境時,我們經常看到他們回頭尋求創始人的指導

  • 2.3.3. 在關鍵決策方面也會尊重他們的意見

  • 2.3.4. 項目的文化從一開始就與創始人的願景一致

  • 2.3.5. BDFL可以是項目從一開始就採取的一種治理模式,也可以從前述的“行動至上”模式演變而來

  • 2.3.6. Rasmus Lerdorf於PHP,Linus Torvalds於Linux,Guido van Rossum於Python

  • 2.3.7. 在BDFL中,治理是一把雙刃劍

    • 2.3.7.1. 許多成功的項目都有謙虛、包容和富有創造性的創始人領袖,他們幫助設定了社羣運作的積極基調

    • 2.3.7.2. 有一些項目則存在分歧,導致項目出現分支

  • 2.3.8. 即使有最好的BDFL,仍然會面臨所有決策都要通過一個人的瓶頸問題

    • 2.3.8.1. Linus也意識到了這一點,因此他在Linux中設立了幾個關鍵維護者來分擔工作,畢竟Linux內核每天都有數千行代碼的改動

2.4. 技術委員會

  • 2.4.1. 創始人的角色充滿挑戰,問問任何一個創建過公司的人就知道了

  • 2.4.2. 創始人也很難判斷何時該下放權力

  • 2.4.3. 創始人通常對公司的運營和形象塑造有着敏鋭的眼光

  • 2.4.4. 創始人會意識到他們需要讓其他人來處理組織中的一部分工作

  • 2.4.5. 幫助項目建立一個技術指導委員會(Technical Steering Committee,TSC)

    • 2.4.5.1. 可以作為一個團隊來領導項目,而不是僅僅依賴一個人
  • 2.4.6. 如何讓人們能夠主動承擔領導角色

  • 2.4.7. 許多技術人員更熱愛技術本身,而對領導的官僚作風不太感興趣

  • 2.4.8. 作為創始人和領導者,需要吸引更多人蔘與進來,通常也包括社羣中那些願意主動承擔領導責任的人

    • 2.4.8.1. 也是自我任命的委員會治理的核心意義
  • 2.4.9. 技術委員會是“行動至上”理念的正式化,旨在構建一個可持續發展且沒有獨裁領導的項目

    • 2.4.9.1. Apache軟件基金會、學院軟件基金會、LF AI和Data基金會以及LF能源基金會中的許多項目都是如此

    • 2.4.9.2. 最初開發者對一個項目產生興趣,然後挺身而出逐步領導項目

2.5. 選舉

  • 2.5.1. 社羣會開始尋求更加民主的方式來治理,這就引出了選舉類型的治理模式

  • 2.5.2. 選舉治理模式是從技術委員會模式演變而來的,其中相應角色是選舉產生的而不是自我提名的

  • 2.5.3. 通常發生在項目中個人和公司之間出現利益衝突時,並且項目需要確保決策是公正和公平的,為了解決這個問題,項目成員會進行選舉

  • 2.5.4. 可以用來選出領導者,他們將在一定期限內任職

  • 2.5.5. CNCF的技術監督委員會(Technical Oversight Committee,TOC)就是這樣做的,並制定了正式的選舉程序和時間表

    • 2.5.5.1. 確保領導者定期輪換,這不僅有助於為項目帶來新的想法和觀點,還有助於確保避免領導者因為覺得無法離開項目而筋疲力盡
  • 2.5.6. ApacheWay的一個關鍵原則之一是共識決策

    • 2.5.6.1. ApacheWay的一個關鍵原則之一是共識決策

    • 2.5.6.2. 通過針對一個問題徵求−1、0或+1的投票來實現,如果有人投了一個−1的票,就需要他們提出一個替代解決方案,或者詳細解釋為什麼他們投反對票

    • 2.5.6.3. 好處是它為建設性的分歧意見提供了空間,並幫助形成了一個包容各方反饋的建議

2.6. 單一供應商

  • 2.6.1. 這種治理模式根植於單個組織創建的開源項目,該項目可能是組織現有產品的衍生品,或者可能是他們想要開源發佈的一些內部工具

2.7. 供應商中立的基金會

  • 2.7.1. 一個成功的開源項目也會遇到天花板

    • 2.7.1.1. 不清楚項目的資金來源或運作方式,或者人們認為它主要惠及單一供應商

    • 2.7.1.2. 沒有中立的資產所有者,包括項目名稱、標誌、域名、社交賬户和其他資產

    • 2.7.1.3. 項目的版權所有者是單一的實體,他們可以單方面更改許可證和知識產權政策,而無須社羣的參與

    • 2.7.1.4. 利用該技術的供應商認為他們沒有公平合作的空間,特別是當他們之間存在競爭關係時

    • 2.7.1.5. 項目的法律、信託和財務方面由一個組織管理,沒有透明度或既定的流程

    • 2.7.1.6. 最好的解決方案是尋求供應商中立的基金會治理

  • 2.7.2. 建立自己的基金會

    • 2.7.2.1. Rust基金會、Python語言基金會、PHP基金會、Ruby Central和GNOME基金會
  • 2.7.3. 選擇像Apache軟件基金會、Eclipse基金會、Linux基金會或OASIS開放組織這樣的現有基金會

3. 開源項目中的角色

3.1. 用户

  • 3.1.1. 開源項目中的每個人都是從使用項目開始的

  • 3.1.2. 用户數量增加不僅會提高用户轉化為貢獻者的可能性,還能提升社交方面的影響,從而向潛在貢獻者展示成為貢獻者的價值和機會

  • 3.1.3. 目標是至少有一些用户來幫助形成社羣,這需要通過貢獻來實現

3.2. 貢獻者

  • 3.2.1. 當你為一個項目做了一些有益的事情時,你就成了一個貢獻者

  • 3.2.2. 開源項目認為貢獻者是那些直接向項目提供代碼的人

  • 3.2.3. 當有貢獻者能夠為項目提供高標準代碼時,你就可以看出他們對項目的深切投入

3.3. 維護者

  • 3.3.1. 作為一名維護者,有時也被稱為提交者,既是一份承諾,也是一份信任

  • 3.3.2. 承諾來自個人對項目的持續關注和推動項目向前發展的興趣

  • 3.3.3. 這類人認為項目對他們有價值,可以解決一些問題,並能夠幫助他們完成任務

  • 3.3.4. 信任也是成為維護者的重要組成部分

    • 3.3.4.1. 維護者可以更改項目中的代碼,這是巨大的信任

    • 3.3.4.2. 維護者也瞭解代碼倉庫的所有細微差別和細節,維護者知道代碼哪裏好,哪裏還可以,哪裏需要改進

  • 3.3.5. 在較小的項目中,維護者是首要角色

3.4. 領導者

  • 3.4.1. 開源社羣的領導者不是獨裁者

  • 3.4.2. 源項目的領導者會確立方向、解決衝突、幫助平衡優先事項,但更重要的是,他們為社羣服務

  • 3.4.3. 開源項目的領導者意味着必須確保項目和社羣中的每個人都能成功

  • 3.4.4. 服務型領導者,意思是成為一個為他人提供支持、資源和指導的領導者

4. 記錄開源項目的治理結構

4.1. 記錄治理結構很重要,因為理解過去的決策有利於在未來做出更好的決策

4.2. 可發現性

  • 4.2.1. 就是要讓治理的源頭容易被找到

  • 4.2.2. 從一個好的README文件開始通常是很好的方式

    • 4.2.2.1. 這個項目是什麼?它能夠做什麼?

    • 4.2.2.2. 如何安裝和使用該項目?

    • 4.2.2.3. 如果你有問題或疑問,應該去哪裏尋求幫助?

    • 4.2.2.4. 如果你想為項目作出貢獻,應該怎麼做?

    • 4.2.2.5. 項目將走向何方(也稱為路線圖)​?

  • 4.2.3. 許可證(LICENSE),詳細説明項目的開源許可證

  • 4.2.4. 貢獻文件(CONTRIBUTING),使人們知道如何為項目貢獻代碼

  • 4.2.5. 發佈文件(RELEASE),使人們知道新版本是如何發佈的

  • 4.2.6. 支持文件(SUPPORT),使人們知道去哪裏尋求支持

4.3. 簡單性

4.4. 靈活性

  • 4.4.1. 為了有效地發展,開源項目需要能夠隨着時間的推移輕鬆地進行調整

    • 4.4.1.1. 這就是靈活的治理模式發揮作用的地方
  • 4.4.2. 靈活意味着理解社羣,並與他們合作尋找解決方案

  • 4.4.3. 最重要的是,當有分歧時,應該理解他們的擔憂並努力適應他們

5. 開源項目的財務支持

5.1. 開源的“自由如同言論自由,而不是免費啤酒”

5.2. 開源的自由部分指的是你可以自由使用代碼,而不僅僅是開發或所有權的免費

5.3. 開發軟件,無論是開源的還是專有的,都有經濟成本,而這個成本必須由某人承擔

5.4. 開源的成本往往由維護者承擔,因為他們投入了時間和精力運營一個廣泛使用的開源項目

5.5. 現代應用程序堆棧有很多依賴,有的依賴很快就會成為一個關鍵的依賴,而人們卻沒有意識到維護者的負擔有多大

5.6. 小費

  • 5.6.1. 小費資助模式與街頭藝人演奏樂器類似,他們把樂器箱打開,希望路人能投錢進去

  • 5.6.2. 模式背後的心態是:​“這是我寫的一些代碼,如果對你有價值,請隨意捐贈。​”

  • 5.6.3. 一些項目維護者會提供PayPal或Venmo賬户來接收捐款

  • 5.6.4. 小費資助模式最大的挑戰是它不可持續,這意味着收入時高時低

  • 5.6.5. 另一個主要挑戰是,如果你看一下支持一個用户的成本,往往可能超過他們給出的小費

  • 5.6.6. 小費資助的方法會讓用户感覺他們當下的貢獻是用小費來資助項目,而他們其實可以提供更有益的貢獻

5.7. 眾籌

  • 5.7.1. 眾籌可能是一個許多人都熟悉的概念,因為它已經通過Kickstarter、Patreon和GoFundMe等網站成為我們社會的一部分

  • 5.7.2. 在開源中,眾籌已經從非正式的小費資助模式過渡到更為結構化的模式

  • 5.7.3. 眾籌可以為特定的開發籌集資金

    • 5.7.3.1. 一種方式是維護者為特定問題或功能發佈資金請求,一旦所需的資金到位,維護者就會進行開發

      5.7.3.1.1. 這不僅是幫助維護者籌集工作資金的一種方式,還有助於維護者評估工作對社羣的價值

    • 5.7.3.2. 看到捐贈者會得到一定程度的認可,就像各種劇院或藝術項目會對不同級別的捐贈者表達感謝一樣

    • 5.7.3.3. 通常需要一個合法的組織來接受捐贈

      5.7.3.3.1. 許多捐贈者根據自己所在地的相關法規,希望能夠享受某些税收優惠,如果項目不具有非營利性質,這可能會增加接受捐贈的間接成本

5.8. 單一組織資助

  • 5.8.1. 如果一個組織認為開源項目對他們的業務有價值,通常會尋求為其提供資金支持,可以通過捐贈、提供資金讓開發者能夠參加相關會議或活動,或者僱用那些關鍵開發者成為他們的員工,使其全職投入項目的開發與維護中

  • 5.8.2. 該組織成為確保項目繼續推進的關鍵

5.9. 基金會

  • 5.9.1. 基金會資助模式背後的主要思想是將所有資金投入一個單一的、供應商中立的實體,並由多個利益相關者監督,由一個獨立的組織管理日常財務

  • 5.9.2. Python軟件基金會(Python Software Foundation,PSF),它是一家美國501(c)(3)非營利公司,是單個項目基金會的一個例子

    • 5.9.2.1. 一些員工幫助管理後端操作,並幫助籌款

    • 5.9.2.2. 還有一個管理委員會提供監督

    • 5.9.2.3. 委員會和員工都不會參與項目本身的技術開發或優先事項

    • 5.9.2.4. PSF的法人實體類型是美國501(c)(3)實體

      5.9.2.4.1. 501(c)(3)實體的捐贈通常是可以免税的

  • 5.9.3. 傘形項目基金會的一個很好的例子是LF能源(LF Energy,LFE)基金會,這是一個專門針對能源行業的開源項目家園,由Linux基金會託管

    • 5.9.3.1. 員工和委員會都不參與項目本身的技術開發或優先事項

    • 5.9.3.2. LFE的法人實體類型是美國501(c)(6)實體

    • 5.9.3.3. 501(c)(6)實體被美國國税局視為“貿易組織”​,這意味着它由會員資金驅動

      5.9.3.3.1. 向501(c)(6)實體的捐贈在美國是不可免税的

  • 5.9.4. 託管多個項目時,需要在項目之間進行一些監督和協調,同時確保每個託管項目具有自主權

  • 5.9.5. 技術諮詢委員會(Technical Advisory Council,TAC)

    • 5.9.5.1. TAC擁有指導原則來幫助他們確定哪些項目適合,哪些不適合

Add a new Comments

Some HTML is okay.