
212
|
第七章
程式碼與設計
在
Chrysler Comprehensive Compensation
(亦即克萊斯勒綜合報酬系統,簡稱
C3
)專案的故事中,
Kent Beck
需要把團隊的文化價值從創造聰明的程式碼
移到創造簡單解法,這是個惡名昭彰的艱困工作。他用的一個技巧是同儕壓
力的老招。在這樣的老招,團隊排成一列,在一個提出超聰明解法的人的頭
上戴一頂有螺旋槳的便帽,然後讓便帽上的螺旋槳旋轉,對該解法的「超群
智慧」歌頌一番。同儕對此會產生反感,這樣就會讓人們遠離聰明解法;對
簡單設計的感謝會吸引他們走向簡單解法。確實一樣米養百樣人,並非團隊
中所有人都對
XP
有足夠的「適應力」。其中一人對這樣需要遵循與緊密合作
的工作模式感到不適應因此離開了專案。
── Alistair Cockburn 所著的
《
Agile Software Development: The Cooperative Game
》第二版
XP 團隊們建構易於改變的程式碼。但他們是如何做的?這不是像任何人開始建構不宜
改變的程式碼那樣。
事實上,許多開發人員們(就算是很聰明的那些!)開始時做的都是相反的事。他們會
與其團隊討論關於建構可被重複使用的程式碼,並會花許多時間試著設計完美且盡可能
被最高度重複使用的元件。但要規劃重複使用是非常困難的,且最終很可能會變成過度
抽象與一般性的程式碼,這樣會讓用來建構框架的程式碼和實際把工作完成的程式碼一
樣多。讓人驚訝的是,今日許多可重複使用程式庫的聰明設計,到明天可能變成團隊需
要處理或是害怕去碰觸的障礙。 ...