
第二十五章 敏捷開發(fā)到底是什么?
“上次你跟我說單元測試和提測質(zhì)量的關(guān)系時,說到了幾個比較熱門的概念,我印象深刻,也比較感興趣的一個是敏捷,一個是持續(xù)集成,今天是來特意學(xué)習(xí)求教敏捷開發(fā)到底是什么?”我趁午飯前的一個空檔,看老大好像不忙,就跑到老大那問道。
老大說,“看在你這么好學(xué)的份上,我就跟你簡單普及一下吧,很多深入的知識,還需要你自己去學(xué)習(xí)摸索?!?/p>
我們先通過兩張圖來看下傳統(tǒng)的瀑布研發(fā)模式和敏捷模式的區(qū)別在哪:


第一張圖就是我們已經(jīng)很熟悉的瀑布研發(fā)模型,產(chǎn)品交付之前所有的過程都象是在一個黑盒子里進行的,用戶直到產(chǎn)品發(fā)布才知道它是不是自己想要的,最終的產(chǎn)品與用戶想要的可能會有較大的偏差。
第二張圖就是我今天要跟你說的敏捷研發(fā)模型了,瀑布里的那個黑盒子還是黑盒子,不過已經(jīng)從一個大盒子被拆分成若干個小盒子了,用戶能持續(xù)地、階段性地看到可用的產(chǎn)品實體,并能及時提出改進反饋,最終的產(chǎn)品與用戶想要的偏差不會太大。
敏捷開發(fā)是一種以用戶的需求進化為核心,迭代,循序漸進的開發(fā)方法,而
Scrum 是一種迭代式增量敏捷開發(fā)模型。在國內(nèi),我們聽到最多的就是 Scrum,因為它經(jīng)過很多項目和團隊的實踐,證明了其有效、簡單、持續(xù)交付的能力,所以很多初創(chuàng)公司或小規(guī)模團隊都比較青睞它。

我們再來看一張圖,簡單了解一下 Scrum 中主要的角色、產(chǎn)物、會議和流程:
三個角色:
- PO (Product Owner),產(chǎn)品負責(zé)人
充分理解組織中的相關(guān)干系人、客戶和用戶的需求,充當(dāng)其代言人。并做好需求管理,以及和開發(fā)團隊定好優(yōu)先級,還必須明確需求的驗收標(biāo)準(zhǔn)。
- SM(Scrum Master),敏捷教練
負責(zé)幫助每個人理解并樂于接受 Scrum 的價值觀、原則和實踐。負責(zé)團隊的過程管理,幫助Scrum團隊和組織其他成員發(fā)展具有組織特色的、高效的Scrum方法,并且需要保護團隊不受外力干擾。
- Team,以功能開發(fā)為核心,建立的跨職能團隊
依據(jù)產(chǎn)品需求,完成交付。
五個產(chǎn)物:
Product Backlog:產(chǎn)品需求清單。
Sprint Goal:迭代目標(biāo),也叫沖刺目標(biāo)。
Sprint Backlog:迭代需求清單。
Task List:任務(wù)列表。
Increment Product:增量產(chǎn)品。
四個會議:
Planning Meeting:計劃會議。
Daily Scrum Meeting:每日站會,“站”只是多種會議形式中被認為效率最高的一種。
Review Meeting:評審會議,也可叫驗收會議。
Retrospective Meeting:反思會議,所有會議里我認為最重要的一個,因為敏捷思想中最核心的就是持續(xù)改進,而持續(xù)改進來源于持續(xù)的總結(jié)和反思。
流程:
Team 在 PO 的主持下,通過 Planning Meeting、Product Backlog 和 Sprint Goal 產(chǎn)出 Sprint Backlog;
Team 在 SM 的指導(dǎo)下,通過 Sprint Backlog、Task List 和 Daily Scrum Meeting,在一個迭代周期(圖中是30天)產(chǎn)出 Increment Product;
PO 和 Team,通過 Review Meeting,驗收每個迭代周期產(chǎn)出的增量產(chǎn)品;
SM、PO 和 Team,通過 Retrospective Meeting,反思每個 Sprint 里做的好的和做的不好的地方,持續(xù)總結(jié)和改進,以此來提高 Team 的戰(zhàn)斗力和產(chǎn)出能力。
最后再跟你講幾個敏捷常用工具:
User Story,用戶故事,從用戶的角度來描述用戶渴望得到的功能。
Task Board,任務(wù)墻,將 Scrum 過程中的各項事務(wù)放大并進行可視化展示的各種類型的載體。
Burn Down Chart,燃盡圖,迭代周期內(nèi)用于跟蹤任務(wù)進度的可視化圖形。
《告訴你如何從執(zhí)行測試到管理測試》帶你邁出第(25)步!,點擊這里可查看完整地圖
作者簡介:14 年測試 + 11 年項目管理 + 11 年團隊管理 = 一個測試老兵