敏捷是解決傳統(tǒng)項(xiàng)目管理對(duì)復(fù)雜和變化應(yīng)對(duì)不足的替代方案,提出了一組價(jià)值觀和原則。起源自敏捷開(kāi)發(fā)方法,一種以人為核心、迭代、循序漸進(jìn)的開(kāi)發(fā)方法。符合敏捷價(jià)值觀和原則的開(kāi)發(fā)方法有很多,其中以Scrum框架最流行。
Scrum原意是橄欖球運(yùn)動(dòng)的爭(zhēng)球,用來(lái)象征積極的快速前進(jìn)的團(tuán)隊(duì)。
Scrum核心思想是增量、迭代,整個(gè)開(kāi)發(fā)過(guò)程由若干個(gè)短的Sprint(迭代周期)組成,每個(gè)Sprint大約2到4周。需求則由產(chǎn)品Backlog(產(chǎn)品待辦事項(xiàng))來(lái)管理,進(jìn)入迭代中的需求則由Sprint backlog(迭代待辦事項(xiàng))來(lái)管理。
流程
Scrum 流程通過(guò)特定的概念和實(shí)踐區(qū)別于其他敏捷流程,分為角色、事件、工件和規(guī)則三類。
整個(gè)過(guò)程循環(huán)進(jìn)行,大的流程如下:
- 準(zhǔn)備階段,確定Product Backlog,也就是分析階段,一般用Epic和User Story來(lái)描述。
- 開(kāi)始前,產(chǎn)品、研發(fā)、測(cè)試需要一同開(kāi)一次 sprint planning meeting(迭代計(jì)劃會(huì)議),按優(yōu)先級(jí)安排sprint backlog。同時(shí)也會(huì)討論發(fā)布計(jì)劃。
- 進(jìn)入Sprint,成員對(duì)這個(gè)迭代的工作整理、拆分、設(shè)計(jì)、評(píng)估時(shí)間、安排優(yōu)先級(jí)、開(kāi)發(fā)、測(cè)試。
- 在Sprint中,每天站會(huì),匯報(bào):昨天完成、今天要完成、難題,更新burndown chart。
- 完成Sprint時(shí),進(jìn)行Sprint Review Meeting(評(píng)審會(huì)議),演示評(píng)審結(jié)果。
- 最后,進(jìn)行Sprint Retrospective Meeting(迭代復(fù)盤(pán)會(huì)議),總結(jié)經(jīng)驗(yàn)、教訓(xùn)、優(yōu)化。
三個(gè)角色
Scrum 團(tuán)隊(duì)是自組織、跨職能的完整團(tuán)隊(duì),盡量?jī)?nèi)部擁有完成工作所需要的全部技能。
- PO,Product Owner(產(chǎn)品經(jīng)理),管理產(chǎn)品待辦事項(xiàng)列表,排User Story的優(yōu)先級(jí),迭代結(jié)束時(shí)評(píng)估交付成果。他是產(chǎn)品以及開(kāi)發(fā)團(tuán)隊(duì)工作的最大負(fù)責(zé)人,要保證團(tuán)隊(duì)對(duì)待辦事項(xiàng)透明、清晰,下一步工作明確。團(tuán)隊(duì)必須尊重他的決定。
- Team,Development Team(開(kāi)發(fā)成員組),工作所需的專業(yè)人員,最主要是開(kāi)發(fā)者,自組織跨職能且平等,一般3-9人規(guī)模,過(guò)猶不及。一般來(lái)說(shuō)測(cè)試團(tuán)隊(duì),需求分析師,UI設(shè)計(jì)師專業(yè)團(tuán)隊(duì)可能不包含在內(nèi)。
- SM,Scrum Master(敏捷專家),協(xié)助PO和團(tuán)隊(duì),主持迭代相關(guān)的各種會(huì)議,解決溝通問(wèn)題,協(xié)助角色,幫忙團(tuán)隊(duì)改進(jìn)Scrum過(guò)程。
三個(gè)清單
為保證關(guān)鍵信息的透明性,有三個(gè)重要的清單:
- Product Backlog,產(chǎn)品待辦事項(xiàng)清單,由PO經(jīng)需求分析后持續(xù)維護(hù)內(nèi)容,其中包括User Stoty,任務(wù),Bug,優(yōu)化等等。 每個(gè)事項(xiàng)都必須有優(yōu)先級(jí)、價(jià)值描述、評(píng)估等,其細(xì)節(jié)也按優(yōu)化次序不斷梳理清晰。 由此清單可以追蹤剩余工作總量,以及燃盡圖也可顯示出進(jìn)度的趨勢(shì)。
- Sprint Backlog,迭代待辦事項(xiàng)清單,是Team從Product Backlog選出的條目,要在本迭代中完成。 此清單的意義包括細(xì)化的User Story、詳細(xì)到小時(shí)的工作量評(píng)估、一份足夠具體的計(jì)劃、任務(wù)責(zé)任人、要交付的Product Increment等方面。 清單包括User Stoty(或更細(xì)分為任務(wù)),任務(wù),Bug,優(yōu)化等,對(duì)客戶帶來(lái)高價(jià)值的事項(xiàng)總會(huì)優(yōu)先完成,并且緊急的高優(yōu)先級(jí)的也可加入到清單中,尤其是Bug類。 當(dāng)任務(wù)進(jìn)行或完成,需要更新任務(wù)的估算剩余時(shí)間,所有剩余工作總和都可以被計(jì)算,通過(guò)燃盡圖也可顯示出進(jìn)度趨勢(shì)。 在Sprint結(jié)束時(shí)更新的發(fā)布燃盡圖可以跟蹤到整個(gè)發(fā)布計(jì)劃的進(jìn)度。
- Product Increment,產(chǎn)品增量清單,當(dāng)Sprint完成時(shí),所有驗(yàn)收可以交付的成果物清單,包括之前所有完成的。Team完成任務(wù)后,由PO驗(yàn)收,最后由PO決定是否發(fā)布。
Backlog中最重要的是User Story(用戶故事),是從客戶、業(yè)務(wù)的角度描述想要解決的問(wèn)題,想要得到的功能,包含三個(gè)要素:角色、活動(dòng)、價(jià)值。需要注意的是不能夠使用技術(shù)語(yǔ)言來(lái)描述。
五個(gè)事件
- Sprint,迭代,是Scrum的核心,一般是2到4周的一個(gè)時(shí)間段,用來(lái)開(kāi)發(fā)構(gòu)建可用的、潛在可發(fā)布的產(chǎn)品增量。一個(gè)完整的Sprint由計(jì)劃會(huì)議、每日站會(huì)、開(kāi)發(fā)工作、 評(píng)審會(huì)議和回顧會(huì)議構(gòu)成。
- Sprint 計(jì)劃會(huì)議,迭代開(kāi)始時(shí),會(huì)議中整個(gè)團(tuán)隊(duì)協(xié)作完成這個(gè)迭代的計(jì)劃,做什么、如何做和預(yù)估工作量。
- 每日站會(huì),每天進(jìn)行的時(shí)間短、內(nèi)容簡(jiǎn)的會(huì)議,用來(lái)檢視完成 Sprint 目標(biāo)的進(jìn)度,每個(gè)成員都需要說(shuō)明,昨天做了什么,今天準(zhǔn)備做什么,有哪些阻礙。
- Sprint 評(píng)審會(huì)議,迭代結(jié)束時(shí),檢視所交付的產(chǎn)品增量的會(huì)議。參與人包括團(tuán)隊(duì)及需求相關(guān)方,演示完成的工作,大家討論所交付的產(chǎn)品增量的問(wèn)題,討論完成和未完成的工作,也討論下一步工作,修訂產(chǎn)品待辦列表,以及下一迭代的待辦列表。
- Sprint 回顧會(huì)議,在評(píng)審會(huì)議結(jié)束后,下個(gè)迭代開(kāi)始前進(jìn)行??偨Y(jié)經(jīng)驗(yàn),檢視迭代問(wèn)題,討論改進(jìn)方案。
五個(gè)價(jià)值觀
- 承諾,愿意對(duì)目標(biāo)做出承諾,但不過(guò)度承諾。
- 專注,把心思和能力都用到已經(jīng)開(kāi)始的工作上去,限制正在進(jìn)行的工作數(shù)量。
- 開(kāi)放,尋求并重視反饋和學(xué)習(xí)機(jī)會(huì)。讓障礙、失敗和學(xué)習(xí)成果變得清晰可見(jiàn)。
- 尊重,團(tuán)隊(duì)合作,認(rèn)可每個(gè)成員的工作和成就,建立與人的信任關(guān)系。
- 勇氣,都有勇氣接受錯(cuò)誤、尋求幫助、學(xué)會(huì)拒絕以及大膽質(zhì)疑。