運作開源項目很容易。所有你需要做的就是讓你的源代碼可用和開源,對吧?嗯,也許。其實,開源項目是否成功取決于你對項目成功的定義。且不論你是怎麼定義的,建立開源項目需要大量的工作。如果你已經有了目标,那麼你需要準備投資。雖然開源軟體是免費的,但它的創作卻不是免費的:你需要往項目中投入時間和精力等寶貴資源。
那麼,你如何投資這些資源?
1、定義成功
在考慮運作開源項目之前,你需要明确定義成功的意義。這裡有很多因素要考慮。隻将代碼放入可公開通路的存儲庫就可以了,還是說你想對你的項目做更多?合作與采用對你來說重要嗎?你隻是為了打造作為一名軟體開發者的聲譽嗎?你對成功的定義是否包括長期的可行性?你想圍繞這個項目發展一個社群嗎?你關心商業采用嗎?你對這些問題的回答可以幫助你确定接下來你需要采納的建議有多少。
2、透明
這一點很容易了解:我們要使得社群可以觀察和了解你正在做的事情:使用易于查找的可公開通路的源代碼存儲庫,使用面向公衆的問題跟蹤軟體,在社群可以找到的地方公布釋出計劃,以及在公共論壇捕獲會議記錄(例如歸檔郵件清單)。
3、開放
對于很多開源項目來說,“透明度”和“開放性”意味着同一件事,但其實這兩個術語的含義截然不同。開放不僅僅指的是“一目了然”(這與透明本質上是一樣的)。對于許多人來說,開源的“開放”意味着開放新思想,或開放參與。參與開源項目的規則對于每個人應該是一樣的(“公平的競争環境”):僅僅接受幾個更新檔是不夠的,你必須對新的思路點子開放。總之,你必須允許别人參與你的項目,放棄對項目的絕對控制。
4、保持“公平的競争環境”
這并不一定意味着你必須讓任何人加入項目,而是要確定每個人适用同樣的規則(環境可能是公平的,是以你需要用自己的方法勝出)。英才制度意味着你需要用自己的方式脫穎而出。有些項目實施英才制度,例如,在邀請開發者加入項目團隊之前,通過要求他們作出一些貢獻,以表明他們了解項目的代碼、規則和文化。確定增加新的開發人員到項目中的過程是衆所周知的,并且這些流程是透明的(例如公開投票)。
5、供應商中立
為了實作真正的開放,開發者需要大家認可他們的貢獻。如果項目是供應商中立的,那麼這更容易實作。供應商中立的項目不由任何組織或機構主導;英才制度應以個人的貢獻為基礎,不能基于任何特定組織的目标或招聘方法。在供應商中立的基礎上托管是實作此目标的一種方式。
6、有良好的定義和檔案标準
文檔化項目的代碼格式規則(使代碼格式化預設易于通路),對測試覆寫面、開發方法、軟體和所需工具的期望,與項目團隊聯系的管道以及針對潛在貢獻者的其他重要資訊。抓取所有這些資訊,使其盡可能容易被發現。在項目源代碼存儲庫的根目錄中包含一個貢獻指南是一個很好的做法(通過DVCS,潛在的貢獻者将找到存儲庫副本的副本;存儲庫中的貢獻指南可以讓潛在的貢獻者輕松找對緻力于項目的途徑)。
7、確定項目代碼始終可建構
項目代碼包含建構腳本和說明。使其盡可能容易地建構成功和測試項目代碼。
8、與使用者社群聯系
使用者社群是使用開源項目産品的一群人。使用者社群很少直接向項目代碼貢獻任何東西,但卻往往會提出很多問題。確定這些問題得到回答。健康的使用者社群可以為采用者社群提供資訊。
9、與采用者社群聯系
開源項目取得成功的一個明顯迹象是,其他組織開始在他們自己的産品中使用或建構擴充你的開源項目。此社群更有意願回報項目,這将是項目最好的貢獻來源。有些貢獻者甚至将是加入項目團隊的絕佳候選人。開發采用者和擴充者的生态系統是延長項目使用壽命的好方法。
10、與開發社群聯系
開發社群由項目團隊成員和貢獻者組成。為社群内的溝通提供衆所周知的管道。明确的溝通管道将有助于開發人員的合作。
11、有計劃
很容易就會陷入隻專注軟體開發的模式,但和任何程序(特别是軟體開發過程)一樣,有些極緻的方法至關重要。確定你的項目采用開發方法,并且有人擁有該流程(例如項目負責人)。制定計劃可以幫助開發人員知道他們在哪裡可以貢獻最大的價值,并使采納者和擴充者更容易實作他們自己的計劃(進而取得成功)。像對待任何其他軟體開發項目一樣地對待你的開源項目。
12、管理品牌
你的項目将有一個品牌。項目的名稱是其身份;項目logo以及任何産品的名稱也是如此(開源項目的産品通常與項目共享名稱,但有些項目會生産多個産品)。聲明項目的品牌為商标,并考慮注冊商标。制定商标使用指南,以便采用者知道如何使用此品牌。這是一個與開源軟體基金會合作可以增值的領域。基金會可以代表社群持有和捍衛項目的商标。這可以避免任何特定的個人或組織劫持開源項目的名稱。
13、管理知識産權和版權
為項目作出貢獻的代碼、文檔和其他工件都是知識産權。誰是這些知識産權的擁有者呢?作者保留所有權還是指派給了另一個實體?確定所有的貢獻者了解貢獻者的權利和責任。考慮讓貢獻者簽署開發者原産地證書(DCO)或貢獻者許可證協定(CLA)。確定版權聲明包含在源代碼和通知中。
請注意,項目本身不可能作為持有版權的法律實體。這是另一個開源基金會可以提供有價值的服務的地方。
14、選擇OSI認可的開源許可證
不要建立你自己的自定義許可證;這将為任何想要使用你代碼的人增加法律障礙。確定你選擇的許可證與你打算使用代碼的方式相容。此外,請確定許可證與你的項目代碼所需的任何第三方内容(例如庫)相容。在所有源檔案的标題中包含許可證的SPDX代碼。
15、将項目移到開源基金會
前面已經提到過幾次基金會。基金會首先可以幫助你保持項目供應商中立,這将有助于采用:開源軟體的魅力大多是因為采用者可以避免被某個特定組織所關注。基金會可以堅持和保衛項目的商标,建立治理模式,幫助你管理品牌,提供知識産權管理服務,并為營運成功的開源項目提供常用的幫助和建議。成為開源基金會的一部分可以提供有價值的回報循環。基金會可以為你的開源項目提供可信度,然後,開源項目反過來可以為基金會提供公信力。
運作開源項目包含很多工作。但是,正如我們所建議的,它所需要的工作量取決于你對項目成功的定義。總而言之,開放源碼開發的核心原則:透明度,開放性和英才制度。其他一切都由此衍生。
原文釋出時間:2017-11-08