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,系統化的分析能幫助你避免常見的決策陷阱!