如何对一个产品编写完整的用户故事?
用戶故事是敏捷項目管理的核心實踐之一,除了定義、表達“公式”,本文將給大家分享用戶故事的價值,比如用戶故事在非技術(shù)的角度告知研發(fā)團隊需求背景是什么,讓研發(fā)團隊更輕松的了解用戶需求場景、目的、功能預(yù)期和實現(xiàn)價值。
用戶故事從終端用戶的角度概述他們想要實現(xiàn)的功能,其目的是為了闡明這個功能要給客戶提供的價值。
我們很容易把用戶故事簡單地認為是軟件需求,但它并不等同于軟件需求。 敏捷開發(fā)的一個核心理念是以人為本,而用戶故事正是以用戶為中心的。用戶故事站在非技術(shù)的角度告知研發(fā)團隊需求背景是什么,讓研發(fā)團隊更輕松的了解用戶需求場景、目的、功能預(yù)期和實現(xiàn)價值。
用戶故事是敏捷項目管理的核心實踐之一,它可以幫助研發(fā)團隊在日常工作中培養(yǎng)以用戶為中心的意識,提高團隊協(xié)作性和創(chuàng)造性,從而打造出更好的產(chǎn)品。
一、什么是敏捷用戶故事
用戶故事是敏捷開發(fā)中最小的工作單元,它代指的不僅僅是一個功能,而是從用戶角度闡述的一個產(chǎn)品目標。它站在用戶的角度以通俗易懂的方式描述了軟件功能。
用戶故事的目的是闡明一個軟件功能要傳達給客戶的特定價值。需要注意的是,“客戶”不一定是外部用戶,他們還可以是公司內(nèi)部員工。
在經(jīng)過團隊評審達成一致之前,用戶故事通常是簡單的幾句話,概述了用戶需求的預(yù)期結(jié)果。一旦研發(fā)團隊把用戶故事加入排期之后,就會補充該用戶故事相關(guān)的需求。
用戶故事非常適合敏捷方法,比如 Scrum 和 Kanban 。在 Scrum 敏捷項目中,用戶故事會被添加到迭代(Sprint)中,并在迭代中實現(xiàn)。而在 Kanban 中,用戶故事會被放入看板的待辦欄中,并隨著 Kanban 團隊工作流進行流動、完成。
用戶故事的工作模式可以幫助 Scrum 團隊更好地進行工作量評估并完成迭代計劃,提高團隊目標預(yù)估的準確性和團隊工作的敏捷度。而在 kanban 模式下,則可以幫助團隊了解怎樣管理在制品,并進一步完善工作流程。
用戶故事也是更大的敏捷框架(史詩和特性)的組成單元。特性是由多個用戶故事組成的功能模塊,而多個特性構(gòu)成了史詩。這些更大的框架有助于確保研發(fā)團日常工作是朝著正常的目標前進。
?
二、用戶故事能帶來哪些優(yōu)勢
對于剛接觸敏捷的開發(fā)團隊來說,用戶故事有時似乎是一個額外的步驟:為什么不直接將項目級工作(史詩)分解為一系列步驟來執(zhí)行呢?這是因為用戶故事可以為團隊提供了重要的背景,并將任務(wù)與這些任務(wù)帶來的價值聯(lián)系起來。
用戶故事具有許多優(yōu)勢:
用戶故事以用戶為中心:待辦任務(wù)列表讓團隊專注于需要完成的任務(wù),但用戶故事可以讓團隊專注于用戶真正想解決的問題;
用戶故事促進團隊協(xié)作:定義最終目標后,團隊可以共同決定如何最好地為用戶提供服務(wù)并實現(xiàn)該目標;
用戶故事讓解決方案更具創(chuàng)新性:用戶故事鼓勵團隊批判性和創(chuàng)造性地思考如何最好地實現(xiàn)最終目標。
用戶故事讓團隊更有動力: 每完成一個用戶故事,開發(fā)團隊都會享受到攻克一個小挑戰(zhàn)帶來的勝利,從而更有動力。
三、如何使用用戶故事
用戶故事一般由產(chǎn)品負責人(Product Owner)、產(chǎn)品經(jīng)理或項目經(jīng)理撰寫和審核,撰寫完成后將進入團隊的研發(fā)流程當中。
在迭代前期或迭代計劃會議期間,團隊要確定本次迭代要完成哪些用戶故事,并討論每個用戶故事場景下的需求和功能。團隊在為每個用戶故事構(gòu)建解決方案過程中將激發(fā)成員的創(chuàng)意以及學(xué)習(xí)到其他技術(shù)。當研發(fā)團隊對用戶故事的實現(xiàn)方案達成一致,就會在用戶故事中補充功能實現(xiàn)相關(guān)的需求描述。
迭代計劃會議的另一個常見事項是根據(jù)用戶故事的復(fù)雜度或完成時間進行工作量評估。研發(fā)團隊一般使用 T 恤尺寸、斐波那契數(shù)列或規(guī)劃撲克牌的方法來估算合適的故事點。用戶故事應(yīng)該被分解成能在一個迭代中完成的大小,因此當團隊估算每個故事時,他們要確保分解將超過該完成范圍的故事。
四、如何編寫用戶故事
在編寫用戶故事時需要考慮以下幾點:
-
“完成”的定義——當概述完一個用戶故事后,一定要定義其完成的標準是什么。
-
概述子任務(wù)或任務(wù)——確定需要完成哪些特定步驟以及每個步驟的負責人。
-
用戶角色——用戶是誰?如果有多個用戶,則需要考慮編寫多個用戶故事。
-
有序步驟——給大規(guī)模流程的每一個步驟寫用戶故事。
-
傾聽用戶聲音——與您的用戶交談并從他們的角度來描述問題和需求。當能夠從客戶那里獲取用戶故事時,就不用猜測客戶需求了。
-
時間——時間是一個敏感的話題。許多研發(fā)團隊在評估時會忽略用戶故事的實際完成時間,只依靠過往的估算經(jīng)驗來評估。用戶故事應(yīng)當在一個迭代中完成,因此應(yīng)該把那些數(shù)周或數(shù)月才能完成的用戶故事拆分成更小的用戶故事,或者應(yīng)該把它們上升為特性層級。
一旦明確定義了用戶故事,請確保團隊所有人都能看到它們的進度。
五、用戶故事模板和示例
用戶故事通常用一個簡單的句子來表達,結(jié)構(gòu)如下:
“作為一個[XX角色],我[想要什么],[以便達到什么目的]。”
結(jié)構(gòu)分解如下:
-
“作為[XX角色]”:我們是為誰實現(xiàn)這個需求?我們不僅要知道用戶的職稱,還要了解用戶角色的特點。研發(fā)團隊應(yīng)該對用戶角色有一個共同的理解。團隊應(yīng)該盡可能多地采訪目標用戶,了解他們的工作方式、想法和使用感受,對用戶要有同理心。
-
“想要什么”:這里我們描述的是用戶的意圖——而不是他們想使用的功能。用戶本質(zhì)上想達到什么目的?這個描述不用體現(xiàn)功能的實現(xiàn)——如果你描述的是軟件功能而不是用戶目標,就沒有抓住重點了。
-
“以便達到什么目的”:用戶期望做的這件事符合他們的規(guī)劃嗎?他們想實現(xiàn)的整體效果是什么?需要解決的本質(zhì)問題是什么?
例如,用戶故事的結(jié)構(gòu)可以參考下方:
-
作為小凱,我想邀請我的朋友,以便一起體驗這項服務(wù)。
-
作為老王,我想整理我的所有工作,以便我對工作更有掌控感。
-
作為項目經(jīng)理,我希望能夠了解項目成員的工作進展,以便更好地匯報我們的成果和不足。
這些表達不是固定的,但是有助于定義用戶故事的完成標準。當用戶可以精準表達他想要實現(xiàn)的價值時,一個用戶故事就誕生了。我們鼓勵研發(fā)團隊根據(jù)自身情況規(guī)范用戶故事的表達結(jié)構(gòu)并在工作中堅持實踐。
六、敏捷用戶故事入門
用戶故事解釋了開發(fā)團隊成員日常工作的目的和內(nèi)容,表達結(jié)構(gòu)通常為“角色 + 需求 + 目的”。讓團隊了解他們交付內(nèi)容的來源用戶及其真實目的,可以很大程度上促進研發(fā)流程的進展。
可以從下次評估大規(guī)模的特性項目(Feature)開始,嘗試把特性拆分為一個個具體的用戶故事,由研發(fā)團隊共同協(xié)作優(yōu)化。當把用戶故事同步給團隊所有成員后,研發(fā)團隊就可以開始工作了。
這里推薦使用 PingCode 研發(fā)管理工具,內(nèi)置標準的用戶故事工作模板,更支持特性、史詩、缺陷、任務(wù)等各種工作類型,幫助您的團隊快速開啟敏捷研發(fā)。
延伸閱讀:
Scrum 開發(fā)指南:?Scrum 框架詳解? | ?Scrum 四個會議及正確召開方式?| ?正確的計劃和執(zhí)行Sprint的方式?| ?做好迭代計劃的4大關(guān)鍵點?| ?做好這4點讓每日站會更適配敏捷團隊? | ?開好迭代評審會的3個關(guān)鍵步驟? | ?為什么要召開迭代回顧會? |?Scrum 3大角色及其崗位的具體職責? | ?Scrum三大工件在敏捷開發(fā)中的作用? | ?2022年14個最佳 Scrum 敏捷項目管理軟件? | ?更多?
Kanban 敏捷指南:?使用看板(Kanban)管理方法的5大好處? | ?看板 VS Scrum:如何選擇??| ?看板和 Scrum 的混合模式適合在哪些場景使用? | ?更多?
規(guī)?;艚?#xff1a;?規(guī)模化敏捷的價值及五大規(guī)模化敏捷框架? | ?規(guī)?;艚葜?Spotify 模型? | ?規(guī)模化敏捷框架之LeSS框架? | ?SAFe 規(guī)模化敏捷框架? | ?Scrum@Scale 模型? | ?敏捷項目組合管理? | ?OKR與敏捷開發(fā)? |?更多?
?
總結(jié)
以上是生活随笔為你收集整理的如何对一个产品编写完整的用户故事?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【BZOJ - 2144】跳跳棋
- 下一篇: 前端学习日志之复刻百度新闻百家号专栏