深度分析流程
深度分析流程是針對複雜、不明確的問題進行深入調查和分析的工作流程,特別適合問題原因不明或解決方案模糊的情境。
適用情境
深度分析流程適合以下情境:
✅ 最適合的情境:
- 問題原因不明確
- 解決方案模糊不清
- 需要深入調查的複雜問題
- 需要多輪實驗的技術問題
- 需要數據支持的決策
❌ 不適合的情境:
- 問題原因明確(直接實作即可)
- 有明確解決方案的實作任務
- 緊急的問題修復(使用 Quick Flow)
- 簡單的問題排查
流程步驟
第 1 步:問題定義 (Define) - 30 分鐘
目標:明確問題的表現和影響範圍
觸發:
/brainstorming
定義內容:
- 問題的具體表現
- 影響範圍和嚴重程度
- 相關環境和背景
- 初步假設和猜測
輸出:
- 問題描述文件
- 影響評估
- 初步假設清單
第 2 步:假設生成 (Hypothesis) - 30 分鐘
目標:生成多個可能的假設
觸發:
/brainstorming
假設內容:
- 基於問題表現生成假設
- 每個假設有明確的證據
- 識別可驗證的觀察點
輸出:
- 3-5 個假設
- 每個假設的驗證方法
- 優先級排序
第 3 步:證據收集 (Evidence) - 1-2 小時
目標:收集假設驗證所需的證據
觸發:
/investigate
證據收集內容:
- 程式碼和日誌分析
- 系統監控和指標
- 使用者訪談和回饋收集
- 實驗和測試
輸出:
- 證據清單
- 數據分析結果
- 實驗結果
第 4 步:假設驗證 (Validate) - 1-2 小時
目標:驗證或反駁假設
觸發:
/investigate
驗證內容:
- 對證證據是否支持假設
- 識別證證過程中的偏差
- 分析結果的置信度
- 識別需要進一步調查的領域
輸出:
- 假設驗證結果
- 置信度評估
- 新的發現或洞察
- 下一輪調查建議
第 5 步:結論和建議 (Conclude) - 30 分鐘
目標:總結分析結果並提出建議
觸發:
/to-spec
結論內容:
- 問題的根本原因
- 最可能的解決方案
- 實施建議和後續步驟
- 風險評估和緩解措施
輸出:
- 分析報告
- 根本原因分析
- 解決方案建議
- 實施計畫
時間成本
最快:3.5 小時(跳過某些步驟) 最慢:6 小時(完整執行所有步驟) 平均:4.5 小時
實際應用範例
範例 1:性能問題分析
任務:API 回應時間突然變慢
深度分析流程執行:
[1/5] 問題定義
明確問題表現和影響
→ API 回應時間從 100ms 上升到 5s
→ 影響範圍:所有 API 端點
→ 初步假設:資料庫查詢效率問題
[2/5] 假設生成
生成多個假設
→ 假設 1:資料庫索引缺失
→ 假設 2:網路延遲問題
→ 假設 3:記憶體洩漏
→ 假設 4:鎖競爭問題
→ 假設 5:新部署引入的問題
[3/5] 證據收集
收集假設驗證所需的證據
→ 程式碼審查:無近期變更
→ 資料庫查詢分析:某些查詢很慢
→ 系統監控:CPU 使用率正常
→ 記憶體監控:記憶體使用率 85%
→ 新部署日誌:3 天前部署了新功能
[4/5] 假設驗證
驗證或反駁假設
→ 假設 1:資料庫索引缺失 ✅ 驗證
→ 假設 2:網路延遲問題 ❌ 反駁
→ 假設 3:記憶體洩漏 ❌ 反駁
→ 假設 4:鎖競爭問題 ❌ 反駁
→ 假設 5:新部署引入的問題 ✅ 驗證
[5/5] 論和建議
總結分析結果
→ 根本原因:新功能的查詢沒有建立索引
→ 解決方案:建立缺失的資料庫索引
→ 實施建議:立即建立索引,並規劃未來的索引策略
總時間:4 小時
範例 2:記憶體洩漏分析
任務:應用記憶體持續增長
深度分析流程執行:
[1/5] 問題定義
明確問題表現和影響
→ 記憶體使用率從 30% 上升到 85%
→ 影響範圍:所有服務
→ 初步假設:記憶體洩漏
[2/5] 假設生成
生成多個假設
→ 假設 1:快取洩漏
→ 假設 2:連接池洩漏
→ 假設 3:大量資料載入
→ 假設 4:事件監聽器未取消
→ 假設 5:快取策略不當
[3/5] 證據收集
收集假設驗證所需的證據
→ 記憶體分析工具報告
→ 快取使用分析
→ 連接池監控
→ 事件監聽器審查
→ 新功能審查:添加了事件監聽
[4/5] 假設驗證
驗證或反駁假設
→ 假設 1:快取洩漏 ❌ 反駁
→ 假設 2:連接池洩漏 ❌ 反駁
→ 假設 3:大量資料載入 ❌ 反駁
→ 假設 4:事件監聽器未取消 ✅ 驗證
→ 假設 5:快取策略不當 ❌ 反駁
[5/5] 結論和建議
總結分析結果
→ 根本原因:事件監聽器沒有在元件卸載時取消
→ 解決方案:在 componentWillUnmount 中取消事件監聽
→ 實施建議:立即修復,並建立事件監聽器最佳實踐指南
總時間:3.5 小時
深度分析流程的優勢
1. 科學方法
五個步驟遵循科學方法:
- ✅ 問題定義清晰
- ✅ 假設驅證嚴謹
- ✅ 證據收集完整
- ✅ 結論有充分依據
- ✅ 避免直覺性判斷
2. 系統性調查
每個步驟都有系統性調查:
- 多假設並行驗證
- 多維度證據收集
- 重複驗證確認
- 風險評估和緩解
3. 可追溯性
整個流程有清晰的追溯:
- 假設的依據清晰
- 證據來源明確
- 驗證過程記錄完整
- 結論的邏輯鏈完整
與標準開發流程和協作規劃流程的區別
| 特性 | 標準開發流程 | 協作規劃流程 | 深度分析流程 |
|---|---|---|---|
| 適用情境 | 明確的功能實作 | 多人決策 | 問題原因不明 |
| 重點 | 實作和驗證 | 決策和共識 | 調查和假設驗證 |
| 輸出 | 程式碼和測試 | ADR 和計畫 | 分析報告 |
| 時間成本 | 4-7 小時 | 3-4 小時 | 3.5-6 小時 |
最佳實踐
1. 科學思維
在整個流程中保持科學思維:
- 基於證而非直覺
- 避免確認偏誤
- 保持開放和好奇
- 尊重證據品質
2. 迭代優化
多輪深度分析迭代優化:
第一輪:初步假設和證據收集
第二輪:深入分析和精煉假設
第三輪:交叉驗證和結論確定
3. 團隊協作
如果需要團隊協作:
- 分配不同的調查任務
- 定期同步調查進度
- 建立共享的證據庫
- 保持透明的溝通
注意事項
1. 時間投入
深度分析流程需要投入時間,但能避免錯誤決策:
- 避免基於錯誤假設的行動
- 減少重複調查的時間和成本
- 建立問題解決的長期能力
2. 客觀態度
保持客觀和開放:
- 承認自己可能錯誤
- 尊重不同的意見和觀點
- 保持科學和審慎的態度
- 避免過早下結論
3. 證據品質
確保證據的品質和完整性:
- 使用可靠的數據來源
- 驗證數據的準確性
- 記錄數據的來源和時間
- 保持數據的可追溯性
深度分析流程是解決複雜問題和避免錯誤決策的核心工作流程!