敏捷軟件開(kāi)發(fā)宣言
<big><big>
個(gè)體與交互 勝過(guò) 流程和工具
可用的軟件 勝過(guò) 完備的文檔
客戶合作 勝過(guò) 合同談判
響應(yīng)變化 勝過(guò) 遵循計(jì)劃
</big></big>
敏捷宣言遵循的原則
- 我們的最高目標(biāo)是通過(guò)盡早仆救、持續(xù)地交付有價(jià)值的軟件來(lái)滿足客戶
- 即使到了開(kāi)發(fā)后期也歡迎改變需求太示,敏捷過(guò)程利用變化來(lái)為客戶創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)
- 不斷交付可用的軟件处坪,周期越短越好
- 在整個(gè)項(xiàng)目開(kāi)發(fā)期間魁索,業(yè)務(wù)人員與開(kāi)發(fā)人員必須天天都在一起工作
- 善于激勵(lì)項(xiàng)目成員落萎,給他們提供所需的環(huán)境和支持棒搜,并相信他們能夠完成任務(wù)
- 無(wú)論是團(tuán)隊(duì)內(nèi)還是團(tuán)隊(duì)間潜必,最有效的溝通方法是面對(duì)面的交談
- 可用的軟件是衡量進(jìn)度的主要指標(biāo)
- 責(zé)任人、開(kāi)發(fā)者和用戶應(yīng)保持恒久穩(wěn)定的開(kāi)發(fā)速度
- 對(duì)技術(shù)的精益求精以及對(duì)設(shè)計(jì)的不斷完善將提升敏捷性
- 簡(jiǎn)潔是一門藝術(shù)魂仍,要盡最大可能減少不必要的工作
- 最佳的架構(gòu)拐辽、需求和設(shè)計(jì)出自于自組織的團(tuán)隊(duì)
- 團(tuán)隊(duì)要定期反省并調(diào)整團(tuán)隊(duì)行為以便更高效地工作
Scrum 最佳實(shí)踐
承諾 勇氣 專注 開(kāi)放 尊重
- 具備清晰且好記的愿景
- 擁有維護(hù)良好的產(chǎn)品代辦列表
- 產(chǎn)品代辦列表依照業(yè)務(wù)價(jià)值進(jìn)行排序
- 產(chǎn)品代辦列表中故事的大小由團(tuán)隊(duì)決定
- 舉行每日站立會(huì)議
- 使用燃盡圖
- Sprint 不能受到管理層以及客戶的干擾
- 團(tuán)隊(duì)交付的軟件必須符合“完成的定義”
- 舉辦協(xié)作式的評(píng)審會(huì)議
- 回顧會(huì)議的重點(diǎn)要放在改進(jìn)團(tuán)隊(duì)和組織的工作流程上
十大典型障礙
- 會(huì)議規(guī)則沒(méi)能被遵循
- 產(chǎn)品遠(yuǎn)景和 Sprint 目標(biāo)不清晰
- 沒(méi)有產(chǎn)品負(fù)責(zé)人負(fù)責(zé)回答提問(wèn)
- 產(chǎn)品待辦列表未能按商業(yè)價(jià)值區(qū)分優(yōu)先級(jí)
- 并不是所有負(fù)責(zé)交付產(chǎn)品的人員都是團(tuán)隊(duì)里的成員
- Scrum Master 還要處理其他任務(wù),不能集中精力
- 團(tuán)隊(duì)人數(shù)過(guò)多(多于7人)
- 團(tuán)隊(duì)沒(méi)有能坐在一起工作的空間
- 團(tuán)隊(duì)的 Sprint 待辦列表混亂
極限編程最佳實(shí)踐
溝通 簡(jiǎn)單 回饋 勇氣 尊重
-
結(jié)對(duì)編程
所有的產(chǎn)品軟件都是由兩個(gè)程序員擦酌、并排坐在一起在同一臺(tái)機(jī)器上構(gòu)建的俱诸。 -
計(jì)劃游戲
計(jì)劃是持續(xù)的、循序漸進(jìn)的赊舶。每2周睁搭,開(kāi)發(fā)人員就為下2周估算候選特性的成本,而客戶則根據(jù)成本和商務(wù)價(jià)值來(lái)選擇要實(shí)現(xiàn)的特性笼平。 -
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
程序員以非常短的循環(huán)周期工作园骆,他們先增加一個(gè)失敗的測(cè)試,然后使之通過(guò)寓调。 -
完整團(tuán)隊(duì)
開(kāi)發(fā)人員遇伞、業(yè)務(wù)分析師、測(cè)試人員等一起工作在一個(gè)開(kāi)放的場(chǎng)所中捶牢,他們是同一個(gè)團(tuán)隊(duì)的成員鸠珠。這個(gè)場(chǎng)所的墻壁上隨意懸掛著大幅的巍耗、顯著的圖表以及其他一些顯示他們進(jìn)度的東西。 -
持續(xù)集成
團(tuán)隊(duì)總是使系統(tǒng)完整地被集成渐排。 -
改進(jìn)設(shè)計(jì)
隨時(shí)改進(jìn)糟糕的代碼炬太。保持代碼盡可能的干凈、具有表達(dá)力驯耻。 -
客戶測(cè)試
作為選擇每個(gè)所期望的特性的一部分亲族,客戶定義出自動(dòng)驗(yàn)收測(cè)試來(lái)表明該特性可以工作。 -
編碼標(biāo)準(zhǔn)
系統(tǒng)中所有的代碼看起來(lái)就好像是被單獨(dú)一個(gè)非常值得勝任的人編寫的可缚。 -
集體代碼所有權(quán)
任何結(jié)對(duì)的程序員都可以在任何時(shí)候改進(jìn)任何代碼霎迫。 -
簡(jiǎn)單設(shè)計(jì)
團(tuán)隊(duì)保持設(shè)計(jì)恰好和當(dāng)前的系統(tǒng)功能相匹配。它通過(guò)了所有的測(cè)試帘靡,不包含任何重復(fù)知给,表達(dá)出了編寫者想表達(dá)的所有東西,并且包含盡可能少的代碼描姚。 -
系統(tǒng)隱喻
團(tuán)隊(duì)提出一個(gè)程序工作原理的公共景像涩赢。 -
可持續(xù)的速度
團(tuán)隊(duì)只有持久才有獲勝的希望。他們以能夠長(zhǎng)期維持的速度努力工作轩勘。他們保存精力筒扒,他們把項(xiàng)目看作是馬拉松長(zhǎng)跑,而不是全速短跑绊寻。
敏捷開(kāi)發(fā)最佳實(shí)踐
面向?qū)ο笤O(shè)計(jì)原則
-
SRP 單一職責(zé)原則
就一個(gè)類而言花墩,應(yīng)該僅有一個(gè)引起它變化的原因。 -
OCP 開(kāi)放-封閉原則
軟件實(shí)體(類澄步、模塊冰蘑、函數(shù)等)應(yīng)該是可以擴(kuò)展的,但是不可修改驮俗。 -
LSP 里斯科夫替換原則
子類型必須能夠替換掉它們的基類型懂缕。 -
DIP 依賴倒置原則
抽象不應(yīng)該依賴于細(xì)節(jié)允跑。細(xì)節(jié)應(yīng)該依賴于抽象王凑。 -
ISP 接口隔離原則
不應(yīng)該強(qiáng)迫客戶依賴于它們不用的方法。接口屬于客戶聋丝,不屬于它所在的類層次結(jié)構(gòu)索烹。 -
REP 重用發(fā)布等價(jià)原則
重用的粒度就是發(fā)布的粒度。 -
CCP 共同封閉原則
包中的所有類對(duì)于同一類性質(zhì)的變化應(yīng)該是共同封閉的弱睦。一個(gè)變化若對(duì)一個(gè)包產(chǎn)生影響百姓,則將對(duì)該包中的所有類產(chǎn)生影響,而對(duì)于其他的包不造成任何影響况木。 -
CRP 共同重用原則
一個(gè)包中的所有類應(yīng)該是共同重用的垒拢。如果重用了包中的一個(gè)類旬迹,那么就要重用包中的所有類。 -
ADP 無(wú)環(huán)依賴原則
在包的依賴關(guān)系圖中不允許存在環(huán)求类。 -
SDP 穩(wěn)定依賴原則
朝著穩(wěn)定的方向進(jìn)行依賴奔垦。 -
SAP 穩(wěn)定抽象原則
包的抽象程度應(yīng)該和其穩(wěn)定程度一致。
通用會(huì)議規(guī)則
縮寫詞:
- PB = Product Backlog/產(chǎn)品待辦列表
- SB = Sprint Backlog/Sprint 待辦列表
- SM = Scrum Master
- PO = Product Owner/產(chǎn)品負(fù)責(zé)人
基本要求
- 每次會(huì)議都要準(zhǔn)時(shí)開(kāi)始尸疆、準(zhǔn)時(shí)結(jié)束
- 每次會(huì)議都采取開(kāi)放形式椿猎,所有人都可以參加
會(huì)前準(zhǔn)備
- 提前邀請(qǐng)所有必須參會(huì)的人,讓他們有時(shí)間準(zhǔn)備
- 發(fā)送帶有會(huì)議目標(biāo)和意圖的會(huì)議綱要
- 預(yù)訂會(huì)議所需的全部資源:房間寿弱、投影儀犯眠、掛圖、主持設(shè)備症革,以及此次會(huì)議需要的其他東西
- 會(huì)前 24 小時(shí)發(fā)送提醒
- 準(zhǔn)備帶有會(huì)議規(guī)則的掛圖
會(huì)議推進(jìn)
- 展開(kāi)討論時(shí)會(huì)議的推進(jìn)人必須在場(chǎng)筐咧。他不能參與到具體討論中,但是他需要注意討論進(jìn)程地沮,如果討論參與者失去重點(diǎn)嗜浮,他還要將討論帶回正軌
- 推進(jìn)人展示會(huì)議的目標(biāo)和意圖
- 必要時(shí)推進(jìn)人可以商定由某個(gè)人撰寫會(huì)議記錄
- 推進(jìn)人可以記錄團(tuán)隊(duì)的意見(jiàn)或教授團(tuán)隊(duì)如何自己記錄文檔;而且推進(jìn)人可能會(huì)在掛圖上進(jìn)行記錄摩疑,將對(duì)話可視化
- 推進(jìn)人會(huì)使用類似“停車位”之類的工具來(lái)記錄與會(huì)議無(wú)關(guān)的議題供后續(xù)討論危融,從而保證會(huì)議圍繞重點(diǎn)進(jìn)行
- 推進(jìn)人會(huì)對(duì)會(huì)議進(jìn)行收尾,并進(jìn)行非常簡(jiǎn)短的回顧以傳達(dá)會(huì)議上所達(dá)成的共識(shí)(不超過(guò) 5 分鐘)
估算會(huì)議
- 與會(huì)者 = 團(tuán)隊(duì) + SM + PO + 用戶
- 時(shí)間 < 90 分鐘
會(huì)議目的
- 估算 PB 中的故事便于后續(xù)計(jì)劃 Sprint
- 讓團(tuán)隊(duì)成員知道項(xiàng)目接下來(lái)會(huì)有哪些事情要做
- 讓團(tuán)隊(duì)通過(guò)估算更深入地理解 PB 中的故事
會(huì)議輸入
- PO 根據(jù)業(yè)務(wù)價(jià)值排列好優(yōu)先級(jí)的 PB
會(huì)議過(guò)程
- PO 依次展示 PB 中的故事
- 每展示一個(gè)團(tuán)隊(duì)就對(duì)該故事進(jìn)行估算并記錄平均故事點(diǎn)數(shù)
- 如果其中兩個(gè)人的估算點(diǎn)數(shù)超過(guò)兩倍則分別說(shuō)明原因雷袋,然后重新估算
- 如果某個(gè)故事過(guò)大應(yīng)將其劃分為較小的故事然后進(jìn)行估算
注意:
- 只有團(tuán)隊(duì)能估算 PB 中的故事吉殃,PO 不參與估算
- 上一個(gè) Sprint 遺留下來(lái)的故事需要重新估算
- 不要討論技術(shù)細(xì)節(jié)
會(huì)議輸出
- 經(jīng)過(guò)估算和調(diào)整的 PB
計(jì)劃會(huì)議
- 與會(huì)者 = 團(tuán)隊(duì) + SM + PO + 用戶
- 時(shí)間 < 60 分鐘
會(huì)議目的
- 讓團(tuán)隊(duì)詳細(xì)了解最終用戶的真實(shí)需要
- 團(tuán)隊(duì)承諾他們本次 Sprint 能夠交付哪些內(nèi)容
會(huì)議輸入
- 經(jīng)過(guò)估算和排序的 PB
會(huì)議過(guò)程
- 團(tuán)隊(duì)依次討論 PB 中的故事
- 找出驗(yàn)收條件
- 找出非功能性需求(性能、安全……)
- 確定每個(gè)故事的驗(yàn)收測(cè)試用例
- 確定每個(gè)故事完成的定義
- SM 向團(tuán)隊(duì)正式提問(wèn)“是否能在本 Sprint 周期內(nèi)完成該故事”楷怒,如果是則放入本次 SB 中
- 確定本次 Sprint 要達(dá)成的目標(biāo)
注意:
- 只有團(tuán)隊(duì)能夠決定 SB 中可以包含哪些故事
會(huì)議輸出
- 選擇好的 SB
- 各個(gè)故事的驗(yàn)收測(cè)試用例
任務(wù)分解會(huì)議
- 與會(huì)者 = 團(tuán)隊(duì) + SM
- 時(shí)間 < 60 分鐘
會(huì)議目的
- 確定 SB 中各個(gè)故事的設(shè)計(jì)方案
- 會(huì)議結(jié)束后團(tuán)隊(duì)成員都知道如何完成每個(gè)故事
會(huì)議輸入
- 選擇好的 SB
會(huì)議過(guò)程
- 團(tuán)隊(duì)依次討 SB 中的故事
- 針對(duì)每個(gè)故事討論需要?jiǎng)?chuàng)建什么樣的架構(gòu)蛋勺,需要編寫什么樣的接口、類鸠删、組件抱完,需要新增或修改哪些數(shù)據(jù)表等
- 根據(jù)討論的結(jié)果創(chuàng)建任務(wù)
- 為每個(gè)任務(wù)估算時(shí)間(可選)
- 將故事和任務(wù)整理到任務(wù)板上并宣布本次 Sprint 正式開(kāi)始
注意:
- 不要分配任務(wù)
會(huì)議輸出
- 一些方案設(shè)計(jì)圖表
- 整理好的任務(wù)板
每日例會(huì)
- 與會(huì)者 = 團(tuán)隊(duì) + SM
- 時(shí)間 < 15 分鐘
會(huì)議目的
- 為每天的工作做計(jì)劃和調(diào)整
- 解決團(tuán)隊(duì)開(kāi)發(fā)過(guò)程中遇到的障礙
- 通過(guò)任務(wù)板幫助團(tuán)隊(duì)聚焦于每日活動(dòng)之上
- 讓團(tuán)隊(duì)成員彼此清楚各自的工作
會(huì)議輸入
- 任務(wù)板和燃盡圖
會(huì)議過(guò)程
- 團(tuán)隊(duì)在任務(wù)板旁站成一個(gè)圈
- 從左邊第一個(gè)人開(kāi)始,從任務(wù)板上取下其當(dāng)前的任務(wù)并向其他成員說(shuō)明目前的情況
- 如果沒(méi)有完成則放回進(jìn)行列并做好標(biāo)記
- 如果該任務(wù)已經(jīng)完成則將其放入完成列刃泡,然后領(lǐng)取新的任務(wù)并承諾完成時(shí)間
- 如果在完成該任務(wù)過(guò)程中遇到障礙則報(bào)告給 SM巧娱,同時(shí)在任務(wù)卡上做好標(biāo)記
- 和其他成員預(yù)約結(jié)對(duì)編程
- 其他成員對(duì)該任務(wù)有疑問(wèn)可隨時(shí)提出
注意:
- SM 站在圈外,團(tuán)隊(duì)不是向 SM 匯報(bào)工作
- SM 不要提問(wèn)題烘贴、不要移動(dòng)任務(wù)卡或更新燃盡圖
- 不要討論技術(shù)細(xì)節(jié)問(wèn)題禁添,可以會(huì)后單獨(dú)討論
- 不要在沒(méi)有準(zhǔn)備的情況下參會(huì)
- 進(jìn)行中的任務(wù)不要過(guò)多(一般不超過(guò) 4 個(gè))
會(huì)議輸出
- 更新后的任務(wù)板和燃盡圖
評(píng)審會(huì)議
- 與會(huì)者 = 團(tuán)隊(duì) + SM + PO + 用戶
- 時(shí)間 < 90 分鐘
會(huì)議目的
- 團(tuán)隊(duì)通過(guò)展示工作成果獲取反饋
- PO 驗(yàn)收?qǐng)F(tuán)隊(duì)的工作成果
會(huì)議輸入
- 已完成的故事列表
- 可演示的工作成果
會(huì)議過(guò)程
- PO 歡迎大家來(lái)參加本次評(píng)審會(huì)議
- PO 提醒大家本次 Sprint 要達(dá)成的目標(biāo)
- 團(tuán)隊(duì)根據(jù)已完成的故事列表依次展示新功能并讓大家嘗試新功能
- PO 或 SM 在卡片上記錄會(huì)議過(guò)程中的反饋
注意:
- 不要展示還不能發(fā)布的產(chǎn)品增量
- SM 不要負(fù)責(zé)展示結(jié)果
- 團(tuán)隊(duì)不要針對(duì) PO 展示
會(huì)議輸出
- 根據(jù)會(huì)上的反饋新增的待辦列表
回顧會(huì)議
- 與會(huì)者 = 團(tuán)隊(duì) + SM
- 時(shí)間 < 90 分鐘
會(huì)議目的
- 發(fā)現(xiàn)哪些方面需要改進(jìn)
會(huì)議輸入
- 燃盡圖,PB桨踪,SB
會(huì)議過(guò)程
- 宣布本次 Sprint 結(jié)束
- 準(zhǔn)備一張寫著“做得好”標(biāo)題和一張寫著“可改進(jìn)”標(biāo)題的掛圖
- 在每張掛圖上繪制一條帶有開(kāi)始和結(jié)束日期的時(shí)間線
- 從“做得好”開(kāi)始老翘,團(tuán)隊(duì)成員依次(包括 SM)在時(shí)間線上寫上認(rèn)為做得不錯(cuò)的事件并說(shuō)明
- 以同樣的方式完成“可改進(jìn)”議題
- 討論如何改進(jìn)并記錄在卡片上,如果是障礙則做好標(biāo)記
會(huì)議輸出
- 為了改進(jìn)而新增的待辦列表
用戶故事
用戶故事是從用戶的角度來(lái)描述用戶渴望得到的功能
故事三要素
- 角色:誰(shuí)要使用這個(gè)功能
- 活動(dòng):需要完成什么樣的功能
- 商業(yè)價(jià)值:為什么需要這個(gè)功能,這個(gè)功能帶來(lái)什么樣的價(jià)值
用戶故事模板
- 英文:As a <Role>, I want to <Activity>, so that <Business Value>
- 中文:作為一個(gè) <角色>, 我想要 <活動(dòng)>, 以便于 <商業(yè)價(jià)值>
注意:
- 用戶故事不能夠使用技術(shù)語(yǔ)言來(lái)描述铺峭,要使用用戶可以理解的業(yè)務(wù)語(yǔ)言來(lái)描述
Ron Jeffries 的 3 個(gè) C
- 卡片(Card):用戶故事一般寫在小的記事卡片上墓怀。卡片上可能會(huì)寫上故事的簡(jiǎn)短描述卫键,工作量估算等捺疼。
- 交談(Conversation):用戶故事背后的細(xì)節(jié)來(lái)源于和客戶或者產(chǎn)品負(fù)責(zé)人的交流溝通。
- 確認(rèn)(Confirmation):通過(guò)驗(yàn)收測(cè)試確認(rèn)用戶故事被正確完成永罚。
用戶故事的六個(gè)特性(INVEST原則)
- 獨(dú)立性(Independent):要盡可能的讓一個(gè)用戶故事獨(dú)立于其他的用戶故事啤呼。用戶故事之間的依賴使得制定計(jì)劃,確定優(yōu)先級(jí)呢袱,工作量估算都變得很困難官扣。通常我們可以通過(guò)組合用戶故事和分解用戶故事來(lái)減少依賴性。
- 可協(xié)商性(Negotiable):一個(gè)用戶故事的內(nèi)容要是可以協(xié)商的羞福,用戶故事不是合同惕蹄。一個(gè)用戶故事卡片上只是對(duì)用戶故事的一個(gè)簡(jiǎn)短的描述,不包括太多的細(xì)節(jié)治专。具體的細(xì)節(jié)在溝通階段產(chǎn)出卖陵。一個(gè)用戶故事卡帶有了太多的細(xì)節(jié),實(shí)際上限制了和用戶的溝通张峰。
- 有價(jià)值(Valuable):每個(gè)故事必須對(duì)客戶具有價(jià)值(無(wú)論是用戶還是購(gòu)買方)泪蔫。一個(gè)讓用戶故事有價(jià)值的好方法是讓客戶來(lái)寫下它們。一旦一個(gè)客戶意識(shí)到這是一個(gè)用戶故事并不是一個(gè)契約而且可以進(jìn)行協(xié)商的時(shí)候喘批,他們將非常樂(lè)意寫下故事撩荣。
- 可以估算性(Estimable):開(kāi)發(fā)團(tuán)隊(duì)需要去估計(jì)一個(gè)用戶故事以便確定優(yōu)先級(jí),工作量饶深,安排計(jì)劃餐曹。但是讓開(kāi)發(fā)者難以估計(jì)故事的問(wèn)題來(lái)自:對(duì)于領(lǐng)域知識(shí)的缺乏(這種情況下需要更多的溝通),或者故事太大了(這時(shí)需要把故事切分成小些的)敌厘。
- 短刑ê铩(Small):一個(gè)好的故事在工作量上要盡量短小,最好不要超過(guò)10個(gè)理想人/天的工作量,至少要確保的是在一個(gè)迭代或Sprint中能夠完成俱两。用戶故事越大饱狂,在安排計(jì)劃,工作量估算等方面的風(fēng)險(xiǎn)就會(huì)越大锋华。
- 可測(cè)試性(Testable):一個(gè)用戶故事要是可以測(cè)試的嗡官,以便于確認(rèn)它是可以完成的箭窜。如果一個(gè)用戶故事不能夠測(cè)試毯焕,那么你就無(wú)法知道它什么時(shí)候可以完成。一個(gè)不可測(cè)試的用戶故事例子:軟件應(yīng)該是易于使用的。
任務(wù)板
任務(wù)板以可視化的方式展示團(tuán)隊(duì)的工作
- 任務(wù)板只能由團(tuán)隊(duì)維護(hù)
- 盡量使用實(shí)體大白板
任務(wù)板有 3 列
-
準(zhǔn)備做
- 要完成一個(gè)故事纳猫,你得完成一些任務(wù)婆咸。在計(jì)劃會(huì)議上創(chuàng)建的任務(wù)以及后續(xù)添加的任務(wù)都應(yīng)該放在該列
-
進(jìn)行中
- 當(dāng)團(tuán)隊(duì)成員領(lǐng)取某個(gè)任務(wù)時(shí)將任務(wù)挪到該列
- 每日站會(huì)上會(huì)對(duì)該列中沒(méi)有完成的任務(wù)做一個(gè)標(biāo)記(如一個(gè)圓點(diǎn))
- 如果該列中的任務(wù)是因?yàn)檫^(guò)大而不能在一天內(nèi)完成則可以考慮將其分解為多個(gè)任務(wù)重新安排
- 如果一個(gè)任務(wù)因?yàn)檎系K無(wú)法完成應(yīng)該做一個(gè)標(biāo)記(如一個(gè)紅點(diǎn))
-
已完成
- 當(dāng)一個(gè)任務(wù)完成后,著手該任務(wù)的團(tuán)隊(duì)成員就可以將其放入該列并領(lǐng)取下一個(gè)任務(wù)
燃盡圖
記孜咴:跟蹤進(jìn)度要由團(tuán)隊(duì)來(lái)完成尚骄。
- 你必須要有一個(gè) Sprint 燃盡圖!
- 燃盡圖展示“燃盡”(即開(kāi)發(fā)完成)的故事點(diǎn)數(shù)侵续,而不是工作小時(shí)數(shù)
- 縱軸展示故事點(diǎn)數(shù)倔丈,橫軸展示當(dāng)前 Sprint 的天數(shù)
- 團(tuán)隊(duì)每天更新燃盡圖
- 燃盡圖要便于團(tuán)隊(duì)更新,沒(méi)必要讓它看起來(lái)很炫状蜗,也不要過(guò)于復(fù)雜需五、難以維護(hù)
角色
隱喻:我們是在拍電影!
Scrum Master = 電影導(dǎo)演
- Scrum Master 保護(hù)團(tuán)隊(duì)不受外界干擾
- 他不是團(tuán)隊(duì)的一部分轧坎,但是是團(tuán)隊(duì)的領(lǐng)導(dǎo)和推進(jìn)者
- 他提升 Scrum 團(tuán)隊(duì)的工作效率宏邮,控制 Scrum 中的“檢視和適應(yīng)”周期過(guò)程
- 他保護(hù)團(tuán)隊(duì),并與 Product Owner 一起將投資產(chǎn)出最大化
- 他確保所有的利益相關(guān)者都可以理解敏捷和尊重敏捷的理念
- 然而缸血,他不負(fù)責(zé)交付產(chǎn)品
團(tuán)隊(duì) = 演員
- 團(tuán)隊(duì)交付產(chǎn)品并對(duì)其質(zhì)量負(fù)責(zé)
- 團(tuán)隊(duì)與所有提出產(chǎn)品請(qǐng)求的人一起工作蜜氨,包括客戶和最終用戶,并共同創(chuàng)建 Product Backlog
- 團(tuán)隊(duì)分析 Product Backlog 的條目捎泻,藉此獲得足夠的信息以構(gòu)建產(chǎn)品
- 團(tuán)隊(duì)按照大家的共識(shí)來(lái)創(chuàng)建功能飒炎,開(kāi)發(fā)、測(cè)試 Backlog 條目并交付產(chǎn)品
- 團(tuán)隊(duì)自愿做出承諾笆豁,它對(duì)其工作產(chǎn)出負(fù)責(zé)厌丑,并且需要考慮其所屬組織和項(xiàng)目本身的實(shí)際情況
- 團(tuán)隊(duì)還會(huì)一直和 Product Owner 一起工作,以制定產(chǎn)品的戰(zhàn)略方向
管理層 = 制片廠老板
- Scrum 組織中的管理層非常重要渔呵,管理層要為 Scrum 團(tuán)隊(duì)搭建良好的環(huán)境怒竿,以確保團(tuán)隊(duì)能夠出色工作
- 管理層創(chuàng)建結(jié)構(gòu)和穩(wěn)定性,必要的時(shí)候扩氢,他們也會(huì)與 Scrum Master 一起重組組織結(jié)構(gòu)和指導(dǎo)原則
客戶 = 制片人
- 客戶是為 Scrum 團(tuán)隊(duì)提出產(chǎn)品需求的人耕驰,她會(huì)與組織簽訂合同,以開(kāi)發(fā)產(chǎn)品
- 一般來(lái)說(shuō)录豺,這些人是組織中的高級(jí)管理人員朦肘,負(fù)責(zé)從外部軟件開(kāi)發(fā)公司購(gòu)買軟件開(kāi)發(fā)能力
- 在為內(nèi)部開(kāi)發(fā)產(chǎn)品的公司中,負(fù)責(zé)批準(zhǔn)項(xiàng)目預(yù)算的人就是客戶
Product Owner = 故事作者
- Product Owner 從業(yè)務(wù)角度驅(qū)動(dòng)項(xiàng)目双饥,她傳播產(chǎn)品的明確愿景媒抠,并定義其主要特性,她也會(huì)在 Sprint 結(jié)束時(shí)接收產(chǎn)品
- Product Owner 的主要職責(zé)是確保團(tuán)隊(duì)只開(kāi)發(fā)對(duì)于組織最重要的 Backlog 條目
- 她與團(tuán)隊(duì)的目標(biāo)相同咏花,并在 Sprint 中幫助團(tuán)隊(duì)完成工作趴生,不干擾團(tuán)隊(duì)成員阀趴,并迅速提供團(tuán)隊(duì)需要的所有信息
- Product Owner 對(duì)投資回報(bào)負(fù)責(zé)
最終用戶 = 觀眾
- 很多人都可能成為最終用戶,比如市場(chǎng)部人員苍匆、領(lǐng)域?qū)<伊跫保部赡苁且蚱鋵I(yè)知識(shí)而被雇傭的咨詢顧問(wèn)
- 最終用戶會(huì)根據(jù)自己的業(yè)務(wù)知識(shí)定義產(chǎn)品,并告知團(tuán)隊(duì)自己的期望浸踩,提出請(qǐng)求
產(chǎn)品負(fù)責(zé)人工作檢查清單
- 產(chǎn)品待辦列表是根據(jù)產(chǎn)品負(fù)責(zé)人最新的想法按優(yōu)先級(jí)排序的嗎叔汁?
- 來(lái)自所有利益相關(guān)人對(duì)產(chǎn)品的需求和愿望都被放到產(chǎn)品待辦列表了嗎?
- 產(chǎn)品待辦列表是涌現(xiàn)的嗎检碗?
- 產(chǎn)品待辦列表的規(guī)木菘椋可管理嗎?
- 產(chǎn)品待辦列表中的故事(特別是優(yōu)先級(jí)靠前的)符合 INVEST 原則嗎折剃?
- 產(chǎn)品待辦列表中有技術(shù)債務(wù)相關(guān)的內(nèi)容嗎瑰钮?
- 產(chǎn)品待辦列表作為信息輻射體,對(duì)所有利益相關(guān)人立即可見(jiàn)嗎微驶?
- 如果是電子版待辦列表浪谴,每個(gè)人都知道如何方便地使用它嗎?
- 評(píng)審會(huì)議后發(fā)布計(jì)劃是跟著調(diào)整的嗎因苹?
團(tuán)隊(duì)工作檢查清單
- 團(tuán)隊(duì)成員大多數(shù)時(shí)間處在流暢狀態(tài)嗎苟耻?(目標(biāo)明確、全神貫注扶檐、及時(shí)反饋凶杖、工作輕松、不斷學(xué)習(xí)……)
- 團(tuán)隊(duì)成員經(jīng)常在一起慶祝各自的成功嗎款筑?
- 團(tuán)隊(duì)成員相互以高標(biāo)準(zhǔn)監(jiān)督智蝠、相互挑戰(zhàn)以促進(jìn)成長(zhǎng)嗎?
- 有沒(méi)有一些話題因?yàn)榇蠹腋杏X(jué)難受奈梳,所以在團(tuán)隊(duì)里沒(méi)有進(jìn)行討論杈湾?
- 嘗試過(guò)用不同的形式和地點(diǎn)開(kāi)回顧會(huì)議嗎?
- 團(tuán)隊(duì)在開(kāi)發(fā)過(guò)程中一直關(guān)注驗(yàn)收標(biāo)準(zhǔn)嗎攘须?
- 任務(wù)板和燃盡圖方便可見(jiàn)嗎漆撞?易于使用嗎?
- 任務(wù)板和燃盡圖能反映團(tuán)隊(duì)的真實(shí)情況嗎于宙?
- 任務(wù)板和燃盡圖被團(tuán)隊(duì)外部用于微觀管理了嗎浮驳?
- 團(tuán)隊(duì)成員是自己選擇并領(lǐng)取任務(wù)嗎?
- 團(tuán)隊(duì)有和產(chǎn)品負(fù)責(zé)人溝通將技術(shù)債務(wù)的內(nèi)容包含在待辦列表中了嗎捞魁?
- 團(tuán)隊(duì)成員能否拋開(kāi)各自的崗位定義至会,對(duì)約定工作的所有方面(開(kāi)發(fā)、測(cè)試谱俭、文檔等)集體負(fù)責(zé)奉件?
- 管理層是否以集體的成功來(lái)衡量團(tuán)隊(duì)宵蛀?
工程實(shí)踐檢查清單
- 正在開(kāi)發(fā)的系統(tǒng)有沒(méi)有一個(gè)類似“按下測(cè)試”的按鈕,從而每個(gè)人(同一團(tuán)隊(duì)或不同團(tuán)隊(duì)的)都能方便地檢測(cè)到系統(tǒng)是否被破壞了瓶蚂?
- 自動(dòng)化的端到端系統(tǒng)測(cè)試(或功能測(cè)試)與自動(dòng)化的單元測(cè)試之間有適當(dāng)?shù)钠胶鈫幔?/li>
- 系統(tǒng)功能測(cè)試和單元測(cè)試代碼是團(tuán)隊(duì)自己維護(hù)的嗎?(還是說(shuō)由其他團(tuán)隊(duì)單獨(dú)編寫和維護(hù))
- 團(tuán)隊(duì)已經(jīng)發(fā)現(xiàn)在系統(tǒng)測(cè)試和單元測(cè)試之間存在有用的灰色區(qū)域了嗎宣吱?
- 當(dāng)有人引起回歸失敗時(shí)窃这,是否有個(gè)持續(xù)集成服務(wù)器會(huì)在一小時(shí)甚至幾分鐘內(nèi)自動(dòng)發(fā)出警報(bào)?
- 所有的測(cè)試都會(huì)在持續(xù)集成服務(wù)器上運(yùn)行嗎征候?
- 團(tuán)隊(duì)成員已經(jīng)發(fā)現(xiàn)重構(gòu)的樂(lè)趣和成功了嗎杭攻?
- 重構(gòu)是隨時(shí)在進(jìn)行嗎?有自動(dòng)化測(cè)試的保障嗎疤坝?
- 故事的“完成”定義或驗(yàn)收標(biāo)準(zhǔn)中包含自動(dòng)化化測(cè)試和重構(gòu)了嗎兆解?
- 團(tuán)隊(duì)成員大多數(shù)時(shí)間都結(jié)對(duì)編程嗎?