---
# System prepended metadata

title: '[Video Note] [Project Management] [User Story] 使用者故事對照 (User Story Mapping)'
tags: [Project Management, User Story, Video Note]

---

# 缺乏整體性故事的問題：
![CleanShot 2024-01-25 at 11.59.10](https://hackmd.io/_uploads/H1g22UJcT.png)

- 團隊需求分析中可能存在理解差異，導致缺乏整體性故事。
- User Story Mapping 方法解決此問題，由 Jeff Patton 於 2014 年提出，用於協同收集、發掘使用者故事，並整理系統需求。

# 什麼事使用者故事對照（User Story Mapping）?
![CleanShot 2024-01-25 at 12.00.18](https://hackmd.io/_uploads/Sk8JaLy9T.png)

- 視覺化方法，將高階目標（Epic）到低階任務（Task）呈現在故事地圖上，有助於團隊理解系統需求的整體結構。
- 團隊可使用 Think、Write、Explain、Place 的步驟來協作，思考、撰寫、解釋並安排故事的位置。

# 故事地圖範例：
![CleanShot 2024-01-25 at 12.00.47](https://hackmd.io/_uploads/rJF-p8k5T.png)

- 故事地圖以卡片呈現，最高層為 Epic，代表整體目標。下面的 Task 和 Step 表示對高階目標的具體拆解。
- Subtask 和 Substep 進一步細分，呈現故事的層次結構，有助於理解故事的大小和優先順序。

# 使用者故事對照核心理念：
![CleanShot 2024-01-25 at 12.01.26](https://hackmd.io/_uploads/rJvvpL15a.png)
Goals/epics
User Styeps
Uesr Stories
Release

![CleanShot 2024-01-25 at 12.03.20](https://hackmd.io/_uploads/rkuipL196.png)

![CleanShot 2024-01-25 at 12.06.56](https://hackmd.io/_uploads/HkrORIyqT.png)

- 團隊應該思考故事的存在必要性，針對目標使用者思考使用好處，並在地圖上呈現故事的敘述順序和分解層次。
- 故事地圖上的左右敘事順序和上下分解層次可協助團隊更清晰地理解和規劃系統需求。

# 使用者故事拆解案例：
![CleanShot 2024-01-25 at 12.07.56](https://hackmd.io/_uploads/Hy-nRUJca.png)
![CleanShot 2024-01-25 at 12.08.19](https://hackmd.io/_uploads/H1p6RI1c6.png)
![CleanShot 2024-01-25 at 12.08.39](https://hackmd.io/_uploads/HJlyJDJ56.png)

- 以 Mad Mini 音樂宣傳平台為例，將宣傳展出活動這一高階目標拆解成多個步驟或任務，形成層次結構。
- 每個步驟再細分成多個子任務，如上傳圖片、上傳聲音檔等，並透過 user story 的撰寫方式連結和拓展每個子任務。

# 故事對照：骨幹與主體
![CleanShot 2024-01-25 at 12.09.56](https://hackmd.io/_uploads/HypQyDJqT.png)

- 提到故事對照的概念，分為三層：目標(epic)、任務(task或step)、子任務(subtask或story)。
- 引入"骨幹"或"Backbone"概念，即整個系統的主要功能，作為目標和步驟的骨架。
- 使用 Story Map 的方式整體性地分析整個系統的功能樣貌，以便團隊成員共同理解和規劃。

# 故事對照：敘事流
![CleanShot 2024-01-25 at 13.55.37](https://hackmd.io/_uploads/Skb-_Okq6.png)
- 敘事流有兩個面向：由左至右和由上至下。
- 由左至右表示敘事流，是系統中的大致順序，有助於清晰地表達故事。
- 故事可能涉及多種使用者，開始時可能需要管理者進行前置處理，然後其他使用者才能參與並進行後續操作。
- 故事流也可能跨越不同類型的使用者、子系統，甚至整個系統，以共同完成一個整體性的故事。

# 故事對照：檢視漏洞
![CleanShot 2024-01-25 at 13.55.13](https://hackmd.io/_uploads/BJcCDOyqp.png)

- 強調除了一般操作流程外，需要思考分支和例外情況，進行 "What about" 的遊戲。
- 透過思考錯誤、使用者未完成任務、不同使用者的操作結果等，使故事更完善，增強對系統需求的理解。

# 故事對照：釋出版本路線圖
![CleanShot 2024-01-25 at 13.56.26](https://hackmd.io/_uploads/ByPXddJqT.png)
![CleanShot 2024-01-25 at 14.01.42](https://hackmd.io/_uploads/BytuF_15p.png)

- 探討敘事流的左至右和上至下兩個面向，提到釋出版本路線圖主要在做優先序的設定。
- 介紹 "MVP" (最小可行產品) 概念，即第一個釋出版本，具備系統的核心功能，用於與使用者和客戶討論、獲得回饋。
- 強調版本釋出的規劃應該考慮哪些功能需要先完成，哪些可以稍後進行，並著重於核心功能的完成和改進。

# 漸增與迭代式開發
![CleanShot 2024-01-25 at 14.02.40](https://hackmd.io/_uploads/H1ljKdk96.png)
- 提到以樂高積木為比喻，探討單純的漸增開發模式可能在不同片段的銜接上不順利。
- 建議結合反覆和漸增的概念，採用迭代式的開發方式，分階段完成核心功能，再進行功能的累加與改進。
- 以畫畫的例子比喻，先完成地圖和素描，再進行底色、著色和裝飾，最終完成整個畫作，呼應軟體開發中的功能逐步完善的過程。

# 小結
![CleanShot 2024-01-25 at 14.04.49](https://hackmd.io/_uploads/Hyafcukqp.png)


# 關鍵字
- User Story Mapping（使用者故事對照）：由 Jeff Patton 提出的一種視覺化方法，用於協同收集和發掘使用者故事，以解決需求分析中缺乏整體性故事的問題。
- Epic（高階目標）：故事地圖中最高層的目標，代表整體性的、高階的使用者故事。
- Task 和 Step（任務和步驟）：在故事地圖中，Epic 下的層級，表示對高階目標的具體拆解。
- Subtask 和 Substep（子任務和子步驟）：在 Task 或 Step 下的更細緻層次，進一步拆解為可以實際實作的、具體的 user story。
- Think、Write、Explain、Place（思考、撰寫、解釋、安排）：制訂故事地圖的四個步驟，團隊成員透過思考、撰寫、解釋和安排卡片位置，共同建立共識。
- Mad Mini 音樂宣傳平台（案例）：在文章中提到的一個使用者故事地圖的案例，用以說明如何從高階目標拆解成具體的任務和步驟。
- Story Map: 整體性地分析系統功能樣貌的方法，將目標、任務、子任務以地圖形式呈現，有助於團隊成員理解和規劃。
- Backbone (骨幹): 整個系統的主要功能，用以分析和理解系統的主要結構。
- MVP (Minimal Viable Product): 最小可行產品，是第一個釋出版本，具備系統的核心功能，用於與使用者和客戶討論、獲得回饋。
- 迭代式開發: 以分階段的方式完成核心功能，然後進行功能的累加和改進，是一種反覆的開發方法。
- 漸增開發: 逐步完成系統的不同片段或模組，最終組合成完整的系統，類似於樂高積木的概念。
- 版本釋出路線圖: 針對系統功能進行優先序的設定，規劃哪些功能需要先完成，哪些可以稍後進行，以確保核心功能的優先完成。