需求分析與規格

從模糊的「我想要一個功能」,走到可以開發與驗收的工作定義

從模糊的「我想要一個功能」,走到可以開發與驗收的工作定義

需求從哪裡來?

  • 使用者遇到的問題與工作流程
  • 業務目標、法規、政策或組織要求
  • 舊系統的限制、缺陷與技術債
  • 上線後的數據、事故與客服回饋
  • 外部服務、資料格式或標準的變更

先區分問題、解法與需求

層次 問法
問題 現在誰在什麼情境下受到什麼影響?
目標 改善後希望出現什麼結果?
解法 可以用哪些方式達成?
需求 系統必須具備哪些行為與限制?

不要一聽到解法,就跳過真正的問題。


Stakeholder 與需求訪談

  • 誰使用、誰付費、誰維運、誰承擔風險?
  • 現在的流程怎麼做?哪裡最常失敗?
  • 哪些是明講的需求,哪些是隱藏規則?
  • 不同角色的目標是否互相衝突?
  • 哪些說法需要用資料或現場操作查證?

User Story 與 Use Case

User Story:
身為__,我希望__,以便__。

Use Case:
前置條件 → 主要流程 → 替代流程 → 例外流程 → 後置狀態

Story 表達價值;Use Case 展開互動與例外。


功能需求與非功能需求

Functional Requirement Non-functional Requirement
系統要做什麼 系統要做到什麼程度
查詢、修改、通知、匯出 效能、可用性、安全、相容性
可以用操作結果驗證 通常需要明確指標與條件

Domain Knowledge 與共同語言

  • 定義領域名詞,避免同一個字各自解讀
  • 找出 entity、value、event、rule 與狀態
  • 把公式、規範、資料來源與例外正式記錄
  • 確認哪些規則是法律要求、組織慣例或暫時做法
  • 建立 glossary,讓文件、Code 與畫面使用一致名稱

Acceptance Criteria:怎樣算完成?

Given  已知的前置狀態
When   使用者或系統執行某個行為
Then   應該觀察到的結果

要包含正常、邊界、錯誤、權限與資料狀態。


Scope、Constraint 與 Assumption

  • In scope:這一輪確定要完成什麼
  • Out of scope:刻意不處理什麼
  • Constraint:時間、預算、技術、法規、環境限制
  • Assumption:目前尚未證實但先依賴的條件
  • Dependency:需要等待的團隊、資料或外部系統

Backlog 與優先順序

  • Epic → feature → story → task
  • 用價值、風險、成本與相依性排序
  • 定義 Definition of Ready 與 Definition of Done
  • 保留尚未決定的問題,不假裝規格已經完整
  • 每次迭代重新檢查優先順序

需求變更不是例外

提出變更 → 說明原因 → 分析影響範圍
        → 更新規格與驗收 → 調整優先順序
        → 實作、測試、發布 → 留下紀錄

關鍵字:change request、impact analysis、traceability。

一個需求進入開發前的產物

  • 問題與目標敘述
  • Stakeholder 與使用情境
  • 流程、story、use case 與 domain glossary
  • Functional/non-functional requirements
  • Acceptance criteria、scope、constraint、assumption
  • Backlog item、優先順序與 owner

看到 Agent 整理需求時

要能辨認它是在補 story、use case、NFR,
還是在改變 scope、assumption 或 acceptance criteria。

文件可以代寫,需求決策不能無人負責