本期編輯:舒敏安全
特別聲明微信
本文擁有創做共用受權之相同方式共享受權4.0版國際許可協議(Creative Commons Attribution ShareAlike 4.0 International License)受權許可。 開源之道獨立精心翻譯分享,歡迎同道中人商討。
網絡
01架構
—編輯器
治理工具
在項目正式啓動以前,你必須爲項目治理定義好所必要的技術需求。所謂的項目治理,意指項目的策略、發佈、方向、以及開發優先級等須要做出決策的流程。決策的制定必須是公開和開放的,從而可以確保全部的參與者均可以瞭解項目的變化,並幫助項目保持永久的透明度。另外,關於項目治理還能夠考慮一下解決爭端的路徑。區塊鏈
對於項目治理的主體來講,在項目的早期創建起參與的標準是很是重要的。諸如特性和缺陷如何跟蹤、代碼如何提交、發佈流程如何管理之類的重要決定是須要很正式的規定的。測試
關於如何運營和維護項目的一些工具和介紹,請移步,參閱文章公司如何建立開源項目辦公室。flex
「你須要確保人們將一些事情作好,從而保證項目邁向成功。你還要注意:不要將項目的業務部分和技術部分混爲一談,它們分別須要不一樣的領導力。若是你忽視任何一部分,都會致使不良的後果——項目發展停滯不前。你不可能讓一個外行人作出最佳的決定。技術人員得到業務部門的幫助會如虎添翼,成功的概率就會更大。」網站
-John Mertic, Linux基金會項目管理總監
技術流程
在開源項目正式啓動以前,建立標準的發佈流程來規劃按期的發佈代碼事宜,對於項目的維護者變動和改進代碼是很是有幫助的。一個良好的規劃應該被良好的定義,在細節上見功夫,這不管是開發社區仍是業務部門均是有益處的。
至於多久發佈則要取決於你對社區的指望。若是項目是企業很重視的,並且你但願打造出至關實力的產品,你或許能夠每一年發佈2次。若是項目的範圍較小,並且也更爲敏捷,且你嘗試從社區得到一些零碎的內容,或許你考慮每週、每個月發佈一次都是能夠的。規劃的關鍵在於社區必須可以根據事情定義出時間線來,如對項目支持力度的瞭解、同時還要爲用戶提供他們須要的和指望的。
並且要根據社區自己的反饋來進行一些微調,發佈的太過頻繁,又或者發佈的過於緩慢,均不是最佳選擇,要審視本身的流程而定。重要的是一致性、可預測性、以及可見性。
領導力角色
在項目正式開源以前,對於領導力角色的設置是很是之重要的一步。不一樣的項目意味着不一樣的事情。若是你啓動的將會是一個由衆多企業參與的多個公司的項目,那麼項目會須要更加正式的治理,如設立治理委員會、亦或是其餘的管理小組。若是是較爲單一的公司項目,則能夠簡化一些,如設立技術委員會從技術的角度來監督開源項目的各項內容。技術委員會的組成主要包括技術領導和社區經理,社區經理的角色主要是向管理團隊報告關於項目進展和項目需求的最新信息。只要技術成員和管理人員認爲合適,法律團隊也能夠隨時被引入。
你的最高級別的架構智囊團必定是屬於領導力角色的,固然,還有那些對代碼瞭如執掌的工程師們,這些人共同在一塊兒,擔任技術領導角色的委員會成員要對項目有一個願景,項目的走向是何方,以及開發者社區的支持程度等。總而言之,這些人就是參與項目規劃必須的角色。
做爲開源項目領導者角色的職責是爲貴司作出代碼的貢獻,進而確保和董事會成員、股東、以及受知識產權委託的人是站在一條線上的。你必須確保他們是一致的,可是,你仍然要考慮潛在的負債、風險、等諸如致使項目失敗的問題,不要輕視這點 「
– John Mertic, Linux基金會項目管理總監
基礎設施
只要是業內人士都知道,你要啓動一個軟件項目,必定要爲它準備好代碼倉庫。也就是可以讓貢獻者們全天候不間斷的貢獻代碼的基礎設施。不少項目都託管在著名的 GitHub 或 GitLab 上,固然也有使用諸如Gerrit來本身進行搭建。你能夠根據本身的實際狀況進行選擇,可是請記住,你所選擇的代碼倉庫必定是易於讓開發者們參與和認同的。選擇平臺、開設帳戶、爲代碼準備好空間、開啓工做流、接下來就是「見證奇蹟的時刻」。
缺陷、問題、特性等跟蹤一般也是項目基礎設施規劃的一部分,你打算爲貢獻者們提供舒心悅目的地方,從而讓他們可以心無旁騖的去撰寫解決實際問題的代碼、以及添加很是有用的酷炫功能,還有自動化的構建流程、測試系統的流程等這些都是必須的,甚至更進一步你須要保證項目的流程平滑,在你的GitHub 倉庫周邊添加掃描和監測代碼來保證代碼的質量,這些都是應該去作的。
網站
接下來就是建立公司中立的網站以及項目的維基百科頁,網站應提供社區的一些信息或尋找路徑,如關於項目的文檔、下載代碼的連接等等,固然網站也要儘量的提供更多的細節,如項目的領導者、範圍、用戶和貢獻者、治理方式、等等。
溝通交流渠道
爲社區提供溝通交流的渠道對於人們尋問和諮詢問題是很重要的通道,你得想法將這些用於溝通的工具集成到整個的開發流程當中來(如當項目有請求、代碼提交、錯誤日誌等等任務時有及時的通知),你還得提供供你們討論話題的論壇,以及社區成員們彼此可以快速的相互提問,這些對於項目的發展都是相當重要的。對於溝通交流渠道來講,全部重要的事就是實時的幫助項目邁向成功。
其中一個能夠考慮使用的工具是 Slack,它在線集成團隊項目管理和及時聊天的平臺,在此平臺用戶還能夠訪問和共享文件、組織工做流、信息檢索等等。然而,Slack 是一家專有的公司所提供的工具,不只閉源,並且可能須要花費必定的費用才能使用它所有的功能。固然,開源並且更爲古老的工具也是可供選擇的,如 IRC 、Gitter.im 等等,這裏舉一些實際的例子,Hyperledger 項目使用的溝通系統叫作:Rocket.Chat,Rocket.Chat 是徹底開源且和 Slack 很是類似的工具。另外,若是你須要較爲酷炫的論壇系統,Discourse 會是一個不錯的選擇,不只徹底是開源的項目,並且還有幾家不錯的服務託管提供商。
在選用溝通交流系統的時候,謹記幾點內容:
一、不能有任何形式的鎖定
二、須要花費多少錢
三、在將來遷移到新的系統的難易程度
隨着項目的成功,你的社區必然是人氣暴漲,這個時候就須要你去不斷適應新的溝通渠道,舉個例子,就在不久的過去,新聞組仍是不少開源項目的首選,可是如今成了保守的代名詞了。總之,溝通渠道要迎合人們的習慣與口味。
「Autodesk 在其GitHub的帳戶上集中管理了近190多個各式各樣的開源項目,要知道這190個項目是AutoDesk的至少14個部門所開源的項目,經過使用來自Twitter的開源工具,Autodesk 讓這14個部門使用同一個視圖、同一個入口,從公司的角度來說,確保全部人看到正在啓動的項目內容是很是重要的,並且必定要記得要讓全部人可以使用同一個入口來提交問題和建議。」
– Gy Martin, Autodesk 開放總監
啓動和維護
終於走到這一步了,不過還須要持續的努力,不能夠有懈怠的情緒。在經歷了上述那麼多的規劃、準備、以及多方面的審覈、各方面的實操以後,你能夠將項目正式的啓動,那麼你的開源項目今後就就進入了維護的階段。你將經過開放的規劃、開放的溝通、以及逐步完善的至頂向下的基礎設施,來完善已經建立的治理、技術流程,以及介於它們兩者之間的。
一旦上述全部重要的事情都均已落實,那麼就到了向全世界開放項目的時刻了!也是恭迎開發者的開放時刻。當那些對項目感興趣的貢獻者們看到項目是通過了仔細打磨、並且乾淨利索,對他們自己也很是的有價值,那麼他們就會順利成章的參與到項目中來的,由於項目對他們意義重大。
發佈以前的基本任務:
一、事先簡短的啓動合做夥伴
二、確保全部項目的基礎設施都是可運行的、安全的和可擴展的
三、確保開發者是能夠加入和查閱社區頻道的(IRC、郵件列表等)
四、發佈源代碼
五、 遵循開源的開發模式
必定要作市場相關
衆所周知,僅僅把代碼開源了並不意味着工做就結束了。要想保持項目繼續的受人關注,還須要作一些業務和營銷方面的工做,以保持人們的眼球的活躍度。所要作的事情有:推廣項目、制定成功的運營戰略、提供切合實際的預算、創建項目品牌、以及建立在線的社交媒體帳號、可用的域名(持久戰,將眼光放得更遠些)。
針對品牌就須要建立市場確認清單。這步特別的重要,其確保了在市場上的信息一致。市場確認清單以下示例:
一、設計項目的 logo 、顏色標識、網站、以及附屬品等
二、正式制定品牌指南
三、爲項目註冊社交媒體帳號(Twitter 、Facebook 、LinkedIn 等)
四、爲項目註冊相應的域名
走到這裏,你已經將項目開源,接下來,你的工做就是去推廣它,讓更多的人知道這個項目,並讓更多的人們去使用它,最好是可以參與進來。做爲一名市場人員,這是很是有趣的一個挑戰,你可以帶領多少工程師來貢獻代碼、或論壇討論、或修復缺陷、或提交 bug,是檢驗你工做成功與否的最終形式。
「正由於社區對於市場至爲重要,因此你有十足的理由去用心經營社區。而如何經營則體如今一些具體而微的小事上,如快速的處理請求,確保項目提供最棒的幫助體系。因此,要作到,若是有人來到你的項目,他隨便看一看,就能瞭解到這個項目正在作什麼。」
– Christine Abernathy, Facebook 開源團隊開發者佈道師
構建社區
在項目啓動以後,那麼接下來作的事情就是社區了,關注社區的活力對於項目來講相當重要。
社區的構建是適合」佛系」經營的。在項目的早期階段,是須要主持一些開發者聚會或贊助一些線下會議,乃至在重大會議上露臉。
另外,管理你們的指望以及履行項目治理和透明度的義務也很是的重要。
持續的活動包括:
一、任命社區經理或社區佈道師
二、確保社區的變化都可以很清楚傳達,諸如項目的方向變化、或者是治理方面的內容。
三、盡力吸取其它相似社區的最佳實踐
四、鼓勵並提供機會給面對面的社區建設
五、 參加相應的活動,並鼓勵你們提交演講
六、考慮按期的舉辦本地的聚會
經過構建一個多樣性的貢獻者羣組,此時就能夠和其它的一些對項目感興趣的企業或組織進行一系列的討論,告訴他們你的項目的價值所在,從而試圖說服他們對項目投入時間、金錢或者是其它的資源,以此來進一步的擴大項目,以讓項目更上一層樓。如此就能達到一個正的循環,經過得到外部的資源,項目能夠擴張並得到更多的貢獻者。
如此的增加意味着有更多的企業會投入更多的資金來讓他們的開發者加入到項目中,以實際的行動來推進社區工做的進展,他們也許會捐贈 $10,000 或者 $250,0000 ,又或者更多的錢,固然要視項目的重要程度,以及對其它公司的意義而定。一旦你的項目開啓了,若是項目能夠幫助到某些公司的話,那麼這些公司就會參與進來作貢獻,或者是捐獻現金。
這樣的事情,如今看起來已是司空見慣,由於現代的企業和組織都意識到:他們試圖解決的技術問題不是任何一家獨立的公司可以搞得定的。人們逐步的開始看到開源的戰略價值,與其餘公司一塊兒參與供應商中立的聯合項目,而這些項目恰是致力於解決企業所面臨的技術難題。
採用這樣的方式的開源項目例子,如 Hyperledger 由 Linux 基金會贊助合做成立的項目,旨在跨界的區塊鏈技術,以及 雲原生計算基金會,用於孵化現代公有或私有云的一系列開源軟件。企業不只可讓開發者們參與到這些大型的項目當中來,還能夠提供必定經濟上的資助,共同推動和驅動技術的向前發展。
寫在最後的忠告
大膽啓動一個開源項目可能有點神祕,甚至有些可怕,尤爲是第一次嘗試進入開源的時候。可是當您的企業看到並量化開源在流程中所得到的指數增加之時,那麼這第一項目就有可能成爲貴公司的使用開源軟件戰略方式的起步項目。瞭解其餘人如何採起這種方式來幫助您的下一個開源項目取得成功。
02
—
慎重考慮項
一、 評估參與一個已經存在的開源項目的可能性
二、評估公司對於採用開源模式啓動和維護項目的自身能力
三、評估在開始的時候,其它公司參與進來的可能性
四、評估開源項目的成功因素並設置相應的衡量值
商業戰略和規劃
一、爲項目作出最終決定並設置目標
二、從相關干係人處收集開源的緣由
三、選擇要爲項目考慮的代碼
四、決定項目的開源部分:是應用的所有,仍是部分
五、爲選擇的建議書創建商業案例
六、肯定是否有行政人員參與此舉
七、針對開發者和開銷作出資源規劃書
八、設置成本預算,包括開發時間,基礎設施和相關費用
九、 收集高管和技術人員進行項目討論和決策
十、辯論並最終肯定項目範圍和代碼選擇
法律審覈
一、請慎重思考開源對於貴公司的知識產權影響
二、確保徹底符合開源許可證
三、爲源代碼的發佈選擇一個開源的許可證,要對項目全部許可證要求做出清晰的說明
四、若是須要一份貢獻者意向書的話,也請考慮
五、考慮社區可能提供的非軟件輸出和適當的許可證,例如文檔和規範
六、考慮全部和商標有關的事情
七、決定是否還有其餘因素能夠歸入您的生態系統計劃中,例如一致性測試
技術審覈
一、將嚴重依賴但不能公開的組件去掉
二、請提供文檔和案例
三、刪除內部的註釋、引用、以及其餘內部的代碼等等
四、確保代碼風格的一致
五、在源代碼文件中更新版權全部的信息
六、在源代碼文件中更新許可證信息
七、在倉庫的根目錄中添加許可證文件
八、治理和流程
九、定義項目的治理步驟和結構
十、建立代碼倉庫、bug 跟蹤、以及代碼測試的基礎設施
十一、建立支持的 Slack 頻道、論壇和維基
十二、創立貢獻者能夠溝通的開放基線,以確保項目的成功
品牌和市場
一、設定市場戰略以激勵活躍的貢獻者社區
二、設計項目logo、顏色樣式、官網、以及其它附屬內容
三、品牌指南具體化
四、爲項目註冊設計媒體帳號(Twitter 、Facebook 、LinkedIn 等等)
五、爲項目註冊相應的域名
啓動和維護
一、開放項目,並開始開發工做,以及貢獻的流程開始運轉
二、選定合適的社區經理或社區佈道師
三、確保方向和治理的任何變更都是通過清晰的溝經過的
四、緊隨其它相似社區的最佳實踐
五、鼓勵且提供場地讓你們可以進行線下的社區活動
這些資源是與TODO(公開對話,開放式開發)小組 – Linux基金會的專業開源程序網絡小組合做建立的。特別感謝那些貢獻本身的時間和知識來製做這些綜合指南的開源項目經理。參與的公司包括Autodesk,Comcast,Dropbox,Facebook,Google,Intel,Microsoft,Netflix,Oath(Yahoo + AOL),Red Hat,Salesforce和Samsung。要了解更多信息,請訪問 todogroup.org。咱們邀請您在GitHub上下載、傳播,若是能夠請積極的參與這些指南。
本文分享自微信公衆號 - 開源社(kaiyuanshe)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。