John Wiegand 和 Erich Gamma 在EclipseCon 2005作了題為《Eclipse方式: Processes that Adapt》的主題演講,闡述了為何Eclipse的開發(fā)過程如此成功。
里程碑(Milestones first)
每6個(gè)星期為一個(gè)周期。每個(gè)里程碑都市一次小的開發(fā)周期(mini dev cycle)。計(jì)劃/執(zhí)行/測試/回顧。里程碑式的開發(fā)減少了壓力。
持續(xù)集成(Continuous integration)
完全自動化的系統(tǒng)構(gòu)造和測試。每日的晚間構(gòu)造會發(fā)現(xiàn)不同組件之間的集成問題。每周的集成構(gòu)造和所有的自動單元測試必須成功執(zhí)行(至少在我們自己使用的時(shí)候足夠好)。里程碑的構(gòu)造,則提供整個(gè)Eclipse社群使用足夠好的系統(tǒng)。
總是beta (Always beta)
每一次構(gòu)造都視為一個(gè)候選的release,我們期待它是可以工作的。組件團(tuán)隊(duì)每天使用最新的代碼,項(xiàng)目組則使用集成后的,而社群則使用里程碑構(gòu)造的系統(tǒng)。
集體參與 (Community involvement)
以前的開發(fā)是不公布源代碼的,也很少交流。現(xiàn)在需要透明的開發(fā)過程。整個(gè)社群需要知道進(jìn)行的如何,如何參與。需要開發(fā)式的參與,提高社群貢獻(xiàn)的價(jià)值
- 問題: 沒有人知道下一個(gè)里程碑中含有什么新功能
- 解決:發(fā)布新的和值得注意的功能(new and noteworthy)
持續(xù)的測試 (Continuous testing)
最初沒有單元測試,這就好像蒙著眼睛開車。現(xiàn)在,有超過20,000個(gè)JUnit測試單元,和整個(gè)構(gòu)建過程緊密的聯(lián)系在一起。只有所有的測試都是綠色的時(shí)候(JUnit中,綠色表示測試通過),繼承構(gòu)造才能通過。我們有3種不同的測試: 正確性,性能,資源
結(jié)束游戲 (Endgame)
正式發(fā)布之前或有一次匯總過程(convergence process)。包括了一系列的測試-改正的過程。每一次這樣的過程都會增加成本。關(guān)注于優(yōu)先級高的問題。這里沒有專職的測試員。
- 問題:很疲勞的過程
- 解決:分?jǐn)偟矫恳淮伟l(fā)布,而不是集中在里程碑之前
最終截止(Final Closure)
以The Elcipse Project Team的名義,發(fā)布"Eclipse x.x now available"
放松自己(Decompression)
每次release之后的恢復(fù)期。可以自由的去探索一些新的東西,回顧上一個(gè)周期(達(dá)成的任務(wù),失敗的地方,過程,小組之間的交流)。開始計(jì)劃下一個(gè)release的過程。
每個(gè)周期的時(shí)間
- Release 周期: 12-16 個(gè)月
- 里程碑: 9個(gè)月
- 結(jié)束游戲:1至2個(gè)月
- 放松期:1個(gè)月
這里是第一部分。詳見eclipsepowered.org
[注:]這是從我在CSDN的Blog上遷移過來的。
Email this store to a friend(send a short email with a subject to this story)
Subscribe to kukooBlog (subscribe kukooBlog's RSS feed)
Send me feedback on this story