重點摘要#

  • 在專案中途未經妥善規劃就變更時程,是專案失敗最常見的原因之一
  • 縮短時程並不會降低成本,反而會導致品質下降,最終增加成本
  • 趕工的設計、編碼和測試階段都會直接導致更多的生產問題
  • 架構師應該儘早發聲,透過協商與優先排序來維護品質

詳細內容#

專案失敗有很多原因,但其中最常見的是在專案進行中未經適當規劃就更改時程。調整時間線或增加資源本身不是問題,真正的問題在於:被要求在相同時間內完成更多工作,或在縮短的時程中維持相同的工作量。

縮短時程的迷思#

認為時程可以被縮短來降低成本或加速交付,是一個非常普遍的錯誤認知。常見的做法包括要求加班、犧牲「較不重要的排程任務」(如單元測試)來縮短交付日期或增加功能。

必須不惜一切代價避免這種情況。提醒那些要求變更的人以下事實:

  • 趕工的設計階段會導致糟糕的設計、缺乏文件,以及品質保證或使用者驗收問題
  • 趕工的編碼或交付階段與交付給使用者的 bug 數量有直接關係
  • 趕工的測試階段會導致測試不足的程式碼,與測試問題的數量直接相關
  • 以上所有情況都會導致生產環境問題,而這些問題的修復成本遠高於前期投入

最終結果是成本增加而非降低,這正是失敗發生的原因。

架構師的應對策略#

作為架構師,你終有一天會面臨需要快速行動以提高成功機率的處境:

  • 儘早發聲:首先嘗試透過協商維持原定時間線
  • 功能優先排序:如果時程縮短不可避免,嘗試將非關鍵功能移到未來的版本
  • 培養協商能力:這需要良好的準備、協商技巧和影響他人的能力

從今天開始磨練你的協商技巧和影響力,當你需要時會很慶幸自己做了準備。

— By Norman Carnovale