資源描述:
《開源社區(qū)的管理模式及開源軟件管理》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、開源社區(qū)到底是怎樣形成的?開源項目是怎么管理的? 在這篇文章中,我想分享一下我在參與AS7開發(fā)過程中用到的管理工具及協(xié)作流程,并談一些對開源社區(qū)的理解?! S7的開發(fā)流程主要涉及這樣一些核心工具: github–從AS7開始,幾乎JBoss的所有組件的代碼庫都轉(zhuǎn)移到github上面?! enkins–Jenkins原名Hudson,是一個CI(ContinuousIntegration)工具。AS7使用它來進(jìn)行代碼的自動化持續(xù)測試?! IRA–Jira用于根蹤項目Bug,記錄開發(fā)任務(wù)等?! ÷犉饋砗推毡榈捻椖抗芾砹鞒虥]什么太大區(qū)別:幾乎所有的項目都會有一個代
2、碼倉庫,有一個Bug跟蹤系統(tǒng)。(當(dāng)然,可能有的項目并沒有集成測試環(huán)境,也不寫單元測試,質(zhì)控基本靠人工-這是屬于管理水平較低的項目中的情況。) 那么,當(dāng)一個社區(qū)項目成規(guī)模,成熟化以后,卻可以用看起來和別人沒什么不一樣的管理工具將項目管理得很好,這里面有什么秘密呢?我覺得差距主要體現(xiàn)在流程細(xì)節(jié),工具的使用水平,測試的自動化程度這三個部分?! 【蚃Boss的社區(qū)來講,我想分享一些具體經(jīng)驗。首先我們要知道JBoss社區(qū)的Bug管理系統(tǒng)位于: https://issues.jboss.org/secure/Dashboard.jspa 如果你有社區(qū)賬號,可以登錄進(jìn)去,就可
3、以看到這里面管著多少項目。以下是部分項目的截圖: 可以看到整個JBoss社區(qū)的項目規(guī)模是非常龐大的,這里面的很多項目既做為組件形成JBoss核心產(chǎn)品JBossAS7,又可以獨立使用并與其它社區(qū)項目相結(jié)合,比如Hibernate,就是JBoss社區(qū)的產(chǎn)品之一?! ∵@些項目的社區(qū)里面的開發(fā)人員,大部分沒有交集,各自在自己的項目中進(jìn)行開發(fā)。也有少數(shù)的成員同時給好幾個項目貢獻(xiàn)代碼,這樣的開發(fā)人員一般是RedHat員工(RedHat也會看社區(qū)里面的代碼的貢獻(xiàn)量;貢獻(xiàn)比較大的非RedHat員工,往往會被高薪挖來成為全職)。 可能對開源社區(qū)的運作不太了解的人,會認(rèn)為社區(qū)是“平的
4、”,大家人人可以自由提交代碼,有大量的人貢獻(xiàn)代碼,然后一個好的項目就誕生、成長起來了。這可能是對社區(qū)模式的最大誤讀了。 實際情況恰恰相反,社區(qū)的人員組成結(jié)構(gòu)更像是金字塔。真正組成社區(qū)的核心開發(fā)人員,一般也就那么3、5個人,這些人往往擁有非常強的編碼能力,非常豐富的經(jīng)驗,他們基本上可以在項目中貢獻(xiàn)80%~90%的代碼,并且項目設(shè)計由這些人完成,他們可能同時是標(biāo)準(zhǔn)制定者和代碼編寫者。 以JBoss項目RESTEasy為例: http://www.jboss.org/resteasy 這個項目的社區(qū)領(lǐng)導(dǎo)BillBurke身兼多重身份:首先他是RedHat員工;然后他
5、是JCP標(biāo)委會成員,參與包括EJB,JAX-RS等多個J2EE標(biāo)準(zhǔn)的制定;同時,JAX-RS標(biāo)準(zhǔn)的框架實現(xiàn):RESTEasy的核心部分幾乎全部由他一人撰寫,同時他參與多個社區(qū)的編碼工作。而BillBurke本人也是JBoss社區(qū)的創(chuàng)始人之一,在商業(yè)上非常成功,做為一名技術(shù)人,他的富有程度并不會輸給RedHat核心管理層?! ≡賮砜碦ESTEasy的團隊核心成員: https://community.jboss.org/wiki/ResteasyContributors 幾乎都是RedHat員工,享受公司很好的待遇,從事社區(qū)專門的工作。除了JBoss這種由RedHa
6、t直接支持的“商業(yè)味”比較濃的社區(qū)之外,我們再看下一些由開源基金會支持的“純正血統(tǒng)”的開源社區(qū)。比如Apache社區(qū)的一些項目,拿HTTPD為例: http://httpd.apache.org/ 左邊有GetInvolved鏈接,分三個部分:MailingLists,BugReports,DeveloperInfo?! 】梢钥吹?,代碼開發(fā)并不是參與社區(qū)開發(fā)的全部內(nèi)容。首先我們可以訂閱它的郵件列表,對社區(qū)中日常工作有一個大概了解,然后可以發(fā)現(xiàn)問題后提交Bug給社區(qū)去解決,最后是DeveloperInfo,這里面可以找到代碼庫: http://svn.apache
7、.org/viewvc/httpd/httpd/trunk/ 仔細(xì)看下貢獻(xiàn)者,發(fā)現(xiàn)人數(shù)并不太多。除了Apache基金會自己的核心成員,還有不少來自RedHat,IBM等各家參與開發(fā)的公司的員工貢獻(xiàn)。在RedHat的SecurityTeam中,我的不少同事同時也是為HTTPD貢獻(xiàn)代碼的開發(fā)人員?! ∫虼?,我們要明確這樣一個概念,社區(qū)的平等,并不意味著社區(qū)是"平"的,我參與過的所有社區(qū)幾乎都是金字塔型:核心團隊規(guī)模保持小而精,貢獻(xiàn)絕大部分代碼,他們往往就職于商業(yè)公司,或者在研究機構(gòu)或開源組織中從事專業(yè)工作-憑著技術(shù)狂熱和大量業(yè)余時間來參與社區(qū)開發(fā),并形