
敏捷是什么
它是一個(gè)框架,一種理念,強(qiáng)調(diào)持續(xù)從客戶那獲得反饋,并根據(jù)優(yōu)先級(jí)進(jìn)行產(chǎn)品迭代。
敏捷宣言
- 個(gè)體和互動(dòng) 高于 流程和工具
- 工作軟件 高于 詳盡的文檔
- 客戶協(xié)作 高于 合同談判
- 響應(yīng)變化 高于 遵循計(jì)劃
敏捷宣言闡述4個(gè)價(jià)值觀:
- 以人為本:重視個(gè)體間的合作互動(dòng)
- 目標(biāo)導(dǎo)向:我們最終交付的是“可使用的軟件”,而不是一堆繁重的文檔
- 客戶為先:理解客戶需求,與客戶合作
- 擁抱改變:客戶每一次提出新的要求,都是在幫我們逐步逼近事實(shí)真相
這4點(diǎn)并不是讓團(tuán)隊(duì)放棄工具,文檔,計(jì)劃,而是將精力放在更核心的事上:人、產(chǎn)品模型、協(xié)作和迭代。
敏捷開發(fā)的12項(xiàng)原則
1. 我們最重要的目標(biāo),是通過(guò)持續(xù)不斷地及早交付有價(jià)值的軟件使客戶滿意。
2. 欣然面對(duì)需求變化,即使在開發(fā)后期也一樣。為了客戶的競(jìng)爭(zhēng)優(yōu)勢(shì),敏捷過(guò)程掌控變化。
3. 經(jīng)常地交付可工作的軟件,相隔幾星期或一兩個(gè)月,傾向于采取較短的周期。
4. 業(yè)務(wù)人員和開發(fā)人員必須相互合作,項(xiàng)目中的每一天都不例外。
5. 激發(fā)個(gè)體的斗志,以他們?yōu)楹诵拇罱?xiàng)目。提供所需的環(huán)境和支援,輔以信任,從而達(dá)成目標(biāo)。
6. 不論團(tuán)隊(duì)內(nèi)外,傳遞信息效果最好效率也最高的方式是面對(duì)面的交談。
7. 可工作的軟件是進(jìn)度的首要度量標(biāo)準(zhǔn)。
8. 敏捷過(guò)程倡導(dǎo)可持續(xù)開發(fā)。責(zé)任人、開發(fā)人員和用戶要能夠共同維持其步調(diào)穩(wěn)定延續(xù)。
9. 堅(jiān)持不懈地追求技術(shù)卓越和良好設(shè)計(jì),敏捷能力由此增強(qiáng)。
10. 以簡(jiǎn)潔為本,它是極力減少不必要工作量的藝術(shù)。
11. 最好的架構(gòu)、需求和設(shè)計(jì)出自自組織團(tuán)隊(duì)。
12. 團(tuán)隊(duì)定期地反思如何能提高成效,并依此調(diào)整自身的舉止表現(xiàn)。
我認(rèn)為,在敏捷實(shí)踐的過(guò)程中,如果遇到不知道如何推進(jìn)的問(wèn)題時(shí),就可以從這12個(gè)原則中去尋找答案。
敏捷落地的可行性
評(píng)估敏捷和團(tuán)隊(duì)成員的三觀是否符合
可以嘗試問(wèn)以下5個(gè)問(wèn)題:
你是否會(huì)愿意接手目標(biāo)不明確的項(xiàng)目?
目標(biāo)不明確,是會(huì)讓參加項(xiàng)目的人在一段時(shí)間內(nèi)迷茫,痛苦。因?yàn)檫@段時(shí)間里團(tuán)隊(duì)會(huì)遭遇到很多的質(zhì)疑和挑戰(zhàn)。敏捷項(xiàng)目管理中有句話,“快速失敗”。而且敏捷過(guò)程提倡可持續(xù)開發(fā),團(tuán)隊(duì)不斷從錯(cuò)誤中積累學(xué)習(xí)并持續(xù)迭代。這意味著我們的團(tuán)隊(duì)需要有勇氣,有好奇心,有信心,穩(wěn)定持續(xù)地等待“撥云看月”的時(shí)刻。你會(huì)如何規(guī)避項(xiàng)目風(fēng)險(xiǎn)?
你的團(tuán)隊(duì)能有多靈活?
公司階層制度嚴(yán)格嗎?
你怎么衡量進(jìn)度?怎么定義成功?
影響敏捷落地成功概率,除了團(tuán)隊(duì)的價(jià)值觀,還會(huì)受到組織架構(gòu),組織文化的影響。(“皮之不存毛將焉附”)
如何實(shí)施敏捷開發(fā)
Scrum + 看板(Jira Tool)
Scrum
3355
3個(gè)核心角色
Scrum Master(敏捷教練):對(duì)應(yīng)敏捷團(tuán)隊(duì)的PM(項(xiàng)目經(jīng)理),職責(zé)是促進(jìn)團(tuán)隊(duì)的工作,幫助團(tuán)隊(duì)熟悉與掌握敏捷的價(jià)值觀與框架,幫助團(tuán)隊(duì)排除影響生產(chǎn)力的障礙,保護(hù)團(tuán)隊(duì)不受打擾。
Product Owner(產(chǎn)品負(fù)責(zé)人):對(duì)應(yīng)敏捷團(tuán)隊(duì)的BA(需求分析師),職責(zé)是定義需求,定義需求的優(yōu)先級(jí),定義需求的驗(yàn)收標(biāo)準(zhǔn),定義產(chǎn)品發(fā)布內(nèi)容與日期。
Scrum Team(敏捷團(tuán)隊(duì)):通常來(lái)講是敏捷的全功能團(tuán)隊(duì),對(duì)交付負(fù)責(zé),協(xié)作開發(fā),可能跨職能部門,自組織式的扁平化團(tuán)隊(duì)。
3個(gè)工件
- 產(chǎn)品待辦事項(xiàng) (Product Backlog):即產(chǎn)品視角的需求清單,由 Product Owner 負(fù)責(zé)維護(hù),包括增刪及優(yōu)先級(jí),用戶故事是其中一種最佳實(shí)踐,每項(xiàng)需求都需要描述其外部?jī)r(jià)值。
- 迭代待辦事項(xiàng) (Sprint/Iteration Backlog):即此次迭代周期內(nèi)規(guī)劃要完成的內(nèi)容,由團(tuán)隊(duì)評(píng)估和選擇產(chǎn)品待辦事項(xiàng)中中哪些放入迭代待辦事項(xiàng),團(tuán)隊(duì)需要一起定義“完成”的標(biāo)準(zhǔn)。
- 迭代產(chǎn)出成果(也叫迭代可交付產(chǎn)品增量 ,Increment):即迭代結(jié)束后可對(duì)外發(fā)布的產(chǎn)品功能增量部分,需要關(guān)注其是可工作的軟件功能增量,需要在成果展示會(huì)議(showcase) 上進(jìn)行演示。
User stroy
Backlog由很多的User story組成。User story一般格式:
As a user, I need ...., so that ....
5個(gè)關(guān)鍵事件
- 迭代 (Sprint/Iteration):1-4周,固定周期,固定時(shí)間開始,固定時(shí)間結(jié)束。
- 迭代規(guī)劃會(huì) (Sprint/Iteration Planning Meeting):核心議題是下一個(gè)迭代要實(shí)現(xiàn)的目標(biāo)和范圍,對(duì)產(chǎn)品待辦事項(xiàng)中的事項(xiàng)進(jìn)行估算,以作為是否放入下個(gè)迭代的參考,輸入是產(chǎn)品待辦事項(xiàng) ,輸出有
- Sprint goal
- 迭代待辦事項(xiàng) Sprint Backlog
- Timebox
- Team capacity
- Sprint Release 計(jì)劃
- 每日站會(huì) (Daily Standup):站會(huì)的目標(biāo)是促進(jìn)信息在團(tuán)隊(duì)內(nèi)共享與透明,回答3個(gè)問(wèn)題
- 本次會(huì)議之前,我做了哪些事情?
- 本次會(huì)議之后,我準(zhǔn)備做什么事情?
- 目前我是否碰到障礙,是否需要幫助?
- 成果展示會(huì)議 (Review/Showcase):在迭代結(jié)束開,展示本迭代的產(chǎn)出,團(tuán)隊(duì)全體參與,邀請(qǐng)相關(guān)干系人參與提供反饋。
評(píng)估后的有效反饋將流向Product Backlog
- 回顧會(huì) ( Retrospective):團(tuán)隊(duì)一起復(fù)盤本迭代的過(guò)程,總結(jié)經(jīng)驗(yàn)與教訓(xùn),并形成切實(shí)可行的改進(jìn)清單。
- Brag (Good to maintain)
- Drag (What to move on)
- Places to improve in next Sprint (Top1-3)
過(guò)程監(jiān)控中團(tuán)隊(duì)溝通的工具
-
Burnup Chart 燃燒圖
WeChat Image_20210806151222.png
顯示項(xiàng)目的總體目標(biāo),最初的計(jì)劃,現(xiàn)狀,Gap還有Trend。
- Burndown Chart 燃盡圖
顯示一個(gè)Sprint里User story的完成情況。
-
Velocity 速度
Sprint Velocity是團(tuán)隊(duì)在當(dāng)前Sprint完成的User story point。
Average Velocity 一般是已經(jīng)完成的Sprint的Velocity的平均值。
在Burnup圖中,origin plan里的velocity的值一般參考過(guò)去項(xiàng)目Velocity。 -
DoD Definition of Done
評(píng)估User story 怎么算完成.
當(dāng)DoD全都完成后,user story移交給PO review, (依據(jù)可接受標(biāo)準(zhǔn)Acceptance Criteria)決定是否close user story.
內(nèi)容示例:
- 設(shè)計(jì)文檔,設(shè)計(jì)review
- 完成單元測(cè)試,自測(cè)
- Test Case review
- Bugs resolved (no major bug)
- 版本發(fā)布
...
-
DoR Definition of Ready
評(píng)估User story 怎么算可以開始。
內(nèi)容示例:
- 詳細(xì)描述
- 可接受標(biāo)準(zhǔn)Acceptance Criteria
- 優(yōu)先級(jí)
- ...
5大價(jià)值觀
- 承諾 Commitment - 愿意對(duì)目標(biāo)做出承諾;
- 專注 Focus – 全身心都用到承諾的工作上去;
- 開放 Openness – 團(tuán)隊(duì)內(nèi)所有信息對(duì)所有人開放;
- 尊重 Respect – 每個(gè)人都有他獨(dú)特的價(jià)值和經(jīng)驗(yàn);
- 勇氣 Courage – 勇于承諾,履行承諾,敢于說(shuō)不。
曾看到一篇文章,講一個(gè)爸爸用敏捷的方式帶孩子管理每天的事情。很有啟發(fā),所以貼上:
他有一段解釋敏捷價(jià)值觀的話:最后給大家一個(gè)忠告,如果真正想用敏捷的思維培養(yǎng)好孩子,時(shí)刻對(duì)照自己是否做到敏捷中關(guān)鍵的五大特性:
勇氣(鼓勵(lì)讓孩子迎接挑戰(zhàn),說(shuō)出真相)
開放(讓孩子有更多的自主權(quán)選擇學(xué)習(xí)目標(biāo))
尊重(尊重孩子們的每個(gè)意見和想法,不隨便以身份去批評(píng)打壓孩子)
承諾(時(shí)刻關(guān)注孩子們和自己的任務(wù)承諾,答應(yīng)就要做到)
專注(讓孩子們學(xué)會(huì)一次只做一件事,減少干擾)
Kanban 看板
一直使用的是Jira Board, 看板的好處
- 可視化
-
WIP原則
限制在制品WIP數(shù)量,專注一次做一件事 - 明確下一步行動(dòng)
實(shí)踐中常見的問(wèn)題 (解決方案示例待完善)
- Daily Standup 遲到
- Sprint時(shí)間過(guò)半,但還沒(méi)有user story 完成
- 跟外部部門合作受阻,提的問(wèn)題處理進(jìn)展不清楚
- 測(cè)試環(huán)境的硬件版本不統(tǒng)一
- 多語(yǔ)言測(cè)試的設(shè)備不夠
- Sprint 最后幾天大家節(jié)奏明顯加快,甚至需要加班
- 需求中途變更,Scope增大
- 評(píng)估時(shí)間不夠
- User story開發(fā)完成,不知道交付給誰(shuí)測(cè)試
- 。。。
我的感想
兩段Scrum Master實(shí)踐經(jīng)歷,讓我從一個(gè)對(duì)Scrum 懵懂朦朧的狀態(tài),成長(zhǎng)為一個(gè)掌握基本功的Facilitator。
接下來(lái)面臨的課題有:
- 如何從使用推力轉(zhuǎn)換成使用拉力而促成合力
這涉及團(tuán)隊(duì)溝通,協(xié)調(diào)能力,以及個(gè)人影響力的打造。 - 如何從容應(yīng)對(duì)變化,包括來(lái)自需求,執(zhí)行等
- 結(jié)合實(shí)踐深入理解體會(huì)敏捷的價(jià)值觀
