第二十五章 敏捷開(kāi)發(fā)到底是什么?
“上次你跟我說(shuō)單元測(cè)試和提測(cè)質(zhì)量的關(guān)系時(shí),說(shuō)到了幾個(gè)比較熱門(mén)的概念,我印象深刻,也比較感興趣的一個(gè)是敏捷,一個(gè)是持續(xù)集成,今天是來(lái)特意學(xué)習(xí)求教敏捷開(kāi)發(fā)到底是什么?”我趁午飯前的一個(gè)空檔,看老大好像不忙,就跑到老大那問(wèn)道。
老大說(shuō),“看在你這么好學(xué)的份上,我就跟你簡(jiǎn)單普及一下吧,很多深入的知識(shí),還需要你自己去學(xué)習(xí)摸索。”
我們先通過(guò)兩張圖來(lái)看下傳統(tǒng)的瀑布研發(fā)模式和敏捷模式的區(qū)別在哪:
第一張圖就是我們已經(jīng)很熟悉的瀑布研發(fā)模型,產(chǎn)品交付之前所有的過(guò)程都象是在一個(gè)黑盒子里進(jìn)行的,用戶直到產(chǎn)品發(fā)布才知道它是不是自己想要的,最終的產(chǎn)品與用戶想要的可能會(huì)有較大的偏差。
第二張圖就是我今天要跟你說(shuō)的敏捷研發(fā)模型了,瀑布里的那個(gè)黑盒子還是黑盒子,不過(guò)已經(jīng)從一個(gè)大盒子被拆分成若干個(gè)小盒子了,用戶能持續(xù)地、階段性地看到可用的產(chǎn)品實(shí)體,并能及時(shí)提出改進(jìn)反饋,最終的產(chǎn)品與用戶想要的偏差不會(huì)太大。
敏捷開(kāi)發(fā)是一種以用戶的需求進(jìn)化為核心,迭代,循序漸進(jìn)的開(kāi)發(fā)方法,而
Scrum 是一種迭代式增量敏捷開(kāi)發(fā)模型。在國(guó)內(nèi),我們聽(tīng)到最多的就是 Scrum,因?yàn)樗?jīng)過(guò)很多項(xiàng)目和團(tuán)隊(duì)的實(shí)踐,證明了其有效、簡(jiǎn)單、持續(xù)交付的能力,所以很多初創(chuàng)公司或小規(guī)模團(tuán)隊(duì)都比較青睞它。
我們?cè)賮?lái)看一張圖,簡(jiǎn)單了解一下 Scrum 中主要的角色、產(chǎn)物、會(huì)議和流程:
三個(gè)角色:
- PO (Product Owner),產(chǎn)品負(fù)責(zé)人
充分理解組織中的相關(guān)干系人、客戶和用戶的需求,充當(dāng)其代言人。并做好需求管理,以及和開(kāi)發(fā)團(tuán)隊(duì)定好優(yōu)先級(jí),還必須明確需求的驗(yàn)收標(biāo)準(zhǔn)。
- SM(Scrum Master),敏捷教練
負(fù)責(zé)幫助每個(gè)人理解并樂(lè)于接受 Scrum 的價(jià)值觀、原則和實(shí)踐。負(fù)責(zé)團(tuán)隊(duì)的過(guò)程管理,幫助Scrum團(tuán)隊(duì)和組織其他成員發(fā)展具有組織特色的、高效的Scrum方法,并且需要保護(hù)團(tuán)隊(duì)不受外力干擾。
- Team,以功能開(kāi)發(fā)為核心,建立的跨職能團(tuán)隊(duì)
依據(jù)產(chǎn)品需求,完成交付。
五個(gè)產(chǎn)物:
Product Backlog:產(chǎn)品需求清單。
Sprint Goal:迭代目標(biāo),也叫沖刺目標(biāo)。
Sprint Backlog:迭代需求清單。
Task List:任務(wù)列表。
Increment Product:增量產(chǎn)品。
四個(gè)會(huì)議:
Planning Meeting:計(jì)劃會(huì)議。
Daily Scrum Meeting:每日站會(huì),“站”只是多種會(huì)議形式中被認(rèn)為效率最高的一種。
Review Meeting:評(píng)審會(huì)議,也可叫驗(yàn)收會(huì)議。
Retrospective Meeting:反思會(huì)議,所有會(huì)議里我認(rèn)為最重要的一個(gè),因?yàn)槊艚菟枷胫凶詈诵牡木褪浅掷m(xù)改進(jìn),而持續(xù)改進(jìn)來(lái)源于持續(xù)的總結(jié)和反思。
流程:
Team 在 PO 的主持下,通過(guò) Planning Meeting、Product Backlog 和 Sprint Goal 產(chǎn)出 Sprint Backlog;
Team 在 SM 的指導(dǎo)下,通過(guò) Sprint Backlog、Task List 和 Daily Scrum Meeting,在一個(gè)迭代周期(圖中是30天)產(chǎn)出 Increment Product;
PO 和 Team,通過(guò) Review Meeting,驗(yàn)收每個(gè)迭代周期產(chǎn)出的增量產(chǎn)品;
SM、PO 和 Team,通過(guò) Retrospective Meeting,反思每個(gè) Sprint 里做的好的和做的不好的地方,持續(xù)總結(jié)和改進(jìn),以此來(lái)提高 Team 的戰(zhàn)斗力和產(chǎn)出能力。
最后再跟你講幾個(gè)敏捷常用工具:
User Story,用戶故事,從用戶的角度來(lái)描述用戶渴望得到的功能。
Task Board,任務(wù)墻,將 Scrum 過(guò)程中的各項(xiàng)事務(wù)放大并進(jìn)行可視化展示的各種類(lèi)型的載體。
Burn Down Chart,燃盡圖,迭代周期內(nèi)用于跟蹤任務(wù)進(jìn)度的可視化圖形。
《告訴你如何從執(zhí)行測(cè)試到管理測(cè)試》帶你邁出第(25)步!,點(diǎn)擊這里可查看完整地圖
作者簡(jiǎn)介:14 年測(cè)試 + 11 年項(xiàng)目管理 + 11 年團(tuán)隊(duì)管理 = 一個(gè)測(cè)試?yán)媳?/p>