重點摘要#
- 在專案中途未經妥善規劃就變更時程,是專案失敗最常見的原因之一
- 縮短時程並不會降低成本,反而會導致品質下降,最終增加成本
- 趕工的設計、編碼和測試階段都會直接導致更多的生產問題
- 架構師應該儘早發聲,透過協商與優先排序來維護品質
詳細內容#
專案失敗有很多原因,但其中最常見的是在專案進行中未經適當規劃就更改時程。調整時間線或增加資源本身不是問題,真正的問題在於:被要求在相同時間內完成更多工作,或在縮短的時程中維持相同的工作量。
縮短時程的迷思#
認為時程可以被縮短來降低成本或加速交付,是一個非常普遍的錯誤認知。常見的做法包括要求加班、犧牲「較不重要的排程任務」(如單元測試)來縮短交付日期或增加功能。
必須不惜一切代價避免這種情況。提醒那些要求變更的人以下事實:
- 趕工的設計階段會導致糟糕的設計、缺乏文件,以及品質保證或使用者驗收問題
- 趕工的編碼或交付階段與交付給使用者的 bug 數量有直接關係
- 趕工的測試階段會導致測試不足的程式碼,與測試問題的數量直接相關
- 以上所有情況都會導致生產環境問題,而這些問題的修復成本遠高於前期投入
最終結果是成本增加而非降低,這正是失敗發生的原因。
架構師的應對策略#
作為架構師,你終有一天會面臨需要快速行動以提高成功機率的處境:
- 儘早發聲:首先嘗試透過協商維持原定時間線
- 功能優先排序:如果時程縮短不可避免,嘗試將非關鍵功能移到未來的版本
- 培養協商能力:這需要良好的準備、協商技巧和影響他人的能力
從今天開始磨練你的協商技巧和影響力,當你需要時會很慶幸自己做了準備。
— By Norman Carnovale