User Story Mapping

User Story Mapping

2022/02/26 (新增連結)

簡介

Jeff Patton (2013, 2014)提出User Story Mapping的概念,User Story Mapping包括兩個概念,第一個概念是User Story Map,第二個概念是應用User Story Map在敏捷的流程 (Mapping)。

Patton(2014)的User Story Mapping包括

  • User Story Map

    • 將User Story以Map的方式整理

      • User

        • 可以是一個、可以是多個(共用同一個Activity)、可以是系統

      • User Activity

        • User Task

          • User Story

  • 產生User Story Map的過程 (Mapping)

    • 從概念到交付的過程

      • Opportunity

      • Discovery

      • Delivery

      • Validate

      • Release

  • 應用User Story Map在敏捷的流程 (Mapping)

    • 構思問題 (Frame)

    • 描繪及對照整體圖像 (Map the Big Picture)

    • 探索 (Explore)

    • 分割出釋出策略 (Slice Out Viable Releases)

    • 分割出學習策略

      • 建造、量測(驗證/validate)、學習

    • 分割出開發策略 (Slice Out a Development Strategy)

      • 每個release再分三個交付階段

User Story Mapping.pptx

2021/10/26 (更新內容)

  • 構思問題

  • 描繪及對照整體圖像

  • 產生user story

  • 整理user story

  • 切割功能

User Story Map

有時候的需求內容是相對的較大的,有些人(如: Mike Cohn)會把較大的故事稱為史詩(Epic),通常這些Epic很大沒辦法排進一個Sprint,所以,這樣的需求被排進Sprint時,就必須被拆解為更小的故事(Story)(詳參: Story Splitting Cheat Sheet)。

Beck (1999) 也提到了類似的觀念,認為每個Story可以包括很多個Task,不過,有點不同的是,這裡的Task包括技術性的任務,如:更新資料庫。Beck & Andres (2004)則更進一步將需求區分為Theme、Story、Task,每個Theme可以包括很多個Story,每個Story可以包括很多個Task。Theme的概念大概就跟Epic很像,是由很多story組成,每個Story的規模則是不超過一個iteration,大概是一兩週以內的工作量,每個Task的規模則是幾天左右的工作量。

  • 5 letters for better User Story splitting: The S.P.I.D.R acronym for User Story splitting recharged (++)

    • Spike

      • some user stories need a bit of technical research before being considered ready for development. Its output might help for better splitting the user story or it can reassure the way it was already split.

    • Paths

      • a single story can have many paths -flowcharts and activity diagrams are drawn to represent these paths. Each branch of the diagram might represent a new user story.

    • Interfaces

      • a single UI can have many functionalities in it or even the styling can iterate it.

    • Data

      • what if the feature supports different types of data, or if some data should not be supported -in this sense a user story can be split by data type.

    • Rules

      • business rules that might be identified for a feature

    • ++

      • refers to technical stack that can affect a software feature, it can go from technical standards to technical rules to technical limitations to different technologies

Jeff Patton(2013, 2014)將這樣的概念稱為User Story Map(詳參: User Story MappingStory Mapping Quick ReferenceUser Story Quick Reference),把不同程度的User Story做一個對應關係 (詳參: 使用者故事對照),Jeff Patton把Epic又分為User Activity(較大) 及 User Task (較小),最小的就稱為User Story。在規劃release時,雖然,會直覺的認為同一個User Task下的User Story應該排在同一個release,但是,不是如此,應該要以每個release的目標來安排。

  • Forget the WBS — in Agile, You Need a VBS (Value Breakdown Structure)

    • Initiative — (sometimes called a Roadmap) a collection of Epics that drive toward a common goal

    • Epic — (sometimes called a Feature) a large body of work that can be broken down into a number of smaller items (called Stories or Tasks).

    • Story or Task — Stories (often called User Stories) capture functional requirements that are valuable from a user perspective, while Tasks capture anything that can be of value to the team working on them. (** 只分兩層,跟Patten的說法不太一樣)

例如:

  • 訂貨 (user activity)

    • 尋找產品 (user task)

      • 依類別尋找產品 (user story)

      • 依關鍵字尋找產品 (user story)

      • 推薦商品 (user story)

    • 看產品資訊 (user task)

      • 看產品詳細資訊 (user story)

      • 比較產品 (user story)

    • 加入購物車 (user task)

      • 加入購物車 (user story)

    • 註冊 (user task)

      • 一般註冊 (user story)

      • 以facebook帳號註冊 (user story)

      • 以google帳號註冊 (user story)

    • 登入 (user task)

      • 一般登入 (user story)

      • 以facebook帳號登入(user story)

      • 以google帳號登入 (user story)

    • 下訂單 (user task)

      • 下訂單 (user story)

      • 帶入使用者資料並下訂單 (user story)

User Story Mapping

Patton(2014)的User Story Mapping包括

  • 應用User Story Map在敏捷的流程 (Mapping)

    • 構思問題 (Frame)

    • 描繪及對照整體圖像 (Map the Big Picture)

    • 探索 (Explore)

    • 分割出釋出策略 (Slice Out Viable Releases)

      • 尋找較小的可行釋出版本

      • 尋找的方法

        • 差異化因子

          • 讓產品有別於競爭對手的功能

        • 破壞者

          • 對抗他人差異化因子的功能

        • 成本減少者

          • 減少組織成本因子的功能

        • 入場籌碼

          • 在市場上競爭的必要功能

    • 分割出學習策略

      • 從學習觀點看釋出策略,驗證我們的想法並從中學習

      • 甚麼是學習策略

        • 從討論你的機會開始

        • 驗證問題

        • 製作原型以學習

        • 注意人們說他們想要什麼

        • 建造以學習

        • 反覆進行直到可行

      • 三步驟

        • 建造

          • 進行最小可行產品實驗

        • 量測

          • 產生主觀與客觀的資料

        • 學習

          • 產生更好的想法

    • 分割出開發策略 (Slice Out a Development Strategy)

      • 每個釋出(release)再分割為三個以上的交付階段

        • 開局 (Opening Game) builds a “functional walking skeleton”

        • 中局 (Mid Game) complete all major functionality

        • 終局 (End Game) refines the product

參考資料

工具


User Story Mapping_2013.pptx
User Story Mapping - BOOK_2014.pptx