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