Files
2025-11-30 08:40:24 +08:00

137 lines
6.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 和用戶訪談結合,才能建立完整的領域理解。