極限程式設計

2013 年 7 月 11 日

極限程式設計 (XP) 是一種軟體開發方法,主要由 Kent Beck 開發。XP 是最早的 敏捷方法 之一,在 90 年代末期和 00 年代初期,XP 確實是主要的敏捷方法,直到 Scrum 在 00 年代後期成為主流。許多人(包括我自己)認為 XP 是引起人們對敏捷方法關注的主要催化劑,並且比 Scrum 更適合作為敏捷開發的入門基礎。

Jim Shore 對敏捷軟體開發的描述在很大程度上基於極限程式設計的原則,是我學習 XP 方法的首選指南。

Kent 在 80 年代末期和 90 年代初期為 Smalltalk 專案擔任顧問期間開發了 XP。後來被稱為 XP 的完整實務集最早在 C3 專案中一起使用(我與 Kent 在該專案中合作,並從中學習)。「極限程式設計」這個名稱是後來才出現的,當時這種方法首先在 WikiWikiWeb 上非正式地描述,然後在後來的幾本書中描述。各種團隊採用了 WikiWikiWeb 中的描述並自行實施 XP,從而複製了這種方法並證明它可以在其原始環境之外使用。

Kent 以從廣泛抽象的價值觀到原則,再到具體實務的思想進程來描述 XP - 這種進程對我在許多其他情況下應用都很有用。它推廣了許多實務,這些實務後來在軟體開發中被廣泛使用,包括:持續整合重構測試驅動開發 和敏捷規劃。我特別喜歡它結合了技術和管理實務,這使得它非常適合達到 敏捷流暢 的交付區域 [1]

「白皮書」是極限編程的權威說明,值得所有程式設計師納入閱讀清單中。

儘管如此,如同大多數 XP 實踐者,我不認為評斷一個團隊是否實踐 XP 有什麼太大的用處;我認為 Thoughtworks 的大多數專案運作方式主要受到 XP 的影響。

延伸閱讀

極限編程的權威說明是 Kent 的白皮書。(請注意,許多早期的 XP 實踐者都是使用第一版來學習這種方法,而兩者之間有相當多的差異。)

儘管白皮書是 XP 最佳的定義,但現今我推薦 James Shore 的 敏捷開發的藝術 作為學習 XP 方法的指南。儘管 Shore 的論述範圍比 Kent 的 XP 著作更廣泛,但他的著作仍堅實地奠基於 XP 的主要特色上。

註解

1: 與 Scrum 形成對比,Scrum 故意只包含管理實務,因此容易變成 軟趴趴 Scrum