TTechSpecs

Decision Analysis Skill

Decision Analysis 是 Matt Pocock’s engineering skills 中最重要的決策型 skills 之一,專注於系統化地分析決策的影響範圍和潛在風險。

何時使用

在以下情況中使用 Decision Analysis skill:

必須使用的情境

  • 考慮重大架構變更前
  • 選擇技術方案或工具時
  • 重構大規模程式碼前
  • 引入新依賴或服務時
  • 改變核心業務邏輯時

不適合的情境

  • 小型、本地化的修改
  • 已有明確的替代方案
  • 影響範圍有限的調整

分析框架

第 1 層:直接影響

分析決策的直接影響範圍:

直接影響分析:
✓ 哪些檔案需要修改
✓ 哪些函式會被影響
✓ 哪些測試需要更新
✓ 哪些介面會變更

第 2 層:間接影響

分析決策的間接影響範圍:

間接影響分析:
✓ 哪些模組依賴這些改變
✓ 哪些資料流會被影響
✓ 哪些使用者場景會改變
✓ 哪些系統邊界需要調整

第 3 層:潛在風險

識別潛在風險:

潛在風險:
✓ 效能影響(快取失效、查詢變慢)
✓ 相容性問題(舊版資料格式)
✓ 遷移複雜度(資料庫 schema 變更)
✓ 維護成本增加(更多邊緣情況)

實際範例

範例 1:技術選擇分析

情境:考慮從 REST API 遷移到 GraphQL

分析過程

直接影響:
• API 端點重新設計(30+ endpoints)
• 前端查詢邏輯重寫
• 測試用例全面更新

間接影響:
• 第三方整合需要更新
• 監控系統需要適配
• API 文檔需要重寫

潛在風險:
• N+1 查詢問題
• 快取策略失效
• 團隊學習曲線

結論:
優點:前端靈活性大幅提升
缺點:遷移成本高,風險多
建議:分階段遷移,先在新功能試用

範例 2:資料庫 schema 變更

情境:將單表拆分為多表(正規化)

分析過程

直接影響:
• 資料遷移腳本
• ORM 映射更新
• 查詢邏輯改寫

間接影響:
• 報表系統需要調整
• 資料備份流程更新
• 資料權限邏輯重構

潛在風險:
• 遷移期間資料不一致
• 查詢效能下降(JOIN)
• 回滾策略複雜

結論:
必要變更,但需謹慎規劃
建議:
1. 先準備完整的遷移腳本
2. 在測試環境驗證
3. 制定回滾計畫
4. 選擇低峰時段遷移

分析技巧

1. 影響矩陣

建立影響矩陣系統化評估:

            低影響  中影響  高影響
低風險       ✓      ✓      ⚠️
中風險       ✓      ⚠️     ❌
高風險       ⚠️     ❌     ❌

✓ = 可接受
⚠️ = 需緩解措施
❌ = 不可接受

2. 成本效益分析

評估決策的成本和效益:

成本:
• 開發時間:X 小時
• 測試成本:Y 小時
• 遷移風險:Z %

效益:
• 效能提升:A%
• 維護簡化:B%
• 新功能可能:C%

ROI = (效益 - 成本) / 成本

3. 依賴圖分析

視覺化決策的依賴關係:

決策 A
  ↓ 依賴
決策 B
  ↓ 依賴
決策 C

如果決策 C 失敗,決策 B 和 A 都會受影響

最佳實踐

1. 保持客觀

避免確認偏誤:

  • 尋找反面證據
  • 聽取不同意見
  • 使用數據決定

2. 文檔化過程

記錄分析過程:

決策記錄:
• 日期
• 參與者
• 考慮的選項
• 分析結果
• 最終決定
• 理由

3. 持續評估

決策後持續評估:

  • 監控關鍵指標
  • 收集回饋
  • 必要時調整

與其他 Skills 組合

推薦組合

Brainstorming + Decision Analysis

brainstorming → decision-analysis

先探索可能性,再系統化分析決策

Decision Analysis + Systematic Debugging

decision-analysis → systematic-debugging

分析決策風險後,準備除錯計畫

Decision Analysis 是做出明智決策的關鍵 skill,系統化的分析能幫助你避免常見的決策陷阱!