首先我們需要了解什么是DOD,
DOD的定義
DoD 全稱 Definition of Done询兴, 是我們敏捷中常說的“完成的定義”
DOD的作用
其實(shí)我們需要了解DOD的作用是什么呢乃沙?
明確對完成的預(yù)期,確保項(xiàng)目中的內(nèi)外部的干系人對完成的含義達(dá)成理解一致诗舰。
承諾的可視化警儒,隱藏的、內(nèi)部的質(zhì)量投入對外暴露出來眶根,增強(qiáng)團(tuán)隊(duì)的透明性蜀铲。
避免快而臟的開發(fā)模式,不留技術(shù)債務(wù)属百,不遺留問題給后續(xù)迭代记劝。
作為迭代策劃的前提與約束條件,幫助我們合理估算工作量族扰,制定切實(shí)可行的計(jì)劃厌丑。
聚焦目標(biāo),減少不必要的活動(dòng)渔呵,定義完成任務(wù)的最小活動(dòng)集合 怒竿。
在做計(jì)劃時(shí)判斷是否有遺漏的活動(dòng)。
在驗(yàn)收時(shí)檢查是否有遺漏的活動(dòng)厘肮,比如作為 Sprint Review的檢查單的一部分愧口。
DOD的定義
團(tuán)隊(duì)成員協(xié)商一致輸出,并確保所有人都可視类茂。不要讓領(lǐng)導(dǎo)定義DoD耍属。
不同的活動(dòng)有不同的完成定義托嚣,要區(qū)別對待。
隨著迭代的進(jìn)展厚骗,逐步完善DoD示启。保證隨著時(shí)間會(huì)改變。組織的幫助和團(tuán)隊(duì)能力的增加可以移除掉更多障礙领舰,使得更多的活動(dòng)可以包含到 Sprint 或者 Feature 的DoD中來夫嗓。
在迭代回顧會(huì)議上是討論對DoD的優(yōu)化修改。
DoD越弱冲秽,欠債越多舍咖,后期風(fēng)險(xiǎn)越大。
質(zhì)量投入的活動(dòng)要包含在DoD定義中锉桑,如各種測試排霉、評審、重構(gòu)活動(dòng)等民轴。
不同活動(dòng)DoD
在敏捷軟件開發(fā)中攻柠,存在多級的不同的完成定義。一上來不需要全部覆蓋后裸,可以共同約定適合團(tuán)隊(duì)的 DoD,然后在過程中過不斷完善和修改瑰钮。
迭代DoD
所有完成的用戶故事得到PO的驗(yàn)證。
所有代碼得到靜態(tài)分析微驶,糾正最高級別的不符合項(xiàng)浪谴。
所有新增代碼得到人工評審。
所有完成的用戶故事都有對應(yīng)的測試用例祈搜。
測試用例都已執(zhí)行较店。
發(fā)布DoD
完成發(fā)布規(guī)劃所要求的重點(diǎn)內(nèi)容。
通過發(fā)布的全量測試容燕,回歸測試范圍是全范圍,回歸比率不低于50%婚度。
修復(fù)所有等級為1蘸秘、2、3的缺陷蝗茁,4級及4級以下缺陷不超過200個(gè)醋虏。1、2級缺陷必須修復(fù)哮翘,3級缺陷經(jīng)過缺陷發(fā)布審批后可以發(fā)布颈嚼。
至少通過一次全量回歸測試。
區(qū)別:
由于發(fā)布需要達(dá)到比迭代更高的要求饭寺,所以一般很難強(qiáng)制規(guī)定發(fā)布測試所需要的時(shí)間長度阻课,也就是說敏捷中常用的時(shí)間箱方法不適宜用在發(fā)布前的測試上叫挟,因?yàn)楦哔|(zhì)量發(fā)布是第一要?jiǎng)?wù),如果到了原計(jì)劃測試結(jié)束的時(shí)間限煞,仍然留有妨礙發(fā)布的缺陷的話抹恳,應(yīng)當(dāng)修復(fù)后才能發(fā)布。
而迭代成果一般是為了內(nèi)部或者可控范圍內(nèi)的展示署驻,相對發(fā)布而言奋献,要求較低,所以適用時(shí)間箱方法旺上,當(dāng)然迭代本身就是時(shí)間箱瓶蚂,迭代內(nèi)的測試本來就有時(shí)間限制。采用時(shí)間箱來安排迭代內(nèi)的測試可以獲得時(shí)間箱安排的種種好處宣吱,在這樣的安排下扬跋,回歸覆蓋率就應(yīng)當(dāng)是一個(gè)變量,用于觀察凌节,而不應(yīng)當(dāng)是一個(gè)要求指標(biāo)钦听。
版本DoD
版本DoD就是針對每個(gè)版本上線前后的一些規(guī)則,比如:
產(chǎn)品文檔已全部更新
代碼已部署到產(chǎn)品服務(wù)器上
運(yùn)維在驗(yàn)收測試環(huán)境上冒煙通過
原始需求提交人對功能已經(jīng)驗(yàn)收通過
對運(yùn)維倍奢、市場朴上、客服的新功能培訓(xùn)已完成
每日DoD
搭建每日構(gòu)建環(huán)境,晚上自動(dòng)靜態(tài)代碼檢查卒煞、編譯痪宰、部署和測試,每日修復(fù)前一日構(gòu)建和測試發(fā)現(xiàn)的缺陷和問題畔裕。
下班前必須檢入當(dāng)天書寫的代碼衣撬,check in的backlog要填寫清晰。
當(dāng)天的代碼必須在當(dāng)天或者第2天邀請同伴進(jìn)行代碼評審扮饶。
搭建持續(xù)集成環(huán)境具练,當(dāng)天上下午必須至少各檢入代碼一次(這與第1條可能沖突)。
采用TDD甜无,凡是檢入的功能代碼必須要有對應(yīng)的單元測試(嚴(yán)格采用TDD)扛点。
每天晚上觸發(fā)靜態(tài)代碼檢查、自動(dòng)化回歸測試岂丘。
當(dāng)天持續(xù)集成陵究、構(gòu)建環(huán)境中的問題,請當(dāng)天解決奥帘。
用戶故事DoD
用戶故事最終的描述符合INVEST
用戶故事得到測試用例的對應(yīng)覆蓋
用戶故事得到對應(yīng)的自動(dòng)化測試用例
用戶故事得到用戶代表試用并初步認(rèn)可
每周DoD
上上周發(fā)現(xiàn)的缺陷是否解決铜邮。
上周新增功能的自動(dòng)化測試是否加入到每周測試集。
下面是我們Code DOD的sample: