Agile 敏捷的核心是迭代還是疊代 Iteration VS Increment
疊代是強調成果的纍積,而迭代是強調做法的改變,兩者都是爲了往最終結果推進的做法,所以其實兩者都是必要的,而敏捷跟傳統方式的差異在哪邊呢?
看到 #敏捷 是「疊代」的説法,我認爲各自表述都很好,但提到用「迭代」的人是一種中文不好加上不會寫軟體的誤用,對於這樣的言論我有不同的觀點。
疊代是進步很重要的推動力,歷史所有的事情自古以來,從文化、科技、甚至到軟體,早就有「#疊代」的概念,每個成果推進都是纍積在之前的成果上,如果敏捷的核心概念是疊代,那爲什麽還要談敏捷呢?
疊代是強調成果的纍積,而迭代是強調做法的改變,兩者都是爲了往最終結果推進的做法,所以其實兩者都是必要的,那敏捷強調的是哪個方法呢?
因爲大家都知道「疊代」Incremental 的重要性,也都很熟悉,所以敏捷帶入的創新概念是「#迭代」Iteration,也就是在圖中上方的方法,在不斷的輪回和重複之中,我們持續找出新的做法,在必要時甚至捨棄之前的成果(所以絕對不是一直疊上去),也就是著重在如何改變既有的慣性。
為何Agile 敏捷要強調迭代 Iteration,就是希望除了成果的積纍,也要反復的檢視做事情的方法(主要藉由自省會議來持續學習),這是敏捷開宗明義的敏捷 101 概念。
儘管我認爲敏捷跟老子思想是同一個精神,但敏捷是個近期由英文世界傳遞過來的概念,也許回歸英文原文的意境是很重要的。