star、PR 都不靠譜,還有哪些評估開源項目的指標?
我們曾經與大家探討過,除了 star 數量以外,還有哪些指標可以評估一個開源項目的好壞。當然,這里的“好壞”不僅僅是指一款開源軟件本身“好不好用”,還包括一個開源項目的社區健康度和可持續發展性。近日,有業內專家提出了兩個新的指標,用以評估一個開源項目社區的建設情況。
如今,一個開源項目可供人們參考的指標有很多,包括 star 、fork、拉取請求 (PR)、合并請求(MR)、貢獻者數量等等。前 PingCAP 全球戰略和運營總監 Kevin Xu 認為,這些明面上的指標很容易受到營銷策略的影響,比如刷 star,刷 fork,甚至有的項目有意將一個較大的組件分解為較小的部分從而增加 PR 數量……幾乎所有的指標都可能被濫用,導致在評估一個開源項目的健康度和可持續性時并不準確,有的甚至失真嚴重。
因此,Kevin 提出了兩個新的指標,分別是:
- PR 或 MR 評審員的細分情況
- 社區交互的排行榜
對這兩個指標進行持續跟蹤、衡量并不斷優化,就可以更加客觀地持續評估一個開源社區的健康狀況,從而幫助項目管理者建立一個強大的、自我完善的開源社區。
為什么是這兩個指標?
Kevin 認為,任何一個開源項目社區建設的長期目標,都是達到一個臨界點,使得項目能夠在最初的創建者或維護者淡出之后,仍然能可持續發展。特別是對于那些圍繞開源技術建立商業化的開源軟件(COSS)公司來說,這個目標尤為重要。試想一下,如果一個開源項目由于創始人的退出就發展停滯,那么圍繞該項目進行商業化的公司就將遭受滅頂之災。
這是一個崇高的目標,卻很少有項目能實現。
項目維護者的倦怠是一個很普遍的問題。最近的一個例子是 Redis 的創建者 Salvatore Sanfilippo,他在去年分享了他作為一個開源維護者的奮斗歷程,并在今年早些時候辭去了 Redis 實驗室的 CEO 職位。現實中,各種項目的維護者,無論大小,每天都在類似的倦怠中掙扎。
因此,關注以上兩個指標,尤其是在項目開源之旅的早期,可以增加建立可持續發展的幾率,因為這兩個指標闡明了推動項目可持續性的兩個重要因素:所有權和激勵。
細分 PR/MR 審核者 = 所有權
這個指標能夠追蹤社區中誰在積極審查貢獻,是一個很好的所有權指標。在項目開始的時候,創建者做了大部分的審查工作,但是隨著時間的推移和項目的發展,這種情況將難以持續。社區管理者可以在早期有意識地運營,招攬潛在的優質維護者,適當地放權,讓更多的人有背景知識、信心和歡迎的態度來審查收到的 PR/MR,參考 Linus Torvalds 招攬的 Linux 內核子維護者們,這對項目長期的可持續性至關重要。
從另一方面來說,審查貢獻環節有一個類似于客戶服務的元素,如果在這個環節沒有足夠的維護者參與審查,將導致一個 PR 或 MR 在兩個星期甚至更長的時間里無人問津,這會給一個原本熱情洋溢的新人帶來不小的打擊,從而影響社區新人的成長。
社區互動排行榜 = 激勵機制
跟蹤一些面向社區的互動,并可能在社區內用獎勵的方式將其“游戲化”,這有助于在具有各種經驗水平的社區成員中推動他們產生積極的互動。社區管理者可以跟蹤的一些互動是提交的 PR/MR 的數量、評論、建議等。這些互動可能有不同的價值和質量,但這里更大的目標是了解誰在做什么,誰擅長做什么,并根據人們的優勢和興趣有意識地培養更多的用戶行為。
比如也許有些人很擅長提供有用的評論,但暫時還沒有足夠的技術背景來審查 PR/MR,最好能確定他們是誰,并向他們提供更多的信息,以便他們有一天能成長為維護者;也許有些人非常熱衷于監督這個項目,這從他們頻繁的反應中可以看出,但他們可能并不愿意參與評論和建議,如果能知道他們是誰,并幫助他們獲得更多的背景,了解項目的內部運作,從而為他們明顯關心的社區增加更多的價值,這將是一件好事。
如何使用這些指標
那么如何跟蹤和解讀這些指標呢?Kevin 用了兩個開源項目的例子來說明:
- Kong,一個API網關
- Apache Pulsar,一個 pub-sub 消息系統
Kevin 使用開源數據可視化工具 Apache Superset 從 Kong、Apache Pulsar 項目中抓取了一些數據:
PR 審查員的指標
下面兩張圖分別顯示了 Kong 和 Pulsar 在 GitHub 上近兩年的 PR 回復,不同顏色代表不同的PR 審查員:
根據這些數據,可以觀察到 Kong 的 PR 審查員比例相比 Pulsar 更加“平衡”。這種“平衡”是隨著Kong 項目逐漸成熟而實現的。最重要的一點是,Kong 的創建者 Aghi 和 Marco 都不是參與 PR 回復最多的維護者,這是一件好事。 也就是說,隨著項目的成熟,Kong 項目社區已經出現了足夠的維護者替代項目創始人的一些代碼審查工作,這是項目可持續發展的好兆頭。
而作為一個相對年輕的項目,Pulsar 雖然還沒有達到同樣的水平,但也正在實現這種平衡的路上。Sijie,Jia 和 Penghui 做了大部分的審查工作,這三人都是項目管理委員會的成員,并領導著 Pulsar 的 COSS 公司 SteamNative。其他主要的參與者,包括 Splunk(特別是在它收購了Streamlio 之后),也為這個項目做出了貢獻,這是最終實現平衡的一個很好的領先指標。
注:Kevin 有意忽略了 Apache 軟件基金會項目和其他項目在治理流程上的差異,這將影響一個貢獻者成為評審員或維護者的速度和資質。因此,這種比較并不能 100% 的反應實際情況,但卻可以窺見社區治理流程對項目維護者情況帶來的影響。
社區互動指標
以下是兩張互動指標排行榜,顯示了 Kong 和 Pulsar 自最近一次收集數據以來的 90 天內(大概從 2020 年 3 月到 5 月)在 GitHub 上的社區互動情況,包含 PR 、comments、reviews 等互動數據。
互動排行榜反映了與上一個指標相同的 "平衡程度",誰在做什么樣的互動,發生了多少次互動,以及誰似乎在做這一切都一目了然。
至于建立正確的激勵結構,這種排行榜式的視圖可以幫助社區管理者了解互動的來源,以便于設計相應的獎勵或激勵系統來加速這些積極的互動行為。
這些數據對于內部管理和外部社區建設也很有用。仔細觀察的人可以發現,這些圖表上的很多領導者都是項目的 COSS 公司 Kong Inc. 和 StreamNative 的員工。現實中,積極的社區貢獻者成為項目商業化公司的員工是很常見的,無論這些人在哪里就業,要想培養一個可持續發展的項目,超越最初的創作者(這反過來會影響 COSS 公司的可持續發展),就需要衡量、跟蹤和激勵積極的互動行為。
最后,無論圖表多么漂亮,數據并不能說明全部的問題。而且無論某個項目多么成功,其經驗都不應該被模板化,直接套用到不同的項目中。項目管理者要善于活用這兩項指標,觀察誰在為項目做貢獻,同時積極維護項目相關的文檔,設定明確的項目貢獻質量準則,把握適合自己的納新門檻,在新人數量和質量之間做好平衡,才能讓一個優秀的開源項目社區能夠真正的可持續發展。
本文轉自OSCHINA。
本文標題:Windows/Linux 代碼共享,Linux 內核開發者:差評
本文地址:https://www.oschina.net/news/120749/linux-graphics-why-sharing-code-with