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