開源項目運營經驗談
原文 http://www.infoq.com/cn/news/2015/05/GitHub-Brian-Hyder
從GitHub的用戶基數來看,開源社區中有超過850萬人在向開源軟件做貢獻。 Brian Hyder 是 PencilBlue 的聯合創始人兼首席技術官。近日,他根據自己運營開源項目的經驗,探討了如何吸引開源社區成員為項目做貢獻以及如何確保項目的正常運轉。
Brian認為,開源項目運營可以歸結為以下三個方面。
首先是明確項目愿景。通常,人們為項目做貢獻,是因為該項目要解決的問題同他們要解決的問題一致。而且他們會希望,項目目標與他們的目標一致,而 不僅僅是滿足他們的即時需求。因此,非常有必要在README中明確描述項目愿景。但這還不夠,為了使潛在的用戶和貢獻者對項目有信心,項目運營者還應該 提供一個路線圖。路線圖上的時間不宜太具體,因為有時候用戶反饋會導致項目運營者調整開發的優先級。比如,“多媒體服務將在12月份完成”要好過“多媒體 服務將在12月份第二個周完成”。另外,貢獻者/用戶越多,項目愿景的要求就越高。項目運營者需要選擇一個對項目而言最好的愿景,而不是對于個人而言最好 的愿景。總之,項目必須滿足用戶的需求。
其次是制定項目貢獻流程,確保貢獻者總是在項目愿景范圍內做貢獻,保證代碼的可維護性以及減少不必要的審核工作。以下是Brian提供的一些建議:
- 每個問題或特性創建一個分支
- 每個分支的名稱均要包含問題編號
- 確保針對分支進行了所有的單元測試
- 盡量不要合并自己的pull請求
- 注明為什么采用那種方式,讓pull請求成為一個學習過程
最后是要帶給人良好的感覺。網站、文檔及README會給人第一感覺,它們可能會影響人們對相似項目的選擇。代碼質量確實可以體現出項目優劣,但 人們在選擇時通常不會首先研讀代碼。人們的貢獻是項目的脈搏,脈搏穩定也有利于項目的長遠發展。另外,可以利用一些工具增加項目的透明度:
- Travis CI :提供持續集成
- Coveralls :提供代碼覆蓋
- Code Climate :提供代碼分析
- David :提供依賴分析
除了相應的功能外,這些工具還提供了徽章,標明了項目所處的階段。這可以使其他人對項目運營者的代碼能力產生信心。