敏捷概述
背景
敏捷開發(fā)最早被提出應用于軟件開發(fā)管理流程中。隨著時代發(fā)展,軟件規(guī)模和復雜度激增,需求變化加快,軟件開發(fā)過程日益“重型化”,因此輕量級的,更能適應變化的敏捷軟件開發(fā)方法被普遍認可并迅速發(fā)展流行。
敏捷宣言(原則)
個體和交互 勝過 過程和工具
可以工作的軟件 勝過 面面俱到的文檔
客戶合作 勝過 合同談判
響應變化 勝過 遵循計劃
認識敏捷
統(tǒng)一認識:敏捷=理念(敏捷核心思想)優(yōu)秀實踐(敏捷的經(jīng)驗積累)具體應用(結(jié)合自身,靈活應用)
理念
-
聚焦客戶(視覺)價值(Value),消除浪費
- 部分完成但沒最終落地的工作。
- 開發(fā)完成但沒有被客戶應用的特性。
- 人員流動導致經(jīng)驗不能累計,重復學習。
- 移交導致信息丟失。
- 任務切換(研究表明多任務工作會導致效率下降20%-40%)。
- 因任務或資源互相依賴而導致工作停滯。
- 缺陷,解決缺陷本身就是浪費,而且缺陷越遺留到后面浪費越大。
-
激發(fā)團隊(Team)潛能,加強協(xié)作
-
激發(fā)團隊
- 通過目標牽引團隊自主工作
- 當團隊自管理時效率最高
- 當團隊成員不被打擾時,工作效率最高
- 當團隊解決自我問題時,提升最快
- 團隊成員共同參與計劃制定、任務安排,關(guān)注團隊目標、共擔責任
- 人們對自己做出的承諾比別人要求的更認真
- 人們會盡力做到最好
- 在強大的壓力下努力工作,會自然降低對質(zhì)量的要求
-
溝通協(xié)作
- 廣泛的面對面的交流是團隊工作高效的方式
- 白板溝通 優(yōu)于 電話溝通 優(yōu)于 郵件溝通 優(yōu)于 文檔、錄制的音視頻
-
激發(fā)團隊
-
不斷調(diào)整以適應(Adapting)變化
-
適應變化
- 認清“客戶是逐步發(fā)現(xiàn)真正的需求”。
- 小批量快速交付是關(guān)鍵。
- 通過迭代計劃不斷調(diào)整以適應需求變化
-
應持續(xù)保持良好的架構(gòu)
- 良好的架構(gòu)是適應變化的基石
- 軟件開發(fā)特點是內(nèi)容龐大、內(nèi)容持續(xù)增長、持續(xù)周期長,因此需要良好的架構(gòu)來保證長期的演進
- 優(yōu)秀的架構(gòu)通過可擴展性來很好的適應需求的變化,對敏捷起到支持作用,相反拙劣的架構(gòu)會阻礙敏捷
- 良好架構(gòu)有助于定制合適的增量開發(fā)/集成計劃,使分層分級的可持續(xù)集成更加容易
- 架構(gòu)需要盡早驗證和持續(xù)維護
- 通過迭代來實現(xiàn)和驗證架構(gòu),有利于架構(gòu)的盡早穩(wěn)定
- 特殊效果表現(xiàn)需識別影響架構(gòu)的需求,優(yōu)先實現(xiàn),規(guī)避架構(gòu)風險
- 通過重構(gòu)及時維護和優(yōu)化架構(gòu),使架構(gòu)保持生命力
- 利用多層次的反饋不斷調(diào)整以逼近目標
- 良好的架構(gòu)是適應變化的基石
-
適應變化
實踐
-
因地制宜選擇合適的敏捷實踐
-
敏捷團隊(SCRUM)
-
產(chǎn)品負責人ProductOwner(PO)-產(chǎn)品經(jīng)理/游戲策劃/導演
負責產(chǎn)品,代表相關(guān)的利益
提供愿景
代表利益相關(guān)人(如觀眾、Marketing、管理者等),對產(chǎn)品投資回報負責
確定產(chǎn)品發(fā)布計劃
定義產(chǎn)品并確定優(yōu)先級
驗收迭代結(jié)果.并根據(jù)驗收結(jié)果和需求變化刷新需求清單和優(yōu)先級
-
SCRUM主管Scrum Master(SM):
確保Scurm正確使用和收益最大化,但是不做決定(不命令和控制Team)
輔導團隊正確應用敏捷實踐
引導團隊建立并遵守規(guī)則
保護團隊不受打擾
推動解決團隊遇到的障礙
激勵團隊
-
開發(fā)團隊(Team):
負責自我管理開發(fā)產(chǎn)品的人組成的跨職能團隊
負責估計工作量并根據(jù)自身能力找出最佳方案完成任務且保證交付質(zhì)重
向OP和利益相關(guān)人演示工作成果
團隊自我管理、持續(xù)改進
-
-
工作件
-
產(chǎn)品Backlog(需求清單)
- 什么是產(chǎn)品Backlog
- 經(jīng)過優(yōu)先級排序的動態(tài)刷新的產(chǎn)品需求清單,用來制定發(fā)布計劃和迭代計劃。
- 產(chǎn)品Blocklog的好處
- 通過需求的動態(tài)管理應對變化,避免浪費;
- 易于優(yōu)先交付對用戶價值高的需求。
- 產(chǎn)品Blocklog關(guān)鍵要點
- 清楚表述列表中每個需求任務對用戶帶來的價值,做為優(yōu)先級排序的重要參考;
- 動態(tài)的需求管理而非"凍結(jié)"方式,PO持續(xù)地管理和及時刷新需求清單,在每輪迭代前,都要重新篩選出高優(yōu)先級需求進入本輪迭代;
- 迭代的需求分析過程,而非一次性分析清楚所有需求(只對近期迭代要做的需求進行詳細分析,其它需求停留在粗粒度)
- [圖片上傳失敗...(image-e6b495-1543726686826)]
- 什么是產(chǎn)品Backlog
-
迭代Backlog
- 什么是迭代
- 迭代Backlog是團隊在一輪迭代中的"任務"(Task)清單,是團隊的詳細迭代開發(fā)計劃;
- 當團隊接收從產(chǎn)品Blocklog挑選出要在本輪迭代實現(xiàn)的需求時,召開團隊迭代計劃會議,將需求轉(zhuǎn)化為具體的"任務";
- 每項任務信息包括當前剩余工作量和賁任人。
- 好處
- 將需求分解成更細小的任務,利于對迭代內(nèi)進度進行精確控制;
- 剩余工作量可用來實時跟蹤團隊當前進展。
- 關(guān)鍵要點
- '任務"由團隊成員自己分解和定義,而不是上級指派,支撐需求完成的所有工作都可以列為任務;
- 任務要落實到具體的賁任人;
- 任務粒度要小,工作量大于兩天的任務要進一步分解;
- 用小時做為任務剩余工作量的估計單位,并每日重估計和刷新。
- 什么是迭代
-
完成標準
- 什么的完成標準
- 基于"隨時可向用戶發(fā)布"的目標制定衡量團隊工作是否已完成的標準,由團隊和PO形成共識;
- 好處
- 共同協(xié)商的完成標準是團隊的自我承諾,團隊會更認真;
- 用于準確評估團隊工作進展;
- 清晰和明確的完成標準保證了每次迭代是高質(zhì)量的。
- 關(guān)鍵要點
- 團隊自協(xié)商:團隊根掮項目實際情況來定義完成標準,并嚴格遵守;
- 有層次:一般分為三個層次:Story級別,迭代級和發(fā)布級,每個級別都有各自的完成標準。
- 什么的完成標準
-
產(chǎn)品Backlog(需求清單)
-
管理實踐
-
Sprint計劃會議
- 什么是計劃會議
- 每輪迭代啟動前,團隊共同討論本輪迭代詳細開發(fā)計劃的過程,輸入是產(chǎn)品Backlog,輸出是團隊迭代Backlog
- 多團隊迭代計劃會議要分層召開
- 版本迭代計劃會議:將產(chǎn)品Backlog (需求)分配給團隊;
- 團隊迭代計劃會議:將選取的產(chǎn)品Backlog需求轉(zhuǎn)換成迭代Backlog〔任務),分配給團隊成員;
- 迭代計劃會議內(nèi)容:
- 澄清需求、對"完成標準"達成一致
- 工作量估計、根據(jù)團隊能力確定本輪迭代交付內(nèi)容;
- 細化、分配迭代任務和初始工作計劃。
- [圖片上傳失敗...(image-445853-1543726686826)]
- 好處
- 通過充分討論,使團隊成員對任務和完成標準理解一致;
- 團隊共同參與,促進團隊成員更認真對待自己的承偌。
- 要點
- 充分參與:SM確保PO和Team充分參與討論,達成理解一致;
- 相互承諾:Team承諾完成迭代Backlog中的需求并這到"完成標準”,PO承諾在短迭代周期不增加需求〔2-4周);
- 確定內(nèi)部任務:Team和PO辦商把一些內(nèi)部任務放入迭代中(例如重構(gòu)、持續(xù)集成環(huán)境搭建4等),由PO考慮并與其他外部需求一起排序。
- 什么是計劃會議
-
每日站會
- 什么是站會
- 每日工作前,團隊成員的例行溝通機制,由SM組織,Team成員全體站立參加
- 聚焦在下面的三個主題:
- 我昨天為本項目做了什么?
- 我計劃今天為本項目做什么?
- 我需要什么幫助以更高效的工作?
- 好處
- 增加團隊凝聚力,產(chǎn)生積極的工作氛圍
- 及時黍露風險和問題;
- 促進團隊內(nèi)成員的溝通和協(xié)調(diào)。
- 要點
- 準時開始:按計劃會議制定的時間地點開會,形成團隊成員的自然習慣;
- 高效會議:會議限時15分鐘,每個人都保持站立,依次發(fā)言,不討論與會議三個主題無關(guān)的事情〔如技術(shù)解決方案等);
- 問題跟蹤:SM應該記錄下所有的問題并跟蹤解決;
- 什么是站會
-
迭代驗收(評審會議)
- 由SM組織,PO和用戶代表(外部或內(nèi)部利益相關(guān)人)負責驗收、Team負責演示
-
回顧會議
- 什么是回顧會議
- 在每輪迭代結(jié)束后舉行的會議,目的是分享好的經(jīng)驗和發(fā)現(xiàn)改逬點,促進團隊不斷進步;
- 圍繞如下三個問題:
- 本次迭代有哪些做得好
- 本次迭代我們在哪些方面還能做得更好
- 我們在下次迭代準備在哪些方面改進?
- 好處
- 激勵團隊成員;
- 幫助團隊挖掘優(yōu)秀經(jīng)驗并繼承;
- 避免團隊犯重復的錯誤;
- 營造團隊自主改進的氛圍。
- 要點
- 會議氣氛:Team全員參加,氣氛寬松自由,暢所欲言,頭腦風暴發(fā)現(xiàn)問題,共同分析根因;
- 關(guān)注重點:Team共同討論優(yōu)先級,將精力放在最需要的地方(關(guān)注幾個改進就夠了);
- 會議結(jié)論要跟蹤閉環(huán):可以放入迭代Backlog中。
- 什么是回顧會議
-
可視化管理
- 項目跟蹤
- To Do
- Doing
- Done
- Finished
- 故事看板[圖片上傳失敗...(image-dd8ce4-1543726686826)]
- 項目跟蹤
-
Sprint計劃會議
-
技術(shù)實踐
敏捷特點:簡單、高效
- 所有人對項目的成功負責
- 所有人由需求驅(qū)動工作,需求一旦確定,就不應該修改了
- 所有人都需要跨領(lǐng)域的工作
- 持續(xù)交付、迭代前進
- 小步前進、持續(xù)改進
首次實施敏捷的步驟
- 思想動員
- 差距分析
- 環(huán)境和工具準備
- 敏捷實踐技能準備,技術(shù)能力準備
- 確定開發(fā)模型和擬應用實踐
- 敏捷實施
- 回顧評估與調(diào)整改進
- 激勵表彰
- 項目結(jié)束總結(jié)