從28萬個開源專案中,我們能夠學到一些什麼?

釋懷發表於2015-05-29

這裡宣告一下,僅僅是學習一下:他們是用哪些工具,來管理自己的專案的?

開源專案多如牛毛,值得分析的專案也很多很多。從哪裡入手呢?幸運的是,在開源社群,有一個著名的網站,過去叫oloho,現在改名叫openhub。在他的網站首頁,有這麼四行字,以表明他們的資料庫是多麼的全面、豐富:

這麼說來,事情就變得比較“簡單”了,我需要把openhub的資料,都抓回來。

資料的篩選過程

具體的資料抓取過程,簡直不忍詳述(我的內心,幾乎是崩潰的)。總而言之,我只抓到了289,631個專案。openhub雖然號稱自己索引了66萬的開源專案,其實這僅僅是他的資料庫裡的最大ID號!當我順著這個ID一個一個的去抓的時候,有很多ID,都已經被刪除了。

在抓取到的專案資料中,有兩個數值,特別值得參考:contributors(參與開發者的數量);users(該軟體的使用者數量)。相對而言,users的資料,可以認為是一個樣本,即該開源專案的所有使用者中,願意並且知道該如何來openhub點選I use this的人。因此,即使是排名第一的Firefox,在openhub也只有13158個使用者。考慮到Firefox的使用者數,已經超過5億(來源於維基百科英文版),因此,我們相信這個資料僅僅是一個4萬分之一的取樣結果。

隨後,我觀察了這28萬多個專案的users資料與contributors資料,頓時驚訝的發現,絕大多數專案,都小的可憐,使用者也少得可
憐.

三個感想
  • 成功的開源專案,真是鳳毛麟角
  • 絕大多數開源專案都是少數人開發的小專案
  • 這331個專案,也許可以作為我們的重要參考
第一個問題:他們用什麼配置庫?

這是331個專案,使用配置庫的情況(有些專案,同時使用多種配置庫),有兩個現象值得注意:
  • 接近92%的專案,已經在使用git——git的統治地位,已經無可動搖
  • 只有53%的專案,在使用Github——那些用git卻不用Github的專案,是什麼原因?
通過資料來分析:是否使用Github與專案建立時間的關係


通過這個圖,可以看出兩個現象:
  • 越是新建立的開源專案,hosting在Github上比例越高
  • 越是新建立的開源專案,事實上成功的也越多(當然,2010年以後的數量銳減,我們懷疑是好酒也要陳釀的原因)
通過資料來分析:是否使用Github與專案程式碼規模的關係




由於不同的開源專案,程式碼行數差異巨大,因此我們只能以log(col)對數結果,來做區間劃分。可以看到一個非常明顯的趨勢,當然程式碼行數超過10萬行以後,程式碼部署在Github上的專案,就開始明顯下降,直到為0。

總結:是否使用Github,越是新的專案越願意用;越是大的專案越沒法用。

第二個問題:他們用什麼來管理issue?


排名前五的工具中,Github:91個專案;Bugzilla:81個專案;JIRA:43個專案;Trac:20個專案;另外還有9個專案,完全是在maillist裡“管理”issue的。

一共有39種不同的工具,另外還有6個專案,我們無法瞭解他究竟是用什麼來管理的。
簡單的來看:
  • Github已經佔據統治地位
  • Github的佔有率僅僅27%。
  • Bugzilla也算老而彌堅
  • 有很多專案,在選擇自己的工具
通過資料來分析:使用的issue tracking工具與專案建立時間的關係


1990年之前建立的專案,其中有一個已經開始使用Github了。但是,這僅僅算是個案。更加明顯的趨勢是:越是新的專案,越是傾向於採用Github管理自己的issue。

相對而言,其他各種Issue Tracking工具的比例,都在下降。

通過資料來分析:使用的issue tracking工具與專案規模的關係


隨著使用者數量的增加,我們猜想:issue的數量與複雜度,也會逐漸增加。可以看到這樣的趨勢:Github的使用率,也在不斷下降。

總結:是否使用Github來管理專案的issue,越是新的專案越願意用;越是大的專案越沒法用。

尚未完成的分析:

開源專案使用的CI工具的情況

開源專案使用的Code Review工具的情況

開源專案使用的文件類工具的情況

……

主要還是工作量太大了。。。對這個分析有興趣的同學,可以與我聯絡,我們們可以一塊來幹。

這麼說來,事情就變得比較“簡單”了,我需要把openhub的資料,都抓回來。

資料的篩選過程

具體的資料抓取過程,簡直不忍詳述(我的內心,幾乎是崩潰的)。總而言之,我只抓到了289,631個專案。openhub雖然號稱自己索引了66萬的開源專案,其實這僅僅是他的資料庫裡的最大ID號!當我順著這個ID一個一個的去抓的時候,有很多ID,都已經被刪除了。

在抓取到的專案資料中,有兩個數值,特別值得參考:contributors(參與開發者的數量);users(該軟體的使用者數量)。相對而言,users的資料,可以認為是一個樣本,即該開源專案的所有使用者中,願意並且知道該如何來openhub點選I use this的人。因此,即使是排名第一的Firefox,在openhub也只有13158個使用者。考慮到Firefox的使用者數,已經超過5億(來源於維基百科英文版),因此,我們相信這個資料僅僅是一個4萬分之一的取樣結果。

隨後,我觀察了這28萬多個專案的users資料與contributors資料,頓時驚訝的發現,絕大多數專案,都小的可憐,使用者也少得可憐。
評論(1)

相關文章