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