Gap Analysis:找出你以為做了但其實沒做的東西

一句話總結:規劃文件寫得再漂亮,如果程式碼裡沒有對應的實作,它就只是一份漂亮的廢紙。

結論先講:「規劃中寫了但沒實作」比「完全沒規劃」更危險——因為你以為有了,所以不會去注意,等到上線才發現少了一塊。

為什麼落差會存在?

在實務中,規劃與實作脫節的情況比你想像的常見:

  • 規劃時覺得重要,開發時趕進度跳過了
  • 以為別人會做,結果沒人做
  • 規劃文件更新了,Proto 程式碼沒跟上
  • 實作的時候發現技術難度高,暫時擱置然後忘了

這些落差不會自己消失。不定期檢查,就是在累積技術債——而且是你以為沒有但其實有的技術債。

四步驟找出所有落差

Step 1:列出所有規劃項目。從上一篇的 10 維度檢查清單開始,加上你的 Track 特有項目。

Step 2:逐項檢查程式碼。不只是「檔案存在」,是「功能完整且可用」。一個空的 auth/ 目錄不算「認證機制已實作」。

Step 3:分類每個項目。四種分類:

  • Planned & Built:規劃有、實作完整。維護即可。
  • Planned but Not Built:規劃有、沒有實作。需要補建。
  • Built but Not Planned:實作有、規劃沒提到。補文件或考慮移除。
  • Built but Incomplete:有實作但不完整。需要補強。

Step 4:排優先順序。安全(D)> 錯誤處理(E)> 容器化(C)的優先順序最高,因為直接影響生產環境。

一個實際的例子

以 Django Proto 為例:

面向項目落差分類優先級
EGlobalExceptionHandlerPlanned but Not BuiltP0
FJSON 結構化日誌Planned but Not BuiltP1
CDockerfile 非 root 使用者Built but IncompleteP1
ISwagger 文件Built but Not Planned-
GTestcontainers 整合測試Planned but Not BuiltP2

P0 的東西這個 Sprint 就要做。P1 排進下一個 Sprint。P2 放 backlog。

怎麼防止落差再次出現

做一次 Gap Analysis 不夠,你需要一個節奏:

  • 每月:快速掃一遍,確認沒有新的 P0 落差
  • 每季:完整的 Gap Analysis,更新所有狀態
  • 每次事故後:如果事故跟 Proto 的缺失有關(例如日誌格式不統一導致無法快速定位問題),立刻在 Gap Analysis 裡標記為 P0

這篇的重點回顧

Gap Analysis 用四步驟確保規劃等於實作。分類所有項目、排優先順序、定期執行。最危險的不是「沒規劃」,而是「以為規劃了但其實沒做」。

系列文章:

「Gap Analysis 就像對帳——你不會想在年底才發現帳目對不上。」