敏捷實(shí)踐:Scrum的核心概念和基本實(shí)踐(一)
Scrum是迭代式增量軟件開(kāi)發(fā)過(guò)程,通常用于敏捷軟件開(kāi)發(fā)。Scrum是一種產(chǎn)品開(kāi)發(fā)過(guò)程的模式,包括了過(guò)程中的具體實(shí)踐和角色定義,它也是一種計(jì)劃管理方式。
本文主要介紹Scrum的核心概念和基本實(shí)踐,讓大家可以快速在團(tuán)隊(duì)中開(kāi)始運(yùn)用Scrum的管理方式,并能初步看到采用Scrum的好處。
一、迭代式增量開(kāi)發(fā)
迭代式增量開(kāi)發(fā)是相對(duì)于瀑布式開(kāi)發(fā)而言的。瀑布模型是由W.W.Royce在1970年最初提出的軟件開(kāi)發(fā)模型,是一種老舊的計(jì)算機(jī)軟件開(kāi)發(fā)方法。
瀑布模型式是最典型的預(yù)見(jiàn)性的方法,嚴(yán)格遵循預(yù)先計(jì)劃的需求分析、設(shè)計(jì)、編碼、集成、測(cè)試、維護(hù)的步驟順序進(jìn)行。瀑布模型一般用于需求固定,開(kāi)發(fā)周期較長(zhǎng)的過(guò)程管理。
在互聯(lián)網(wǎng)項(xiàng)目中,首先不滿足瀑布開(kāi)發(fā)的一個(gè)條件就是“需求固定”。一般瀑布模型的開(kāi)發(fā)過(guò)程會(huì)持續(xù)半年或者幾年,如果互聯(lián)網(wǎng)早期項(xiàng)目采用傳統(tǒng)的瀑布模型,可能產(chǎn)品沒(méi)做出來(lái),公司的錢就燒光了。并且一般的互聯(lián)網(wǎng)產(chǎn)品的需求會(huì)經(jīng)常發(fā)生變化,來(lái)自老板的、市場(chǎng)的、運(yùn)營(yíng)的等等。
瀑布式模型把開(kāi)發(fā)的角色定義為單向流水線,但Scrum的開(kāi)發(fā)過(guò)程如下圖所示:
[截圖1:Scrum過(guò)程管理]
完整的Scrum流程看起來(lái)還是很復(fù)雜,不過(guò)現(xiàn)在大家沒(méi)有必要完全看懂,只要知道Scrum是按照迭代周期(2~4周,也可以是1周)為單位制定開(kāi)發(fā)計(jì)劃和節(jié)奏的。
二、從需求池開(kāi)始
瀑布模型中認(rèn)為,需求需要事先完整地確定下來(lái),然后形成文檔后交給開(kāi)發(fā)進(jìn)行架構(gòu)、數(shù)據(jù)庫(kù)、編碼的設(shè)計(jì)。需求文檔就是產(chǎn)品出來(lái)前的非常細(xì)致的產(chǎn)品文檔。
Scrum模型中認(rèn)為,需求是會(huì)隨時(shí)變化并且增加的,需求是用需求池(Product Backlog)的方式管理,每次的迭代周期從需求池中挑選當(dāng)前最重要的需求來(lái)實(shí)現(xiàn),其他需求等到下次迭代再來(lái)處理。Scrum中的需求根據(jù)優(yōu)先級(jí)分層次進(jìn)行管理。
[截圖2:需求優(yōu)先級(jí)]
[截圖3:完整的需求池]
關(guān)于需求池的管理,大家可以參考我的另外一篇文章《【十年老產(chǎn)品】教你管理需求池》。產(chǎn)品經(jīng)理將搜集的需求通過(guò)需求管理工具進(jìn)行管理,需求池是進(jìn)行下一個(gè)步驟的前提。
三、計(jì)劃會(huì)
在進(jìn)入迭代周期前,首要確定的一件事情是更新自己的版本庫(kù),確定這次即將迭代的版本號(hào)。
在每次迭代周期前的固定時(shí)間,團(tuán)隊(duì)成員會(huì)開(kāi)一次需求計(jì)劃會(huì),這個(gè)會(huì)議會(huì)確定下一個(gè)迭代需要完成的任務(wù)的優(yōu)先級(jí)。建議參會(huì)的人員有:產(chǎn)品經(jīng)理(Product Owner)、Scrum主管、開(kāi)發(fā)團(tuán)隊(duì)、設(shè)計(jì)團(tuán)隊(duì)、測(cè)試團(tuán)隊(duì)。如果公司老板有時(shí)間,強(qiáng)烈建議讓老板參與計(jì)劃會(huì),這是一個(gè)“培訓(xùn)”老板產(chǎn)品意識(shí)的好機(jī)會(huì)。
需求池中的需求分為:待處理、開(kāi)發(fā)中、已驗(yàn)收三個(gè)狀態(tài)。在計(jì)劃會(huì)中我們把所有“待處理”的需求按照優(yōu)先級(jí)排列。
開(kāi)發(fā)人員確定周期內(nèi)可以完成的需求,將挑選出來(lái)的需求指定到新的版本號(hào),這些需求的狀態(tài)會(huì)更新為“開(kāi)發(fā)中”。
需求確定后,由Scrum團(tuán)隊(duì)將需求進(jìn)一步分解成具體的開(kāi)發(fā)、設(shè)計(jì)、測(cè)試的任務(wù),Scrum團(tuán)隊(duì)成員按照任務(wù)列表進(jìn)行后續(xù)的任務(wù)分配。
在做工期評(píng)估時(shí)一定要根據(jù)產(chǎn)品和團(tuán)隊(duì)的具體狀態(tài)留出部分的bug修復(fù)時(shí)間。并且工期由Scrum團(tuán)隊(duì)來(lái)決定,產(chǎn)品經(jīng)理(包括老板)只是確定優(yōu)先級(jí),解釋需求內(nèi)容,一定不要強(qiáng)制給團(tuán)隊(duì)安排開(kāi)發(fā)任務(wù)。
1. MVP
MVP(minimum viable product,最小化可行產(chǎn)品)和常規(guī)產(chǎn)品不同,MVP更側(cè)重于對(duì)未知市場(chǎng)的勘測(cè),用最小的代價(jià)來(lái)驗(yàn)證你的商業(yè)可行性。舉個(gè)例子,如果你希望做一個(gè)圖片分享網(wǎng)站,那么作為產(chǎn)品原型,MVP僅僅包含最基礎(chǔ)的功能,形態(tài)或許就是一個(gè)提交圖片的按鈕以及圖片的展示。
需求分為核心需求、基本需求、擴(kuò)展需求。MVP只會(huì)包含核心需求部分。一般的產(chǎn)品,在前一兩個(gè)迭代周期就應(yīng)該完成MVP的產(chǎn)品開(kāi)發(fā),讓市場(chǎng)運(yùn)營(yíng)人員投放給用戶使用。MVP應(yīng)該作為互聯(lián)網(wǎng)產(chǎn)品的一個(gè)起點(diǎn),后續(xù)的迭代開(kāi)發(fā)都是以它為內(nèi)核不斷擴(kuò)展。
2. 需求鎖定
迭代開(kāi)發(fā)的方式相比瀑布模型加快了開(kāi)發(fā)團(tuán)隊(duì)的節(jié)奏,其實(shí)對(duì)開(kāi)發(fā)團(tuán)隊(duì)的規(guī)劃、設(shè)計(jì)能力提出了更高的要求。但是迭代周期不要定得短于一周,需要給團(tuán)隊(duì)留出一個(gè)相對(duì)完整的時(shí)間進(jìn)行代碼結(jié)構(gòu)的整體優(yōu)化和調(diào)整。
并且這里需要特別指出的是,在進(jìn)入迭代周期后,所有“開(kāi)發(fā)中”的需求是鎖定的,不允許隨意增加和修改。當(dāng)然老板和產(chǎn)品經(jīng)理在遇到特殊情況時(shí)還是有一定的特權(quán),但特權(quán)使用是在消耗團(tuán)隊(duì)成員的信任,所以慎用?。?!
四、每日立會(huì)
每天早上,Scrum團(tuán)隊(duì)會(huì)開(kāi)一個(gè)15分鐘左右的立會(huì)(站著開(kāi)的會(huì),為了限制會(huì)議時(shí)間)。立會(huì)的工作就是將周期內(nèi)需要完成的任務(wù)清單列出來(lái),由每個(gè)成員根據(jù)自身的情況來(lái)領(lǐng)取當(dāng)天的任務(wù)。所有的任務(wù)分解粒度必須在一天以內(nèi)完成,需要以小時(shí)為單位估算。
立會(huì)要求每個(gè)成員對(duì)自己的能力有足夠的認(rèn)識(shí),確定自己能做到什么,是否能按時(shí)保質(zhì)完成。
每日立會(huì)是產(chǎn)品經(jīng)理不需要參與的。在開(kāi)發(fā)周期內(nèi),產(chǎn)品經(jīng)理需要做到的就是需求答疑,同時(shí)維護(hù)并分析需求池中的新需求。
五、評(píng)審會(huì)
在迭代周期結(jié)束的評(píng)審會(huì)時(shí),Scrum團(tuán)隊(duì)向產(chǎn)品經(jīng)理展示迭代周期的開(kāi)發(fā)成果,產(chǎn)品經(jīng)理對(duì)需求進(jìn)行驗(yàn)收。
程序員和產(chǎn)品經(jīng)理對(duì)同一個(gè)問(wèn)題理解往往是有偏差的,產(chǎn)品經(jīng)理貼近用戶、程序員貼近代碼。任何一個(gè)需求最后必須交由產(chǎn)品經(jīng)理驗(yàn)收合格后才允許上線。
評(píng)審會(huì)代表迭代周期的結(jié)束,也是可以讓老板參與的一個(gè)重要會(huì)議。產(chǎn)品經(jīng)理讓老板理解開(kāi)發(fā)過(guò)程,看到開(kāi)發(fā)結(jié)果是非常重要的環(huán)節(jié),能夠增強(qiáng)老板對(duì)開(kāi)發(fā)團(tuán)隊(duì),產(chǎn)品經(jīng)理的信心。
小型團(tuán)隊(duì)也可以考慮把評(píng)審會(huì)和下一周期的計(jì)劃會(huì)一起召開(kāi)。
六、反思會(huì)
反思會(huì)是Scrum團(tuán)隊(duì)內(nèi)部對(duì)上一周期的開(kāi)發(fā)任務(wù)回顧的會(huì)議,產(chǎn)品開(kāi)發(fā)計(jì)劃需要迭代,同時(shí)每個(gè)成員的成長(zhǎng)也需要迭代。通過(guò)不斷的反思,逐步加強(qiáng)團(tuán)隊(duì)成員對(duì)開(kāi)發(fā)過(guò)程的理解,對(duì)自身開(kāi)發(fā)能力的理解和提高。
Scrum是一套完整的產(chǎn)品開(kāi)發(fā)理論,我們?cè)趧傞_(kāi)始實(shí)踐時(shí)只需要關(guān)注幾個(gè)重要的節(jié)點(diǎn):迭代周期、需求池、版本庫(kù)、計(jì)劃會(huì)、每日立會(huì)、評(píng)審會(huì)、反思會(huì),其他的地方可以根據(jù)團(tuán)隊(duì)、產(chǎn)品的具體情況靈活變通。最關(guān)鍵的是建立起產(chǎn)品開(kāi)發(fā)良好的節(jié)奏感和風(fēng)險(xiǎn)控制能力。
在后面的文章中,我會(huì)進(jìn)一步介紹Scrum的成員,以及Scrum實(shí)踐中必須打通的外部節(jié)點(diǎn)。
本文由 @未明 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
您好,請(qǐng)問(wèn)你截圖3中的需求管理工具叫什么?