讀古今文學網 > 程序員必讀之軟件架構 > 衝突2:流程和產出 >

衝突2:流程和產出

第二個衝突,是敏捷和大型預先設計在流程和期望產出(即人們常說的架構)上的差異。敏捷方法的主要目標之一是週期性少量地提供客戶價值,這關乎快速行動、接收反饋、擁抱變化。而大型預先設計的目標是在藍圖(通常是一個計劃)到位前,對全部事情達成共識。

敏捷宣言 1 更推崇「隨機應變」而非「依計劃行事」,但這顯然不意味著不做任何計劃,似乎有些敏捷團隊害怕做任何一點「分析」。結果為了避免大型預先設計,敏捷團隊常常不做任何預先設計,而是用「浮現式設計」或「演化架構」之類的術語來為他們的做法辯解。我還聽說有團隊宣稱他們採用的測試驅動開發(TDD,Test Driven Development)根本不需要「架構」,但也就是這些團隊在將來某個時候會為不斷重構所累。

1 http://agilemanifesto.org