歡迎光臨
每天分享高質量文章

抵制數豆子:除提交次數外的開源影響力

無論您是釋出自己的程式碼還是為其他人的專案做貢獻,評估開源互動的有效性都是一項相當模糊的任務。

— Augustina Ragwitz

 

譯自:developer.ibm.com | 作者:Augustina Ragwitz | 轉自:https://developer.ibm.com/cn/blog/2018/countering-bean-counting-open-source-influence-beyond-commits/ | 譯者:developerWorks中國

開源互動有何價值?

無論您是釋出自己的程式碼還是為其他人的專案做貢獻,評估開源互動的有效性都是一項相當模糊的任務。

評估“互動成功與否”的傳統方法與可以輕鬆量化的事件密切相關。在體育運動中,可以透過比賽規則和身體表現來評估運動員,比如多快、多高和多少次。在銷售中,可能透過客戶轉化率和銷售額資料來衡量銷售人員。

開源社群評估與有形的工件和成果的關係沒那麼密切。開源社群中的“成功”涉及到 3 個關鍵領域:

◈ 個人影響力(我做了多大貢獻?)
◈ 組織影響力(您對社群有多重要?)
◈ 流行度(是否有人關心您在做什麼?)

這非常類似於研發。在研發中,人們可能透過發表文章數來評估個人影響力,透過專利數和所開發產品的銷量(間接銷量)來評估組織影響力,並透過取用率和市場份額來評估流行度。

本文特別關註組織影響力,並建議使用提交次數作為啟發方法來衡量組織與某個開源專案的互動水平。澄清一點,儘管收入是我們的經濟和許多業務的推動因素,但本文的關註點不是收入。我們關註的是價值;收入是一種結果。

您如何衡量開源互動的價值?

開源社群度量指標的當前正規化受到這些社群人員有限背景嚴重影響。具體來講,在電腦科學和 IT 領域擁有狹隘背景的人獲得的社會科學培訓很少,而且認為系統度量指標足以衡量人類。在系統中,精確率對識別效能瓶頸、上線時間和容量規劃很重要。

在傳統上,基於“員工的價值就是員工產生的工作量”的假設,科技行業將上述狹隘的背景應用於人類度量指標(這裡稱為“人類-系統human-system度量正規化”)。因此,度量指標必須用非常高的精確率來衡量工作量,比如程式碼行數或解決的通知單數。此外,員工報酬和評級與報告的這些工作量直接掛鉤。

事實上,量化的工作量度量指標只能告訴我們關於工作的價值或性質的部分資訊,而不是全部。而且,在銷售中引入競爭機制,並且衡量的工作量與切實獎勵掛鉤時,這些指標可能導致行為差錯。

您是否改變過您的工作活動來“虛報”某個工作量度量指標?

人類無法用人類-系統度量指標來衡量,因為人太會糊弄了。度量指標應該由問題驅動(基於您的標的和價值以及您希望如何實現它們),而不是完全由資料驅動。事實上,如果沒有適當的反省和思考如何衡量指標如何影響您的更大標的(以及它們是否相關),就不應該開始收集任何資料。

您如何擺脫人類-系統度量正規化?

1. 詢問更好的開源互動問題
2. 尋找能引發戰略性討論的有意義答案(而不只是儀錶板)

GitHub:一個針對編碼的社交網路平臺

Github 上的使用者個人資料示例

許多開源社群和組織透過 GitHub 託管其專案(不要與 git 混淆,git 是一個命令列工具,GitHub 提供了它的介面)。GitHub 是一個包含等待分析的公共活動的寶庫,但 GitHub 本身無法在這一領域提供任何有意義的資訊!每一年,GitHub 都會釋出 The State of the Octoverse 報告,這是資料驅動的度量指標的典型例子。該報告包含豐富的漂亮圖表和統計資料,但非常混亂和不連貫,無法講述任何故事或分享任何有深度或有意義的資訊。

Github 的 The State of the Octoverse 報告

每個儲存庫的頁面都包含提交數和貢獻者數量等基本統計資料。甚至還包含一個洞察頁面,上面提供了更多(但不是特別有見地)的統計資料。我們無法使用這些型別的人類-系統度量指標來獲得有意義的結論。

一個包含提交次數和貢獻者數的儲存庫頁面。您能否從中獲得一個有意義的結論?

一個 Github 儲存庫的洞察頁面。此資訊回答了(或者能回答)哪些有意義的問題?

使用提交次數作為對影響力的度量

提交次數是一個被認為屬於程式碼更改的歷史記錄。目前,“排名”影響力的流行度量方法是統計提交次數,並根據識別出的一組作者資訊將它們分配給一位作者或一個公司。

常見問題:誰的提交次數最多?更好的問題:一個組織的影響力有多大?

識別組織關聯

標識公司的最常見方法是透過作者用於提交的電子郵箱地址的域名,或者透過作者的 GitHub 個人資料中的公司欄位來標識公司。公司欄位是自由格式的文字,沒有修改歷史,而且無法實際驗證。此外,只有少部分 GitHub 使用者在實際使用它。

讓使用者使用其工作電子郵箱地址向儲存庫執行提交,這是標識組織關聯的最可靠方法。但是,跨專案的準確性仍是一大挑戰,因為作者並不總是使用相同的電子郵箱地址,而且一些作者從不使用他們的工作電子郵箱地址。

Tensorflow – 電子郵件域型別的分佈

Tensorflow – 每個電子郵件域的作者比例

Tensorflow – 每個電子郵件域的唯一作者。這告訴我們組織互動程度的哪些資訊?

解決此問題的人類-系統度量方法是,開發一個複雜解決方案來標識作者關聯,以便提高精確率,但這隻能獲得少量收益,而且複雜性和開銷會明顯增加。一個根據成熟的社會科學和統計方法構建的問題驅動的方法建議,您無需在意精確率,只要詢問正確的問題就行了。

Tensorflow 專案中識別的 Google 員工所用的電子郵箱地址圖表

這裡提供了互動式圖表[1]

使用一個網路來消除作者和提交者的歧義。複雜度的增加值得嗎?

我知道您至少能夠非常肯定地識別部分關聯。因此,要考慮的啟發方法是,如果一個組織互動積極,那麼他們在給定時間間隔內將至少擁有 1 次包含關聯的電子郵件域的提交。這種啟發方法也可以預防“遊戲化”,預防成員向專案執行大量錯誤提交來提升其排行榜位置,因為在給定時間間隔只進行一次計數。

Tensorflow 提交者的電子郵件域分佈。我已知道這些提交者主要應該是 Google 員工,而且考慮到個人電子郵件域的巨大比例,其他所有資訊肯定也很重要。

警告:使用此啟發方法可能無法識別頻繁互動的組織。

採用提交樣式而不是提交計數

互動頻率(提交間隔)

當您思考與人的關係時,與您關係最密切的人往往是您在較長時間內最常交流的人。使用此模型,您無需考慮提交計數,只需考慮您是否至少採用一致方式提交了一次,以及提交花了多長時間。這還展示了一個組織向一個專案提交了多長時間,這是單單一個提交計數所無法展現的。

具體來講,這個指標度量包含至少一次提交的時間間隔頻率(比如月),並回答了下麵的問題:該組織參與互動已有多長時間?

擁有至少一位已識別的關聯作者、Tensorflow 提交月份超過 6 個月的組織

擁有至少一位關聯作者、Tensorflow 提交季度最多的組織

互動週期(提交間隔順序)

描繪為時序時,上面演示的提交間隔也可以表明該組織參與互動的一致性。

擁有一次關聯提交的月份最多的組織

擁有一次關聯提交的季度最多的組織

每個組織的提交計數何時才足夠準確(且成本低)?

在開源領域,有兩種基本的治理型別:封閉和開放。封閉治理意味著,專案領導角色由單個物體控制,提交者主要與該物體相關聯。根據控制物體的標的,專案可能被轉換為開放治理專案,這意味著任何社群成員都可以承擔領導角色。在這些情況下,可以預料屬於原組織的提交者中具有更高的識別率。

當識別率基本上為 X 和 ~X 時,提交者與屬於每個小組的提交次數的比例應表明大部分提交是否與原組織相關。

提交者多樣性

一個專案的開放治理水平如何?理想情況下,一個開放治理專案不應讓大部分提交者代表一個組織。還可以使用這個度量指標來演示過去採用開放治理的專案上存在的問題,尤其是在確定存在某種已知的主要影響力時。

IBM Cognitive Open Technology 團隊最近 在 Index 大會上舉行了一次 Tensorflow 小組會議[2],有多位重要的 Tensorflow Google 員工參與了此會議。會議宣告,Google 在努力透過增加非 Google 提交者讓 Tensorflow 社群變得多樣化。

唯一的 Tensorflow 提交者:這似乎為 Google 的宣告提供了支援

Tensorflow 提交的提交者關聯分佈:關於 Google 的提交者多樣性宣告,可能還有哪些問題?

結束語

我演示了單看提交數和作者數不是特別具有洞察力。但是,隨著不斷地繪製圖表,您可以獲得組織與專案的關係性質的更多洞察。此外,因為您考慮的是可以更明確地識別哪些關聯,而不是窮追您不能識別的關聯,所以您可以衡量一個或多個組織是否主導著某個開源專案中的活動。

最後的思考:有關提交次數的註意事項

提交次數不是一種充分的互動度量。必須考慮其他活動才能開展有根據的戰略討論,更不用說提交次數本身的實際含義。此外,這裡提出的指標仍處於探索階段,有待嚴格驗證。無論如何,這些指標應該提供了一個起點,啟發您就自己的開源互動標的提出更好的問題並建立更好的交流。

其他資源

◈ GitHub[3]
◈ State of the Octoverse 年度報告[4]
◈ 透過電子郵箱地址來識別 Tensorflow 作者 + 提交者[5]
◈ 應用社交網路於 Tensorflow 的提交電子郵箱[6]
◈ Tensorflow 電子郵箱的多樣性[7]

贊(0)

分享創造快樂