譯者:李潛瑞

極致軟體製程 前言

 

 

 

下一頁


『極致軟體製程』(Extreme Programming,XP)把寫程式當作整個專案期間最重要的動作,開玩笑,這怎麼成!

Time to reflect for a second about my own development work. 我在一個講求即時的軟體文化中工作,時程很趕、技術風險很高。試圖改變朋友的想法,成了一項求生技能。在這種通常分佈於世界各地的團隊中溝通,我們用的是程式碼。我們研究這些程式碼,來了解眾多新的或正在開發的子系統的 API。測試案例可決定程式碼中複雜物件的生命週期或行為。測試系統所得到的問題報告會呈現出程式碼的問題所在。

最後,我們會用『重整』(refactoring)的技術,持續改善現有程式碼的架構。

很明顯,我們的開發方式以程式碼為中心,但我們成功的及時交貨,所以這到底還是可行的。

但這並不是說我們只需埋頭蠻幹寫程式就可以交貨,寫出可以交貨的軟體很難,兼顧品質和時效更難。要做到這般境界,需要某些最佳實踐法則的專業來『加持』。這就是 Kent 開始醞釀其思想的初衷?現在都在這本令人刺激的 XP 書中。

Kent 是在 Tektronics 與其它專案經理人共事時,在用 Smalltalk 設計複雜工程軟體的過程中,一次次導入搭檔編程的做法,而體認到人的潛能。與 Ward Cunningham(譯註)一樣,他也深遠地影響我職業生涯的設計模式運動。

譯註:Ward Cunningham 是著名的 Wiki 網路社群概念的發明人。

XP 描繪出的軟體開發方法,綜合了許多成功開發者所採行的做法,這些做法都深藏在大量的軟體方法論與軟體製程的文獻中。

如同設計模式一般,XP 建立在某些最佳實踐法則之上:像是單元測試、搭檔編程、重整等技術。XP 中,這些做法是綜合在一塊實施的,它們可以彼此截長補短,也彼此牽制(control)。重點就在於這些做法的相互作用,才讓本書對實際的軟體開發有重大貢獻。

對於在正確的時機推出正確的軟體,大家都是有志一同。雖然 OTI 的成功經驗並非純正的 XP,它們之間卻存在著許多共同點。

我與 Kent 之間經歷了令人愉快的的互動,我也有在用 XP 做一個叫 Junit 的小玩意。他的觀點及方法,時時刺激著我去思考自己的軟體開發方法。無庸置疑,XP 也在挑戰某些傳統的重量級方法論;而這本書,將使你決定是否導入 XP。

Erich Gamma
 

 


下一頁