保障開源項目獲得成功的三大關(guān)鍵因素
譯文一份針對GitHub數(shù)據(jù)的***研究表明,成功的開源項目往往存在幾大共性。
本周,F(xiàn)acebook、谷歌以及其它多家大型技術(shù)企業(yè)共同啟動了TODO(即開放交流、開放開發(fā))項目,希望借此鼓勵企業(yè)及開發(fā)人員彼此共享與開源項目使用及實施相關(guān)的知識及經(jīng)驗、進而推動各種規(guī)模的企業(yè)用戶以更為積極的姿態(tài)擁抱開源方案。作為參與組織之一,GitHub在一篇博文中談到了推進此次項目的目標之一,即“確保開源項目繼續(xù)保持健康與積極的發(fā)展態(tài)勢。”除了一點點運氣因素之外,一份新的研究報告昭示了開源項目獲得的成功的部分必要因素——而這很可能有效幫助TODO在未來的前進道路上越走越順。
來自日本的研究人員Yuya Yosikawa、Tomoharu Iwata以及Hirosh Sawada共同發(fā)表了一篇題為《在社交媒體上協(xié)作:社交編碼成功項目分析》的論文。他們希望弄清楚,到底是哪些因素決定了像GitHub這樣的“社交編程站點”上各種開發(fā)項目的最終命運。為了完成這一目標,他們從2011年2月到2013年5月之間堅持不懈地從GitHub歸檔資料中收集數(shù)據(jù)——具體對象為其中非fork且評論數(shù)量超過30條的代碼庫。這些數(shù)據(jù)所涵蓋的總評論數(shù)量接近4200萬條,涉及開發(fā)人員140萬名、相關(guān)項目則為31萬7千個。
為了衡量開源項目的成功程度,研究人員們采用三條評判指標:活躍程度(每天新增的代碼提交數(shù)量)、熱門程度(每天所獲得的星評總數(shù))以及“社交性”(即每天的請求推送數(shù)量)。
他們認為三大因素決定了上述成功標準的實際表現(xiàn),分別為:團隊結(jié)構(gòu)(即項目團隊規(guī)模有多大、各團隊成員如何實現(xiàn)內(nèi)部交流)、外部開發(fā)人員交互效果(即請求推送所獲得的響應(yīng))以及所開發(fā)項目的具體類型(例如Web應(yīng)用程序等)。
在探討這幾大核心要素之前,我們先來看看這幾位研究人員發(fā)現(xiàn)的其它一些有趣結(jié)論,例如:
- 大多數(shù)項目不涉及來自外部開發(fā)人員的貢獻。具體來講,研究數(shù)據(jù)顯示有七成項目沒有發(fā)出過任何請求推送。
- 大多數(shù)項目往往會在短時間內(nèi)快速完成。只須約一成的項目能在較長周期內(nèi)擁有相對統(tǒng)一的代碼提交速率。其余九成的絕大多數(shù)提交代碼集中在一段或者數(shù)段相對較短的階段之內(nèi),而且在整個周期內(nèi)經(jīng)常出現(xiàn)連續(xù)幾個月沒有代碼提交的狀況。此外,在六成項目中90%的提交代碼是在開始后的三個月內(nèi)出現(xiàn)的。
在審視影響到開源項目成功的因素時,我們還發(fā)現(xiàn)了一些有趣的現(xiàn)象。根據(jù)在閱讀這份論文中的體會,我發(fā)現(xiàn)以下三項內(nèi)容可謂算是決定開源成功的核心條件:
- 團隊規(guī)模越大,項目取得成功的機率也就越高。內(nèi)部團隊的規(guī)模越大(即提交代碼的參與者越多),上述三項成功指標的數(shù)值就越高。
- 如果團隊成員曾經(jīng)在其它項目中進行過合作,那么當前項目會更容易獲得成功。對于各個項目的內(nèi)部團隊而言,研究人員整理出一套“合作關(guān)系網(wǎng)絡(luò)”。從本質(zhì)上講,這套關(guān)系網(wǎng)絡(luò)描述了當前項目的參與者是否在其它項目中同樣保持合作。符合這種情況的參與者越多,這三項成功指標的數(shù)值也會隨之增加。
- 對請求推送的響應(yīng)能夠鼓勵代碼貢獻者。研究人員們發(fā)現(xiàn),項目獲得的星評及請求推送數(shù)量越多,內(nèi)部團隊的成員就越容易受到鼓舞——換句話來說,針對請求推送的響應(yīng)與合并能夠有效激勵參與者的工作熱情。有趣的是,請求推送的響應(yīng)時長并不會影響項目的成功可能性; 總之,只要有所響應(yīng)、對于項目就是一種積極推動。
這就是我們得出的結(jié)論。如果大家希望自己的開源項目能夠邁向成功,首先需要盡可能擴展內(nèi)部團隊的人員規(guī)模、其次是確保參與者在其它項目中同樣保持合作關(guān)系,***是定期對請求推送作出響應(yīng)。其實并不困難,對吧?