User Stories 目錄
本目錄包含所有 User Story 層級的詳細文檔,按 Epic 分組。
什麼是 User Story?
User Story 是從用戶視角描述的功能需求,遵循 INVEST 原則:
- Independent: 獨立的(盡量減少依賴)
- Negotiable: 可協商的(非合約,可調整)
- Valuable: 有價值的(對用戶有明確價值)
- Estimable: 可估算的(團隊能估算工作量)
- Small: 小的(1-2 個 Sprint 內可完成)
- Testable: 可測試的(有明確驗收標準)
User Stories 索引
Epic 0: 平台基礎設施
(尚無 User Stories)
Epic 1: 產品與作品集管理
(尚無 User Stories)
Epic 2: 端到端訂單生命週期管理
核心流程
- US-201: 創建訂單 ✅ 已完成
- US-202: 訂單狀態流轉 ✅ 已完成
- US-203: 搜尋與過濾訂單 ✅ 已完成
角色工作台
- US-204: 店員工作台 🟢 進行中
- 確認待處理訂單 (
pending_confirmation→confirmed)
- 確認待處理訂單 (
- US-205: 設計師工作台 🟢 進行中
- 設計與上傳作品照片 (
confirmed→in_production→ready_for_delivery)
- 設計與上傳作品照片 (
- US-206: 配送員工作台 🟢 進行中
- 配送與簽收 (
ready_for_delivery→out_for_delivery→delivered)
- 配送與簽收 (
Epic 3: 客戶與企業帳戶系統
(尚無 User Stories)
Epic 4: 進階發票與支付管理
(尚無 User Stories)
Epic 5: 數位資產與簽收工作流程
(尚無 User Stories)
User Story 文檔模板
創建新的 User Story 文檔時,請使用以下模板:
# US-XXX: {User Story 標題}
## User Story
**作為** {角色}
**我想要** {功能}
**以便** {業務價值}
## 驗收標準 (Acceptance Criteria)
使用 Given-When-Then 格式描述主要場景:
### Scenario 1: {場景名稱}
- **Given** {前置條件}
- **When** {執行操作}
- **Then** {預期結果}
- **And** {額外的預期結果}
### Scenario 2: {場景名稱}
- **Given** {前置條件}
- **When** {執行操作}
- **Then** {預期結果}
(列出 2-5 個主要場景)
## 業務規則 (Business Rules)
(重要的業務邏輯與限制條件)
1. 規則 1
2. 規則 2
3. ...
## UI/UX 需求 (UI/UX Requirements)
(介面設計要點)
- 介面元素描述
- 互動行為說明
- 錯誤訊息顯示
- 響應式設計要求
## 技術規格 (Technical Specifications)
### API 端點
- 端點: `POST /api/v1/{resource}`
- 權限要求: `ROLE_XXX`
- 多租戶隔離: 自動附加 `tenant_id`
### 數據模型
- 主要 Entity: `ResourceName`
- 關聯 Entity: `RelatedResource`
### 前端組件
- 使用框架組件: `@appfuse/appfuse-web` 的 XXX 組件
- 自定義組件: 位於 `src/components/XXX`
## SBE 場景 (Specification by Example)
(鏈接到 ../../sbe/epic-N/US-XXX/ 目錄的詳細場景)
- [Scenario 1: 場景名稱](../../sbe/epic-N/US-XXX/scenario-1-description.md)
- [Scenario 2: 場景名稱](../../sbe/epic-N/US-XXX/scenario-2-description.md)
- ...
## 估算 (Estimation)
- **Story Points**: X 點
- **預估工時**: X 天
- **複雜度**: 低 / 中 / 高
## 依賴 (Dependencies)
(依賴其他 User Stories 或外部系統)
- **前置條件**: US-XXX 必須先完成
- **並行開發**: 可與 US-XXX 同時進行
- **外部依賴**: 需要 XXX API 或服務
## 測試策略 (Testing Strategy)
### 單元測試
- 測試 XXX 邏輯
- 測試 YYY 計算
### 整合測試
- 測試 API 端點響應
- 測試數據庫操作
### E2E 測試
- 測試完整的用戶流程
## 完成定義 (Definition of Done)
- [ ] 代碼實作完成並通過 Code Review
- [ ] 單元測試覆蓋率 > 80%
- [ ] 整合測試通過
- [ ] E2E 測試通過(關鍵流程)
- [ ] API 文檔已更新
- [ ] UI 符合設計規範
- [ ] 多租戶隔離驗證通過
- [ ] 產品經理驗收通過
## 備註 (Notes)
(其他重要資訊或討論記錄)
命名規範
User Story ID
- 格式:
US-{Epic編號}{流水號} - 範例:
US-201(Epic 2 的第 1 個 User Story) - Epic 編號使用十位數(0, 1, 2, 3, 4, 5)
- 流水號使用兩位數(01-99)
檔案名稱
- 格式:
US-{ID}-{kebab-case-描述}.md - 範例:
US-201-create-order.md
目錄結構
user-stories/
├── epic-0/
│ ├── US-001-user-login.md
│ └── US-002-role-based-access.md
├── epic-2/
│ ├── US-201-create-order.md
│ └── US-202-order-state-transition.md
└── ...
撰寫指南
1. User Story 格式
遵循標準的 "As a... I want... So that..." 格式:
✅ 好的範例:
作為 店員
我想要 能夠為客戶創建訂單
以便 記錄客戶的購買需求並啟動訂單處理流程
❌ 不好的範例:
實作訂單創建功能
2. 驗收標準 - Given-When-Then
使用 Gherkin 風格的 Given-When-Then 格式:
✅ 好的範例:
Given 我是已登入的店員
When 我選擇現有客戶並添加商品到訂單
And 我填寫配送地址與期望配送日期
And 我點擊「創建訂單」
Then 系統應創建訂單並自動分配訂單編號
And 訂單狀態應為「待確認」
And 我應看到訂單創建成功的通知
❌ 不好的範例:
訂單創建後應該成功
3. 業務規則要明確
- 列出所有重要的業務邏輯
- 包含驗證規則
- 說明異常處理規則
4. 技術規格要完整
- 明確列出 API 端點
- 說明權限要求
- 描述數據模型關聯
5. SBE 提供具體範例
- 每個 Scenario 都應有對應的 SBE 文檔
- SBE 包含完整的請求/響應範例
- SBE 包含邊界條件測試
Three Amigos 協作
User Story 應由三方協作完成:
-
產品經理 (Product Owner)
- 定義 User Story 與業務價值
- 撰寫驗收標準
- 明確業務規則
-
開發人員 (Developer)
- 補充技術規格
- 識別技術依賴
- 估算工作量
-
測試人員 (QA)
- 完善 SBE 場景
- 定義測試策略
- 確認完成定義
審查檢查清單
提交 User Story 文檔前,請確認:
- User Story 遵循 "As a... I want... So that..." 格式
- 驗收標準使用 Given-When-Then 格式
- 至少包含 2 個主要場景
- 業務規則明確且完整
- 技術規格包含 API、權限、數據模型
- SBE 場景已建立並正確鏈接
- Story Points 已估算
- 依賴關係已明確
- 完成定義已列出
- 遵循 INVEST 原則
- Markdown 鏈接正確無誤
參考資源
- User Story Mapping - Jeff Patton
- INVEST in Good Stories - Bill Wake
- Gherkin Syntax
最後更新: 2025-12-19