衡量一個開源社區(qū)活躍度的五大指標(biāo)
如果你想要使用指標(biāo)來追蹤你的自由開源軟件(FOSS)的社區(qū)?,F(xiàn)在就面臨著一個問題:我應(yīng)該去追蹤哪些指標(biāo)呢?
要回答這個問題,你必須知道你需要什么信息。比如,你可能想要知道一個項目社區(qū)的可持續(xù)性。一個社區(qū)對問題的應(yīng)對速度有多快。一個社區(qū)怎么吸引、維護或者流失貢獻者。一旦你知道需要哪類信息,你就可以找出哪些社區(qū)活動可以提供你想要知道的內(nèi)容。幸運的是,自由開源軟件(FOSS)遵從開放式開發(fā)模型,在其軟件開發(fā)倉庫里留下了大量的公共數(shù)據(jù),我們可以對這些數(shù)據(jù)進行分析,并從中收集到一些有用的數(shù)據(jù)。
在這篇文章中,我會介紹一些指標(biāo),從而為你的項目社區(qū)提供一個多方位的視角分析。
1.社區(qū)活動(Activity)
一個社區(qū)的總體活動和這個社區(qū)怎樣隨著時間演變,是度量所有社區(qū)好壞的非常有用的指標(biāo)。社區(qū)活動是評價一個社區(qū)工作量的***印象,也可以用來追蹤不同種類的活動。比如,提交次數(shù),給人的***印象就是跟開發(fā)工作量掛鉤。通過提出的問題(tickets opened)我們可以大概知道提交了多少 bug 或者又提出了多少新特性。郵件列表中的郵件數(shù)量或者論壇帖子的數(shù)量可以讓我們了解到有過多少次公開討論。
OpenStack 活動看板上面顯示的項目代碼提交次數(shù)和代碼評審之后代碼合并次數(shù)隨時間變化的趨勢圖(周數(shù)據(jù))
2.社區(qū)規(guī)模(Size)
社區(qū)的規(guī)模指的是參與到這個社區(qū)的人數(shù),但是,基于不同形式的參與人數(shù)也有很大的差別。好消息是,通常你只對積極活躍的貢獻者比較感興趣。活躍的貢獻者會在項目的倉庫留下一些線索。這意味著你可以通過查看 git 倉庫存放的代碼中 author 字段來統(tǒng)計積極貢獻代碼的人數(shù),或者通過看積極參與問題解決的人數(shù)來統(tǒng)計活躍人數(shù)。
所謂活動(某些人做了某些事)可以擴展到很多方面。一種常見的跟蹤活動的方式是看有多少人做了工作量相當(dāng)可觀的任務(wù)。比如,通常一個項目代碼的貢獻者是來自這個項目社區(qū)的一小部分人。了解了這一小部分人,就對核心的工作組(比如,領(lǐng)導(dǎo)這個社區(qū)的人)有一個基本的認(rèn)識了。
Xen 項目開發(fā)看板上展示的該項目郵件列表上作者人數(shù)和提交人數(shù)隨時間的變化趨勢(每月數(shù)據(jù))
3.社區(qū)表現(xiàn)(Performance)
到目前為止,關(guān)注點主要集中在活動數(shù)量和貢獻者數(shù)量的統(tǒng)計上了。你也可以分析流程還有用戶的表現(xiàn)如何。比如,你可以測量某流程需要多久才能執(zhí)行完成。解決或者關(guān)閉問題的時間可以表明一個需要及時響應(yīng)的項目對新信息的應(yīng)對如何,比如修復(fù)一個報告過來的 bug 或者實現(xiàn)一個新需求。代碼評審花費的時間,即從代碼修改提交到被通過的時間,可以看出更新一個提出的改變要達到社區(qū)期望的標(biāo)準(zhǔn)需要多久。
其他的一些指標(biāo)主要與項目處理掛起的工作表現(xiàn)如何有關(guān),比如新的和被關(guān)閉問題的比例,或者仍然沒有完成的代碼評審的隊列。這些參數(shù)能告訴我們像投入到解決這些問題的資源是否充足這樣的一些信息。
在2015第三季度 OpenStack 開發(fā)報告上顯示的,每季度關(guān)閉與打開狀態(tài)的問題數(shù)之比,接受與放棄的改變提案與***的改變提案之比
4.社區(qū)人口特征(Demographics)
隨著貢獻者的參與或者退出,社區(qū)也在不斷改變。隨著人們加入和退出社區(qū),社區(qū)成員的會齡(從社區(qū)成員加入時算起)也各異。社區(qū)會齡統(tǒng)計圖表很直觀的展現(xiàn)了這些改變隨時間的變化。圖表是由一系列的水平條組成,每兩條水平條代表加入到社區(qū)的一代人。對于每一代,吸引力(Attracted)水平條表示在相應(yīng)的時間里有多少人加入到了社區(qū)。活躍度(Retained)水平條表示有多少人目前仍然活躍在社區(qū)。
代表一代人的兩個水平條的關(guān)系就是滯留比例:依然在這個項目中的那一代人的一部分。吸引力(Attracted)水平條的完整集合表示這個項目在過去有多么受歡迎?;钴S度(Retained)水平條的完整集合則表示社區(qū)目前的會齡結(jié)構(gòu)。
Eclipse 開發(fā)看板上顯示的 Eclipse 社區(qū)的社區(qū)年齡表。每六個月定義一次
5.社區(qū)多樣性(Diversity)
多樣性是一個社區(qū)保持彈性的很關(guān)鍵的因素。通常來說,一個社區(qū)越具有多樣性(人或者組織參與的多元化),那么這個社區(qū)的彈性也就越大。比如,如果一個公司要決定離開一個自由開源社區(qū),那么這個公司的員工貢獻5%要遠比貢獻85%所可能引起的潛在問題要小很多。
小馬因素(Pony Factor),是 Daniel Gruno 為“最少的開發(fā)者貢獻了50%的代碼提交量”這一現(xiàn)象定義的術(shù)語?;谛●R因素,大象因素(Elephant Factor)則是指最少量的公司其員工貢獻了50%的代碼提交量。這兩個數(shù)據(jù)提供了一種指示,即這個社區(qū)依賴多少人或者公司。
2015開發(fā)云數(shù)量狀態(tài)統(tǒng)計顯示的在云計算領(lǐng)域的幾個自由開源社區(qū)項目的小馬和大象因素
還有許多其他的指標(biāo)來衡量一個社區(qū)。在決定收集哪些指標(biāo)時,可以考慮一下社區(qū)的目標(biāo),還有哪些指標(biāo)能幫到你。