複雜性不是某次災難性失誤造成的,而是在許多微小片段中緩慢累積。
累積過程#
- 單一個依賴或單一個模糊,幾乎不會明顯影響系統的可維護性
- 但成百上千個小依賴與小模糊堆疊起來後,幾乎每一次的改動都會撞上好幾個
為什麼難以控制#
逐步累積的本質讓複雜性特別棘手:
- 每次修改時,很容易說服自己這次只多加一點點複雜性沒什麼大不了
- 但若每位開發者每次修改都這樣想,整體複雜性就會迅速膨脹
- 累積到一定程度後再想消除幾乎是不可能的——因為修掉任何單一依賴或模糊,幾乎不會有顯著差別
應對方式#
必須採取「零容忍(zero tolerance)」的態度。
不能因為「這次只是一點點」就放行;唯有對每一次變更都堅持簡潔,才能阻止複雜性的累積。第 3 章會詳細說明這種策略性思維。