前言
軟件開發(fā)行業(yè)中常用的兩種方法,一種是目前非常熱門的敏捷開發(fā)(Agile),如 Scrum,Kanban 和 Lean 等,另一種是大家耳熟能詳?shù)膫鹘y(tǒng)瀑布模型(Waterfall)。在2017年做自動(dòng)化運(yùn)維平臺(tái)的項(xiàng)目中,我非常榮幸成為初始成員之一完整經(jīng)歷了項(xiàng)目的生命周期,感受到 Scrum 和 Kanban 的強(qiáng)大魅力。雖然項(xiàng)目已經(jīng)過去很久了,但是敏捷開發(fā)Agile的思想在平時(shí)的工作中都能帶給我非常多的幫助,我想把自己的心得和體會(huì)做下分享,本文主要通過分享幾個(gè)簡(jiǎn)短有趣的視頻讓大家更快的熟悉Agile,并強(qiáng)烈推薦各位可以在實(shí)際項(xiàng)目中實(shí)踐和靈活應(yīng)用。
敏捷開發(fā)Agile中Scrum與Kanban的實(shí)踐
更新歷史
2019年06月07日 - 初稿
閱讀原文 - https://wsgzao.github.io/post/agile/
擴(kuò)展閱讀
視頻分享
以下視頻建議優(yōu)先觀看,有助于理解Agile和Scrum
Agile Product Ownership in a Nutshell
https://www.bilibili.com/video/av53884097
7 分鐘視頻:什么是敏捷開發(fā) Scrum
https://www.bilibili.com/video/av21945150/
Agile基礎(chǔ)知識(shí)掃盲
什么是敏捷開發(fā)?
敏捷開發(fā) (Agile Development) 是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。
怎么理解呢?首先,我們要理解它不是一門技術(shù),它是一種開發(fā)方法,也就是一種軟件開發(fā)的流程,它會(huì)指導(dǎo)我們用規(guī)定的環(huán)節(jié)去一步一步完成項(xiàng)目的開發(fā);而這種開發(fā)方式的主要驅(qū)動(dòng)核心是人;它采用的是迭代式開發(fā);
為什么說是以人為核心?
我們大部分人都學(xué)過瀑布開發(fā)模型,它是以文檔為驅(qū)動(dòng)的,為什么呢?因?yàn)樵谄俨嫉恼麄€(gè)開發(fā)過程中,要寫大量的文檔,把需求文檔寫出來后,開發(fā)人員都是根據(jù)文檔進(jìn)行開發(fā)的,一切以文檔為依據(jù);而敏捷開發(fā)它只寫有必要的文檔,或盡量少寫文檔,敏捷開發(fā)注重的是人與人之間,面對(duì)面的交流,所以它強(qiáng)調(diào)以人為核心。
什么是迭代?
迭代是指把一個(gè)復(fù)雜且開發(fā)周期很長(zhǎng)的開發(fā)任務(wù),分解為很多小周期可完成的任務(wù),這樣的一個(gè)周期就是一次迭代的過程;同時(shí)每一次迭代都可以生產(chǎn)或開發(fā)出一個(gè)可以交付的軟件產(chǎn)品。
什么是 Scrum?
Scrum 的英文意思是橄欖球運(yùn)動(dòng)的一個(gè)專業(yè)術(shù)語,表示 “爭(zhēng)球” 的動(dòng)作;把一個(gè)開發(fā)流程的名字取名為 Scrum,我想你一定能想象出你的開發(fā)團(tuán)隊(duì)在開發(fā)一個(gè)項(xiàng)目時(shí),大家像打橄欖球一樣迅速、富有戰(zhàn)斗激情、人人你爭(zhēng)我搶地完成它,你一定會(huì)感到非常興奮的。
而 Scrum 就是這樣的一個(gè)開發(fā)流程,運(yùn)用該流程,你就能看到你團(tuán)隊(duì)高效的工作。
Scrum 框架
Scrum 創(chuàng)造性地發(fā)明了很多概念,請(qǐng)大家結(jié)合實(shí)踐來理解
3 Roles:三種角色
產(chǎn)品經(jīng)理 (Product Owner),簡(jiǎn)稱PO,負(fù)責(zé)產(chǎn)品的需求、進(jìn)度、目標(biāo)。
項(xiàng)目經(jīng)理 (Scrum Master),簡(jiǎn)稱SM,俗稱敏捷教練,負(fù)責(zé)阻擋外界對(duì)開發(fā)團(tuán)隊(duì)干擾,保證團(tuán)隊(duì)順利工作。
團(tuán)隊(duì)成員 (Scrum Team) ,一般 5~10 人,包括開發(fā)、測(cè)試和運(yùn)維等,不僅需要技術(shù)能力,還需要很強(qiáng)的溝通能力和自我管理能力。
4 Meetings:四種會(huì)議類型,項(xiàng)目開發(fā)周期,一般2-4周
沖刺規(guī)劃會(huì)議(Sprint Plan Meeting),在啟動(dòng)每個(gè) Sprint 前召開,PO和團(tuán)隊(duì)成員將 backlog 分解小模塊制定任務(wù)優(yōu)先級(jí),團(tuán)隊(duì)成員確認(rèn)理解需求并計(jì)算小模塊的工作量。
每日站立會(huì)議(Scrum Standup Meeting),開發(fā)團(tuán)隊(duì)成員召開,一般為 5-15 分鐘站立式,每個(gè)開發(fā)成員匯報(bào)昨天做了什么,今天計(jì)劃做什么,是否遇到障礙?
沖刺評(píng)審會(huì)議 (Sprint Review Meeting),在每個(gè) Sprint 結(jié)束后,將這個(gè) Sprint 的工作成果演示給 PO、客戶、老板和其他相關(guān)的人員。
沖刺回顧會(huì)議(Sprint Retrospective Meeting),對(duì)剛結(jié)束的 Sprint 進(jìn)行總結(jié)。會(huì)議的參與人員為團(tuán)隊(duì)開發(fā)的內(nèi)部人員。一般該會(huì)議為 1 小時(shí)。
4 工作成果:
產(chǎn)品積壓訂單 (Product Backlog),可以預(yù)知的所有任務(wù),包括功能性的和非功能性的所有任務(wù)
沖刺積壓訂單: (Sprint Backlog),在 1 個(gè) Sprint 周期內(nèi)所需要完成的任務(wù)
燃盡圖: (Burndown Chart),在 1 個(gè) Sprint 周期內(nèi),工時(shí) / 工作量的二維圖表
障礙積壓訂單:(Impediments List),Scrum 負(fù)責(zé)人要維護(hù)一個(gè)障礙列表
參考文章
淺談 Scrum 敏捷開發(fā):4 個(gè)輸入 / 輸出、3 個(gè)關(guān)鍵物、3 個(gè)會(huì)議
http://www.woshipm.com/pd/797439.html
Scrum vs Waterfall vs Agile vs Lean vs Kanban
https://www.archimetric.com/scrum-vs-%E7%80%91%E5%B8%83-vs-%E6%95%8F%E6%8D%B7-vs-%E7%B2%BE%E7%9B%8A-vs-%E7%9C%8B%E6%9D%BF/
Scrum in 3 Minutes
https://www.visual-paradigm.com/scrum/scrum-in-3-minutes/
Kanban
最簡(jiǎn)單的模式莫過于 To Do | Doing | Done
看板是日本的 “視覺信號(hào)” 或 “卡片”。豐田線路工人使用看板來表示制造過程中的步驟。作為精益的一部分,該系統(tǒng)的高度視覺性使得團(tuán)隊(duì)可以更輕松地溝通需要完成的工作和何時(shí)完成。它還標(biāo)準(zhǔn)化了線索和精煉過程,有助于減少浪費(fèi)和最大化價(jià)值。與 scrum sprint board 類似,看板跟蹤 “做 - 做 - 完成” 活動(dòng),但它限制了 “正在進(jìn)行的” 活動(dòng)的數(shù)量(該數(shù)量由團(tuán)隊(duì)經(jīng)理定義,不能超過)。

項(xiàng)目管理工具推薦
Trello - https://trello.com/
Jira - https://www.atlassian.com/software/jira
Confluence - https://www.atlassian.com/software/confluence