上兩篇闡釋了Why:為什么使用戶故事,而不是詳盡的文檔?
What雨女、How谚攒、Who:什么是用戶故事,怎么寫戚篙,誰來寫五鲫,誰使用?
這一篇闡釋When岔擂,在Scrum流程的各個環(huán)節(jié)如何使用用戶故事:
When:什么時機位喂,如何使用用戶故事?
終于來到敏捷的流程上乱灵。
用戶故事幾乎是貫穿于整個敏捷開發(fā)流程塑崖。在每個環(huán)節(jié)都有其重要做用。任何一個環(huán)節(jié)如果沒有很好的執(zhí)行和使用痛倚,就難以發(fā)揮用戶故事的作用规婆,造成團隊轉(zhuǎn)而對詳盡的文檔的再度依賴。
用戶故事與敏捷方法在流程中的應用
用Scrum為例子蝉稳,Scrum的5大活動:
-- Sprint計劃會議(Sprint Planning Meeting)
-- 每日站會(Daily Scrum Meeting)
--?Sprint評審會議(Sprint Review Meeting)
--?Sprint回顧會議(Sprint Retrospective Meeting)
--?產(chǎn)品Backlog梳理會議( Product Backlog Refinement)
要用好用戶故事抒蚜,需要進行如下活動:
1、用戶故事估算
2耘戚、優(yōu)先級排序
3嗡髓、用戶故事拆分
4、任務拆分和估算(與用戶故事估算區(qū)分)
5收津、發(fā)布計劃
6饿这、迭代計劃
7、測量和監(jiān)控速率
用戶故事估算:
Why為什么要進行用戶故事估算撞秋?
作用一:客戶團隊參考用于排優(yōu)先級长捧。比如:一個業(yè)務價值高的故事估算出來要4周完成,1個或者多個業(yè)務價值中等的用戶故事只需要1天就可以完成吻贿〈幔客戶團隊可能會將業(yè)務價值中等的這個故事排出更高的優(yōu)先級,先做舅列。
作用二:為后續(xù)的發(fā)布計劃提供必要的數(shù)據(jù)參考奉芦,以便得出發(fā)布周期和范圍,允許±2個迭代的誤差剧蹂。
作用三:(附加作用)此過程讓團隊充分溝通,客戶團隊和開發(fā)團隊達成共識烦却,需求的討論存在于大家共同的腦海里宠叼。
What什么是用戶故事估算?
粗粒度的用戶故事,還沒有排入迭代的產(chǎn)品特性或者已拆分的獨立故事冒冬。團隊共同預估和猜測這個用戶故事的大小伸蚯,以粗略估計其工作量。
How如何進行用戶故事估算简烤?
撲克牌
經(jīng)驗(猜測)剂邮、理想周、小于一個理想周的工作量用斐波那契數(shù)列計算(1横侦、2挥萌、3、5枉侧、8引瀑、13、21榨馁、34憨栽、55、89)以團隊7人為例翼虫。
Who誰來進行用戶故事估算屑柔?
理論上是團隊共同決定,開發(fā)人員參加的越多越好≌浣#現(xiàn)實中掸宛,團隊重要人員參與,根據(jù)實際情況次慢。
1旁涤、客戶團隊:不能主動對估點發(fā)表意見,不參與估點迫像。只能盡其所能的回答開發(fā)團隊的問題(不知道答案劈愚,先猜猜看)。
2闻妓、開發(fā)團隊:盡可能多的問問題菌羽。通過撲克牌進行估點,經(jīng)過幾輪(一般不超過3論)討論由缆,最終達成一致注祖。
When什么時候進行用戶故事估算,多久一次均唉?
產(chǎn)品Backlog梳理會議是晨。根據(jù)發(fā)布頻率決定,比如三個月一次發(fā)布舔箭,每三個月進行一次用戶故事估算罩缴。舉例蚊逢,如果三個月一次發(fā)布,每次發(fā)布之間留一個星期進行產(chǎn)品Backlog梳理箫章,這個期間是最好的進行下一次發(fā)布用戶故事估算的時間烙荷。
失敗因素:
1、客戶團隊和開發(fā)團隊關系不融洽檬寂。
2终抽、客戶團隊和開發(fā)團隊任何一方都太過于強勢,無法平等溝通桶至。
3昼伴、存在不平等的關系,造成并非每個人都參與其中塞茅,存在一部分人只是看重要人物的決定而跟風亩码。
任務拆分和任務估算:
Why為什么要進行拆分和估算?
1野瘦、拆分便于多人共同協(xié)作于一個用戶故事描沟。
2、估算便于合理安排一個迭代可完成的任務量鞭光。
What什么是任務拆分和估算吏廉?
按照優(yōu)先級排列,準備放入當前迭代的用戶故事惰许,進行任務拆分席覆,便于團隊共同協(xié)作于一個用戶故事。并由任務完成者對這個任務進行工作量的預估汹买。
How如何進行任務拆分和估算佩伤?
拆分可以根據(jù)開發(fā)團隊的特定技術專長來進行。比如:一個用戶故事需要后端開發(fā)晦毙,前端開發(fā)生巡,測試,就可以拆分為三個任務卡见妒。
拆分可以根據(jù)任務的邏輯流程的先后順序來進行孤荣。比如:一個用戶故事需要先新增一條數(shù)據(jù),然后對數(shù)據(jù)進行讀取须揣、計算并修改數(shù)據(jù)盐股,最后刪除數(shù)據(jù),可以拆分為三個任務卡耻卡。
用理想天的方式進行估算疯汁。
Who誰來進行任務拆分和估算?
團隊一起決定用何種方式拆分卵酪,由任務完成者主力進行該任務的估算涛目。
When什么時候進行任務拆分和估算秸谢?
迭代計劃會議的時候
失敗因素:
過于糾纏于細節(jié)
優(yōu)先級排序:
Why為什么要進行優(yōu)先級排序?
為了計劃一個發(fā)布霹肝,PO和客戶團隊必須排列一個故事的優(yōu)先級。
What什么是優(yōu)先級排序塑煎?
每個用戶故事都是獨立的可測試的完整可發(fā)布使用的功能沫换。PO按照優(yōu)先級排列,確認哪些先做和后做最铁。團隊按照優(yōu)先級從高到低在承諾時間內(nèi)優(yōu)先完成優(yōu)先級高的任務讯赏。
基本優(yōu)先級排序:
--?高優(yōu)先級 High
--?中優(yōu)先級 Mediem
--?低優(yōu)先級 Low
為了避免無休止的對優(yōu)先級的爭論,可以使用DSDM方法
--?必須有(High)
--?應該有(High)
--?可以有(Mediem)
--?這次不會有(Low)
為了避免并列存在并列高優(yōu)先級無法取舍冷尉,可以使用序列法
--?1漱挎、2、3雀哨、4磕谅、5
How如何進行優(yōu)先級排序?
優(yōu)先級排序分風險驅(qū)動和價值驅(qū)動雾棺。
敏捷模式下膊夹,是價值驅(qū)動高于風險驅(qū)動。先做高價值的用戶故事捌浩,風險也許會隨著時間推移而消失放刨。但是如果隨著時間推移,風險并未消失尸饺,甚至有增無減进统,仍然要考慮先處理風險高的任務。
優(yōu)先級排序要考慮的因素浪听,包括但不限于以下幾種:
--?用戶故事的價值
--?用戶故事的規(guī)模
--?用戶故事的風險
Who誰來進行優(yōu)先級排序螟碎?
PO和客戶團隊,也可以參考開發(fā)團隊的意見
When什么時候進行優(yōu)先級排序馋辈?
任何時候抚芦,已經(jīng)進入迭代并開始沖刺的用戶故事除外。
取決于團隊的靈活機動性迈螟,靈活性高的話叉抡,計劃會議時候是最好的優(yōu)先級排序和調(diào)整的時機。
團隊速率:
How如何計算團隊速率答毫?
初始速率:第一個迭代的速率估計褥民,歷史經(jīng)驗、猜測
例子:6人團隊洗搂,2周一個迭代10天消返,團隊的理想天是6*10=60天载弄,這僅僅是理想天,因此要根據(jù)情況減半撵颊,或者1/3宇攻。由此算出的第一個迭代的初始速率為20或者30。
團隊速率:通過6個月的持續(xù)反饋和改進倡勇,團隊的速率接近一個穩(wěn)定的值逞刷,這個值就是團隊的速率。
Who誰來計算團隊速率妻熊?
SM
When什么時候計算團隊速率夸浅?
一個迭代完成,或者開始扔役。
發(fā)布計劃:
Why為什么要制定發(fā)布計劃帆喇?
即便敏捷開發(fā)是不斷順應市場變化而變化的,仍然是需要一個預期和發(fā)布時間預估亿胸,只是無法精準到天坯钦,允許±2個迭代的誤差。(傳統(tǒng)瀑布流的開發(fā)模式也無法精確到天损敷,事實上傳統(tǒng)模式下的開發(fā)總會比計劃的發(fā)布日期拖延幾個月到半年交付)
What什么是發(fā)布計劃葫笼?
根據(jù)產(chǎn)品路線圖,規(guī)劃發(fā)布拗馒。以做出一個合理的預測路星,完成符合用戶期望的發(fā)布需要多少輪迭代。
發(fā)布計劃需要包含以下要素:
1诱桂、粗粒度故事洋丐,不包含很多細節(jié)。
2挥等、對這些故事的用戶故事估點友绝,和優(yōu)先級排序。
3肝劲、選擇一個固定的迭代長度迁客。(1周、2周辞槐、4周掷漱,長度越長風險越大,因為反饋周期變長榄檬,反思和修正的機會變少)
4卜范、團隊的速率
How如何將用戶故事估算轉(zhuǎn)換為開發(fā)速率和發(fā)布時間預估?
用理想周進行估算的例子:
通過SM鹿榜、PO海雪、客戶團隊達成一致锦爵,本次發(fā)布計劃預計包括用戶故事: A、B奥裸、C险掀、D、E
A用戶故事的估算是一個理想周(5天)湾宙,團隊總共7人迷郑。總共任務點數(shù)=5天*7人=35點创倔。
B用戶故事的估算是兩個理想周(10天),團隊總共7人焚碌∑枞粒總共任務點數(shù)=10*7=70點。
C用戶故事估算是斐波那契數(shù)列8點
D用戶故事估算是4個理想周(20天)十电,團隊總共7人知押。總共任務點數(shù)=20*7=140點鹃骂。
E用戶故事估算是斐波那契數(shù)列21點
總計 故事點數(shù)為 35+70+8+140+21=274
若團隊速率為62台盯,則開發(fā)時間為274/62=4.4個迭代±2個迭代。
因此可以估計發(fā)布時間點為6~7個迭代后畏线。團隊經(jīng)過6~7個迭代可以發(fā)布A静盅、B、C寝殴、D蒿叠、E五個用戶故事所構成的交付產(chǎn)品。
Who誰來制定發(fā)布計劃
團隊
When什么時候制定發(fā)布計劃
按照發(fā)布周期蚣常,2~6個月市咽,發(fā)布完成后,休整一個星期抵蚊。這個星期進行backlog梳理施绎,需求澄清會,發(fā)布計劃會贞绳,等等谷醉。
迭代計劃:
Why為什么要做迭代計劃?
對粗粒度的用戶故事進行更加細致的討論熔酷,但仍然避免過于糾纏于細節(jié)孤紧。目的是確定團隊這個迭代做什么,排列優(yōu)先級拒秘,并從高優(yōu)先級的用戶故事開始選取号显。
What什么是迭代計劃臭猜?
每個迭代開始的第一天,團隊共同討論做什么押蚤,如何做蔑歌,誰來做。
How如何進行迭代計劃揽碘?
-- 優(yōu)先級排序
--?任務拆分
--?任務估點
Who誰來做迭代計劃?
團隊
When什么時候做迭代計劃次屠?
每個迭代開始的第一天
讀書筆記用戶故事與敏捷方法----流程篇就更新到這里,后續(xù)繼續(xù)更新用戶故事與敏捷方法-----產(chǎn)品篇雳刺。
謝謝劫灶!
歡迎添加QQ討論:26988505