投資少見(jiàn)效快的開(kāi)卡驗(yàn)卡

開(kāi)卡(Kick-off)和驗(yàn)卡(Desk-check)是2016年我在ThoughtWorks University做教練時(shí),學(xué)到的實(shí)踐。

這兩個(gè)迭代開(kāi)發(fā)中進(jìn)行質(zhì)量?jī)?nèi)建的重要實(shí)踐,能讓團(tuán)隊(duì)“投資少見(jiàn)效快”地持續(xù)糾偏和又快又好地交付軟件。

做開(kāi)卡和驗(yàn)卡前,要做好如下準(zhǔn)備工作。

在迭代開(kāi)發(fā)的需求梳理會(huì)上,團(tuán)隊(duì)討論下一迭代的用戶故事,拆分故事,編寫(xiě)驗(yàn)收條件(主流程)和測(cè)試用例(全部流程,包括主流程)。

這些驗(yàn)收條件和測(cè)試用例,就是開(kāi)卡和驗(yàn)卡的物料。

開(kāi)卡過(guò)程

  1. 開(kāi)發(fā)人員每次開(kāi)始為一個(gè)新用戶故事卡編寫(xiě)代碼前,自己閱讀該故事卡的用戶故事、驗(yàn)收條件和測(cè)試用例,思考其中的疑問(wèn)點(diǎn)和風(fēng)險(xiǎn),并記錄下來(lái)。

之后請(qǐng)來(lái)相關(guān)的需求和測(cè)試人員,三人當(dāng)面澄清和討論這些疑問(wèn)和風(fēng)險(xiǎn)。

此時(shí),需求和測(cè)試人員,可以請(qǐng)開(kāi)發(fā)人員用自己的話,講述一下這些驗(yàn)收條件和測(cè)試用例,確保三方理解一致。

為什么要請(qǐng)開(kāi)發(fā)人員講驗(yàn)收條件?因?yàn)榕隆爸R(shí)的詛咒”——需求和測(cè)試人員自己很理解驗(yàn)收條件,也天然地認(rèn)為開(kāi)發(fā)人員也同樣能理解。但事實(shí)卻經(jīng)常恰恰相反。

況且需求和測(cè)試人員之間,也會(huì)出現(xiàn)對(duì)驗(yàn)收條件理解上的差異。所以讓開(kāi)發(fā)人員自己講一遍,也會(huì)啟發(fā)需求和測(cè)試人員發(fā)現(xiàn)他們之間的理解也是不同的。

開(kāi)卡由開(kāi)發(fā)人員驅(qū)動(dòng),針對(duì)其將要編寫(xiě)代碼的一個(gè)故事而做,而不是團(tuán)隊(duì)一起開(kāi)會(huì)開(kāi)卡,這能提高什么質(zhì)量?

這能提高開(kāi)發(fā)人員對(duì)于故事卡的需求的思考質(zhì)量。

因?yàn)殚_(kāi)發(fā)人員馬上就要寫(xiě)代碼了,會(huì)比團(tuán)隊(duì)需求討論會(huì)的思考更深入,因?yàn)槟菚r(shí)候還不知道誰(shuí)要開(kāi)發(fā)哪個(gè)故事卡。

為什么開(kāi)卡能解決網(wǎng)上程序員最怕產(chǎn)品“改需求”的段子中所說(shuō)的矛盾?

因?yàn)檫@些段子中的矛盾,往往源自程序員在寫(xiě)代碼前,沒(méi)有做開(kāi)卡確認(rèn),而是基于對(duì)需求錯(cuò)誤的理解編寫(xiě)代碼,能不出錯(cuò)嗎。

開(kāi)卡能降低什么成本?

開(kāi)卡能降低修改代碼的成本,因?yàn)椤案男枨蟆钡某杀驹诖a編寫(xiě)之前趨近于零,而在代碼編寫(xiě)之后會(huì)急劇上升。

開(kāi)卡能在編寫(xiě)代碼前澄清最新的需求,減少改需求的幾率和成本。

  1. 若需求和測(cè)試人員在開(kāi)卡過(guò)程中,發(fā)現(xiàn)之前編寫(xiě)的驗(yàn)收條件和測(cè)試用例有問(wèn)題,則立即修復(fù)。

  2. 開(kāi)發(fā)人員完成開(kāi)卡后,就把卡片從看板的“本迭代待辦項(xiàng)”移至“開(kāi)發(fā)中”,并貼上自己的頭像。

驗(yàn)卡過(guò)程

  1. 開(kāi)發(fā)人員每寫(xiě)完一個(gè)用戶故事的代碼,并在“非本地”測(cè)試環(huán)境上測(cè)試通過(guò),則找到需求和測(cè)試人員,按照驗(yàn)收條件,為他們進(jìn)行演示(即驗(yàn)卡)。

為什么一定要在“非本地”環(huán)境驗(yàn)卡?

程序員的另一個(gè)段子是:“啥?在測(cè)試環(huán)境上運(yùn)行不了?可剛才明明在我電腦上運(yùn)行的好好的。”

環(huán)境的差異也需要解決,所以驗(yàn)卡要在“非本地”環(huán)境進(jìn)行。

驗(yàn)卡應(yīng)該是由開(kāi)發(fā)人員驅(qū)動(dòng),針對(duì)其剛剛編寫(xiě)完代碼的一個(gè)故事驗(yàn)卡,而不是一次驗(yàn)多個(gè)卡。這能提高什么質(zhì)量?

能做到持續(xù)糾偏,又快又好。

這能省什么時(shí)間?

能節(jié)省一次驗(yàn)多個(gè)卡所發(fā)生的等待時(shí)間。

  1. 若驗(yàn)卡時(shí)發(fā)現(xiàn)問(wèn)題,開(kāi)發(fā)人員立即修復(fù)。這能省哪4個(gè)時(shí)間?
  • 能省測(cè)試人員在系統(tǒng)中記錄和跟蹤軟件缺陷的時(shí)間
  • 能省開(kāi)發(fā)人員在系統(tǒng)中閱讀軟件缺陷的時(shí)間
  • 能省開(kāi)發(fā)人員切換思路進(jìn)行修復(fù)的時(shí)間
  • 能省開(kāi)發(fā)人員很晚才返工所耽誤的時(shí)間
  1. 開(kāi)發(fā)人員修復(fù)完成后,再次驗(yàn)卡。測(cè)試人員對(duì)于驗(yàn)卡所發(fā)現(xiàn)的問(wèn)題不必在系統(tǒng)中記錄軟件缺陷。

  2. 若在非本地測(cè)試環(huán)境驗(yàn)卡時(shí),未發(fā)現(xiàn)問(wèn)題,則開(kāi)發(fā)人員將故事卡移交測(cè)試人員進(jìn)一步進(jìn)行測(cè)試,并把卡片從看板上“開(kāi)發(fā)中”移至“待UAT測(cè)試”一列。

想要“投資少見(jiàn)效快”地提高軟件開(kāi)發(fā)團(tuán)隊(duì)代碼質(zhì)量,優(yōu)先嘗試開(kāi)卡和驗(yàn)卡。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 專(zhuān)業(yè)考題類(lèi)型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚(yú)閱讀 10,508評(píng)論 0 13
  • 每天進(jìn)步一點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)~~從開(kāi)始只能寫(xiě)幾句話、模仿別人的觀點(diǎn),到現(xiàn)...
    一個(gè)帥氣的名字呀閱讀 18,953評(píng)論 4 31
  • 果真只有在心情不好的時(shí)候才有寫(xiě)點(diǎn)兒什么東西的想法。 是啊。我昨天是不開(kāi)心了。前天也是。因?yàn)槲矣X(jué)得我...
    畫(huà)樓西閱讀 320評(píng)論 0 0
  • 看到本文的標(biāo)題可能有些讀者覺(jué)得難以理解,說(shuō)實(shí)話我取這個(gè)標(biāo)題實(shí)在看到本書(shū)中的“實(shí)存與實(shí)在?!畬?shí)存’還活著,而‘...
    4551ff0ad16f閱讀 773評(píng)論 1 0
  • 【主題類(lèi)型】自選 【導(dǎo)圖亮點(diǎn)】精美禮物 【導(dǎo)圖解說(shuō)】 1. 中心圖:畫(huà)了一個(gè)美麗的禮物,禮盒里面有美麗的鮮花和可愛(ài)...
    王冰新閱讀 1,122評(píng)論 0 3

友情鏈接更多精彩內(nèi)容