高效研发流程
今天我們將從從產(chǎn)品目標(biāo)到產(chǎn)品路線圖、從產(chǎn)品路線圖到發(fā)布計(jì)劃、從發(fā)布計(jì)劃到迭代計(jì)劃、從迭代計(jì)劃到迭代的落地執(zhí)行四個(gè)方面來全面解讀高效研發(fā)流程,這也是一套完整流程中的四個(gè)步驟。
準(zhǔn)備好小本本聽課吧!
一、從產(chǎn)品目標(biāo)到產(chǎn)品路線圖
滿足用戶訴求是產(chǎn)品的基礎(chǔ)功能,在此之上還有一個(gè)更高的期望,即產(chǎn)品的目標(biāo)。通常情況下產(chǎn)品目標(biāo)與產(chǎn)品的收益、市場(chǎng)份額、流水有關(guān)。在制定具體產(chǎn)品目標(biāo)時(shí),需要考慮產(chǎn)品的商業(yè)模式以及產(chǎn)品所處的階段。好的產(chǎn)品目標(biāo)是具體的、可衡量的、相對(duì)穩(wěn)定的。
在進(jìn)行產(chǎn)品目標(biāo)階段性地拆解時(shí),需要考慮拆解的維度與方法。除了根據(jù)階段性的時(shí)間維度進(jìn)行拆分外,還可以根據(jù)產(chǎn)品的里程碑進(jìn)行拆分。
二、從產(chǎn)品路線圖到發(fā)布計(jì)劃
在了解如何制定產(chǎn)品發(fā)布計(jì)劃之前,我們需要先了解一個(gè)工具:用戶故事地圖。用戶故事地圖實(shí)際上是一個(gè)完整的用戶故事。它可以幫助我們?cè)鰪?qiáng)團(tuán)隊(duì)協(xié)作、洞察真實(shí)需求、打磨優(yōu)良產(chǎn)品。
想要?jiǎng)?chuàng)建用戶故事地圖,首先要有用戶故事地圖的框架。它的核心是一條從左到右的時(shí)間線,然后從上到下按照歸納結(jié)構(gòu)分為三個(gè)層級(jí)。這一條時(shí)間線上方的一級(jí)粒度的功能需求,在工作中,我們稱之為Epic,也就是橙色卡片。這條時(shí)間線下方的第一行為二級(jí)粒度的功能需求,在工作中,稱之為Feature,是黃色卡片。在二級(jí)粒度功能下,藍(lán)色的卡片為三級(jí)粒度的需求,工作中,稱之為Story,是藍(lán)色卡片。
此處我們提煉出了用戶故事地圖創(chuàng)建中五個(gè)重要的步驟:
① 一步一步寫出你的故事
② 組織情節(jié)
③ 探索替代故事
④ 提取故事地圖的主干
⑤ 切分出能幫你達(dá)成特定目標(biāo)的任務(wù)
我們通過一個(gè)“訓(xùn)練智能機(jī)器人小A從起床到出門”的簡(jiǎn)單例子來更清楚的了解這五步驟。
首先我們使用藍(lán)色卡片按照步驟寫出每個(gè)任務(wù),每張卡片只寫一個(gè)任務(wù),任務(wù)以動(dòng)詞開頭,如“睜眼”、“關(guān)鬧鐘”、“穿拖鞋”、“疊被子”等等。然后按照任務(wù)的發(fā)生順序從左到右的組織卡片擺放。
接下來第二步,對(duì)所有的任務(wù)進(jìn)行提取,得到概括性的行為,把這些行為放到黃色卡片上,也就是feature。如:“睜眼”、“關(guān)鬧鐘”這些行為可以歸為“醒來”后要做的事情;“穿拖鞋”、“疊被子”這兩個(gè)行為可以歸為“起來”后要做的事情。
接下來進(jìn)入第三步:探索替代故事。細(xì)節(jié)、替代、變化和異常構(gòu)成故事地圖的主題。比如:時(shí)間充裕可以睡個(gè)回籠覺,樓上裝修被提前吵醒等等可能發(fā)生的變化和異常。我們需要將這些任務(wù)補(bǔ)充進(jìn)地圖。
然后進(jìn)入第四步:將一系列類似的任務(wù)提取出來,形成更大的目標(biāo)。在類似任務(wù)的上方,放一張橙色的卡片,也就是之前提到的Epic,卡片貼上一個(gè)動(dòng)詞短語,使其足以覆蓋其下方所有任務(wù)卡片所要表達(dá)的意思。例如:“起床”可以概括“醒來”和“起來”;“如廁”可以概括“如廁”和“刷牙”。
目前已經(jīng)完成了較為完整的故事地圖。然后進(jìn)入第五步,切分出能達(dá)成特定目標(biāo)的任務(wù)。先確定本次迭代需要完成的特性/目標(biāo),使用切分來識(shí)別和特定相關(guān)的所有任務(wù)和細(xì)節(jié)。
在“訓(xùn)練智能機(jī)器人小A從起床到出門”這個(gè)例子中,分為了三個(gè)版本。在第一個(gè)版本15分鐘起床,回籠覺這張卡片明顯是不需要放到其中的。在這些的story中選出滿足15分鐘起床的事務(wù)并將其放入都第一個(gè)版本中。至此我們也就完成了一個(gè)簡(jiǎn)單的用戶故事地圖的創(chuàng)建。
上面這張圖片是實(shí)際工作中對(duì)用戶故事地圖的應(yīng)用,可以看到在實(shí)際工作中完整的用戶故事地圖所包含的內(nèi)容非常龐雜。
完成用戶故事地圖之后,就需要制訂發(fā)布計(jì)劃。在創(chuàng)建用戶故事地圖的第五步中,我們切分出了達(dá)成特定功能的任務(wù)目標(biāo),每一個(gè)發(fā)布計(jì)劃都對(duì)應(yīng)著一個(gè)版本。具體的步驟如下:
①Big Story進(jìn)行細(xì)化討論
②按照價(jià)值和重要程度進(jìn)行版本規(guī)劃
③確定每個(gè)版本的期望達(dá)成目標(biāo)
④確定每個(gè)版本的內(nèi)容
⑤團(tuán)隊(duì)達(dá)成共識(shí)
通過以上步驟,就基本確定了用戶故事地圖的發(fā)布計(jì)劃。
三、從發(fā)布計(jì)劃到迭代計(jì)劃
第三部分主要講解集中發(fā)布式模式這一常用的模式,在集中發(fā)布式模式中,一次發(fā)布包含多次迭代;在迭代發(fā)布模式中,一次發(fā)布等于一次迭代。
很多大型項(xiàng)目都在使用這一模式,通常是每月發(fā)布一次,一次發(fā)布包含四個(gè)迭代,四個(gè)迭代之后,發(fā)布一次版本。
從發(fā)布計(jì)劃到迭代計(jì)劃共包括四個(gè)內(nèi)容。
1、用戶故事拆分
用戶故事的拆分對(duì)迭代速率有一定影響。對(duì)用戶故事的拆分要做到拆分出的故事盡量小,但是要適當(dāng),并不是越小越好。避免出現(xiàn)一個(gè)迭代內(nèi)無法完成的故事。
2、用戶故事優(yōu)先級(jí)
在完成用戶故事拆分后,需要對(duì)用戶故事的優(yōu)先級(jí)進(jìn)行排序。用戶故事的排序其實(shí)是對(duì)需求的一個(gè)排序,優(yōu)先級(jí)排序有許多方法,如高中低、數(shù)字排序、衣服尺碼L、XL等方式。優(yōu)先級(jí)決定排入迭代的順序。
以一個(gè)兩周的迭代時(shí)間為例,假設(shè)我們有這樣一個(gè)需求,前面的數(shù)字是需求卡片的序號(hào),后面的數(shù)字從100到45,這是項(xiàng)目?jī)?yōu)先級(jí)排序的一個(gè)方式。每一次迭代能做4個(gè)卡片時(shí),我們就會(huì)把優(yōu)先級(jí)最高的卡片放入迭代池。
而當(dāng)?shù)诙蔚鷷r(shí),需求發(fā)生了變化,出現(xiàn)了x和y兩個(gè)新的需求,x和y有著較高的優(yōu)先級(jí),那么我們?nèi)匀粚?yōu)先級(jí)最高的四個(gè)卡片放入迭代池中。
第三次迭代中又插入了新需求z,需求z也有較高的優(yōu)先級(jí),那么當(dāng)我們進(jìn)行迭代的時(shí)候,需求z就會(huì)頂替另一個(gè)需求被放入迭代池中。
通過以上的例子可以看到,在原本的迭代計(jì)劃中,12張卡片會(huì)被按順序放入迭代池中,而真實(shí)情況是插入了更高優(yōu)先級(jí)的需求,替換了低優(yōu)先級(jí)的需求,把低優(yōu)先級(jí)的需求放入了下一次迭代中。這就是優(yōu)先級(jí)排序?qū)Φ?jì)劃的影響。
3、用戶故事估算
在迭代之前,需要對(duì)用戶故事進(jìn)行估算,用戶故事估算實(shí)際上是對(duì)工作量的估算。這個(gè)工作量體現(xiàn)的是團(tuán)隊(duì)均值能力。
通常在公司內(nèi)有不同級(jí)別的員工,高級(jí)別的員工和低級(jí)別的員工完成同一任務(wù)所需的時(shí)間是不同的。所以在進(jìn)行用戶故事估算時(shí)就需要規(guī)避掉技能的差異,根據(jù)團(tuán)隊(duì)的均值能力來進(jìn)行估算。
用戶故事估算通常參考是團(tuán)隊(duì)的歷史數(shù)據(jù),我們可以從歷史數(shù)據(jù)中進(jìn)行合理的估算。而沒有這種歷史數(shù)據(jù)的團(tuán)隊(duì),可以參考一下類似團(tuán)隊(duì)的數(shù)據(jù)。當(dāng)這兩者都不具備時(shí),就只能采用本能估算的方式了。
4、迭代計(jì)劃制定
當(dāng)前面三步全部完成后,才能開始指定迭代計(jì)劃。
將已拆分好的用戶故事按照優(yōu)先級(jí)依次放入迭代池中,對(duì)每個(gè)要進(jìn)行迭代的用戶故事進(jìn)行估算,確定好迭代的時(shí)間期限。所以我們就制定出了迭代計(jì)劃。
當(dāng)需求變更,團(tuán)隊(duì)人員進(jìn)行調(diào)整以及預(yù)估不準(zhǔn)確時(shí),我們需要對(duì)迭代計(jì)劃進(jìn)行調(diào)整。調(diào)整方式有:范圍調(diào)整、需求置換;延期;加人、加班趕工三種方式。
我們推薦采用范圍調(diào)整、需求置換這一方式,也就是前面提到過的,插入高優(yōu)先級(jí)用戶故事,順延低優(yōu)先級(jí)故事到下一次迭代的方式。
四、從迭代計(jì)劃到迭代的落地執(zhí)行
對(duì)于一個(gè)團(tuán)隊(duì)來說需要通過迭代計(jì)劃會(huì)、站會(huì)、需求評(píng)審會(huì)、迭代回顧會(huì)等會(huì)議對(duì)計(jì)劃進(jìn)行分析和迭代,然后進(jìn)行開發(fā)和測(cè)試。在整個(gè)過程中無論是開發(fā)還是測(cè)試都是以story的力度進(jìn)行的。分析、開發(fā)與測(cè)試這三個(gè)步驟是并行的。
團(tuán)隊(duì)可以使用卡片墻標(biāo)注完成的任務(wù)和未完成的任務(wù)以及遇到的bug等。通過這種方式,能夠?qū)?zhí)行情況有清晰的認(rèn)知,對(duì)執(zhí)行過程產(chǎn)生積極的影響。
點(diǎn)擊進(jìn)入了解更多技術(shù)資訊~~
總結(jié)
- 上一篇: 一年数十万次实验背后的架构与数据科学
- 下一篇: 研发工具链介绍