6.0 KiB
6.0 KiB
Domain Expert Interview Questions
領域專家訪談的目標是挖掘深層的業務規則、術語定義、以及複雜的領域邏輯。這些知識是建立 Ubiquitous Language 和識別 Bounded Context 邊界的關鍵。
Phase 1: 術語與概念澄清
目的:建立精確的領域詞彙,發現同名異義或異名同義的情況
- 在你的工作中,最常用的專業術語有哪些?
- [針對特定術語] 這個詞在你的領域中具體是什麼意思?
- 有沒有同一個詞在不同情境下意思不一樣的情況?
- 有沒有外行人容易誤解的術語?
- 有哪些術語是業界標準,哪些是公司內部特有的?
追問技巧:
- "你能舉個具體的例子嗎?" - 用實例驗證理解
- "這個術語和 [另一個相似術語] 有什麼不同?" - 區分細微差異
- "新人常常會把這個詞理解錯成什麼?" - 找出常見誤區
Phase 2: 業務規則與不變條件
目的:挖掘核心業務規則、invariants、以及領域約束
- 在你的領域中,有哪些「絕對不能違反」的規則?
- 什麼情況下 [某個操作] 是不被允許的?
- 如果 [某個規則] 被打破,會發生什麼問題?
- 這些規則的來源是什麼?(法規、業務慣例、技術限制?)
- 這些規則會改變嗎?什麼情況下會改變?
追問技巧:
- "為什麼會有這條規則?" - 理解規則背後的原因
- "這條規則有例外嗎?" - 發現特殊情況
- "如果不遵守這個規則,誰會受影響?" - 理解影響範圍
Phase 3: 領域事件與狀態轉換
目的:識別關鍵的領域事件,理解實體的生命週期和狀態機
- 在你的日常工作中,有哪些重要的「事情發生了」的時刻?
- 當 [某個事件] 發生時,接下來通常會發生什麼?
- [某個實體] 會經歷哪些狀態?如何從一個狀態轉換到另一個?
- 什麼情況下狀態轉換會失敗?
- 有哪些事件是需要立即通知其他人或系統的?
追問技巧:
- "這個事件可以被撤銷嗎?" - 理解可逆性
- "這個事件的發生順序重要嗎?" - 識別時序約束
- "如果這個事件沒有被記錄會怎樣?" - 理解事件的重要性
Phase 4: 計算與決策邏輯
目的:理解複雜的計算公式、評分機制、或決策流程
- [某個值] 是如何計算出來的?
- 在做 [某個決策] 時,你會考慮哪些因素?
- 有沒有一些經驗法則或啟發式方法?
- 這個計算 / 決策有精確的公式嗎,還是依賴專家判斷?
- 什麼情況下計算結果需要人工覆核?
追問技巧:
- "能否用一個具體的例子走一遍計算過程?" - 驗證理解
- "這個公式中哪些參數最關鍵?" - 識別核心因素
- "有沒有邊界值或特殊情況需要特別處理?" - 發現邊界條件
Phase 5: 異常情況與邊界案例
目的:發現容易被忽略的特殊情況,這些往往揭示了隱藏的複雜度
- 在實際工作中,有哪些「例外情況」需要特殊處理?
- 最讓你頭痛的邊界案例是什麼?
- 新手最容易在哪裡犯錯?
- 有沒有一些「理論上不該發生但實際上會發生」的情況?
- 當系統出現錯誤時,你如何判斷和處理?
追問技巧:
- "這種情況多久會遇到一次?" - 評估頻率
- "處理這種情況的標準流程是什麼?" - 理解處理機制
- "如果處理不當會有什麼風險?" - 評估嚴重性
Phase 6: 資料與資訊流
目的:理解資料如何流動,哪些資料是權威來源,哪些是衍生的
- 這份資料的權威來源 (Source of Truth) 是哪裡?
- 這份資料會同步到哪些地方?
- 資料的時效性要求是什麼?(即時、近即時、最終一致?)
- 如果兩個地方的資料不一致,以哪個為準?
- 資料的完整性和準確性如何驗證?
追問技巧:
- "這份資料可以被修改嗎?什麼情況下可以修改?" - 理解可變性
- "這份資料需要保存多久?" - 理解生命週期
- "誰有權限存取 / 修改這份資料?" - 理解權限邊界
Phase 7: 與其他領域的互動
目的:識別 Bounded Context 之間的邊界和整合點
- 你的工作需要和哪些其他部門 / 團隊協作?
- 你需要從其他系統獲取哪些資訊?
- 你產出的資訊會被誰使用?
- 在協作過程中,有沒有遇到「他們用的詞和我們不一樣」的情況?
- 跨部門協作時,最常遇到的問題是什麼?
追問技巧:
- "你們之間是如何交接資訊的?" - 理解整合方式
- "對方提供的資訊格式符合你的需求嗎?" - 發現適配問題
- "如果對方的系統出問題,你這邊會受什麼影響?" - 理解耦合度
Phase 8: 時間與並發考量
目的:理解時間相關的業務規則和並發情況下的處理邏輯
- 這個操作有時間限制嗎?(截止日期、有效期限、時效性?)
- 如果兩個人同時進行 [某個操作],會發生什麼?
- 歷史資料的處理方式是什麼?需要追溯修改嗎?
- 有沒有「生效日期」或「排程執行」的概念?
- 時區或營業時間會影響業務邏輯嗎?
追問技巧:
- "如果操作超過時限會怎樣?" - 理解超時處理
- "能否回到過去的某個時間點查看狀態?" - 理解歷史追蹤需求
- "這個操作可以被排程延後執行嗎?" - 理解時序彈性
訪談後整理重點
根據領域專家訪談,應該能整理出:
- Ubiquitous Language 詞彙表 - 精確定義的領域術語
- 核心業務規則清單 - invariants 和約束條件
- 領域事件目錄 - 關鍵的業務事件和觸發條件
- 狀態機圖 - 重要實體的狀態轉換
- 異常處理機制 - 邊界案例和例外情況
- Context 邊界訊號 - 術語衝突、團隊邊界、資料權威來源的差異
記住:領域專家提供的是深度知識,但可能缺乏全局視角。需要與 PM 和用戶訪談結合,才能建立完整的領域理解。