日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何定义开发完成?(Definition of Done)

發(fā)布時(shí)間:2024/4/17 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何定义开发完成?(Definition of Done) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在拜讀曄的10x程序員工作法,收益良多,文中提出一個(gè)概念叫DoD(Definition of Done)給我的感觸頗深。這讓我聯(lián)想到實(shí)際工作過程中,經(jīng)常遇到的扯皮、爭吵等各種場景,其實(shí)就和這個(gè)DoD分不開。

一、場景描述

  鄭曄在文中描述了這樣一種現(xiàn)象,相信有開發(fā)經(jīng)歷的人多少有同感:

老張:這有一個(gè)任務(wù)需要完成,你看一下。 小李:這個(gè)不難,兩天就能做完,兩天以后就能上線。

  兩天以后,老張又來到小李的身邊驗(yàn)收工作:

老張:怎么樣,做完了嗎?今天能上線嗎? 小李:我的代碼寫完了。 老張:測(cè)試人員測(cè)過了嗎? 小李:還沒有。 老張:那今天能測(cè)完嗎? 小李:那我就不知道了。 老張:什么?我可是答應(yīng)了業(yè)務(wù)的人,今天一定要上線的!

  兩天以后,老張又來檢查工作。

老張:這個(gè)功能開發(fā)完了嗎? 小李:寫完了,你看我給你演示一下。

  小李熟練地演示了這個(gè)新寫好的功能,這次老張很滿意:

老張:做得不錯(cuò)。單元測(cè)試都寫了吧? 小李:啊?還要寫單元測(cè)試嗎? 老張:要不為啥給你兩天的時(shí)間?

  很明顯,老張有些憤怒,貌似總在挑刺,而小李也沒有偷懶、有些委屈。于是,老張、小李和測(cè)試人員一起度過了一個(gè)不眠之夜。

二、理解的代溝

  根據(jù)上面的場景,我畫了兩幅小李和老張的思考圖,看下兩者的代溝在哪兒,如下圖所示。

  很顯然兩者對(duì)完成的定義各不相同。對(duì)開發(fā)人員小李來說,完成容易理解為編碼完成;而不去考慮代碼測(cè)試和線上測(cè)試;對(duì)技術(shù)主管老張來說,完成的理解可能會(huì)更多一些,包括編碼,測(cè)試,代碼規(guī)范,審查,上線等等,有些老張腦子里的東西更多,比如下圖所示:

  為什么會(huì)有上面的差異?從立場來看,小李匯報(bào)的對(duì)象只有老張,而老張要協(xié)作的對(duì)象可能有產(chǎn)品經(jīng)理、老板、總監(jiān)、小李們。小李是從個(gè)人層面,關(guān)注的是一個(gè)點(diǎn),老張是從團(tuán)隊(duì)層面,關(guān)注的是一個(gè)面。

  各自定義差可能反應(yīng)了一個(gè)信號(hào),就是團(tuán)隊(duì)成員整體上缺乏職業(yè)素養(yǎng),那么這個(gè)團(tuán)隊(duì)就危險(xiǎn)了。從小李的角度無論怎么努力,都不可能滿足老張的需求,從老張的角度總覺得小李偷懶,導(dǎo)致團(tuán)隊(duì)之間老是摩擦、挑刺,最后小李干的不爽了,老張也覺得小李孺子不可教,最后事沒有做好,人跑了。

  接下來就要回到作者提出的DoD概念(完成的定義),從這個(gè)概念的名字便不難看出,它就是為了解決軟件開發(fā)中常見的“完成”問題而生的。

三、完成的定義

  這里的DoD在鄭曄看來包含三個(gè)層次的含義:

  • DoD 是一個(gè)清單,清單是由一個(gè)個(gè)的檢查項(xiàng)組成的。
  • DoD 的檢查項(xiàng)應(yīng)該是實(shí)際可檢查的。
  • DoD 是團(tuán)隊(duì)成員間彼此匯報(bào)的一種機(jī)制。

  借助這三個(gè)含義,我模擬登錄功能列了表格:

?

  以上是站在測(cè)試用例的角度來寫,一個(gè)簡單的登錄就可以包含18個(gè)開發(fā)功能點(diǎn),做好登錄并沒有那么簡單,這也就難怪小李和老張總是意見不一致。如果攤開這份清單用來驗(yàn)收登錄功能的完整性,我相信小李和老張彼此都不會(huì)有什么意見。

  但是這里有一個(gè)問題,就是老張根本不會(huì)去做這份清單!小李也沒有這種意識(shí),那誰來擬定?也許你會(huì)說引入中間層,就是測(cè)試人員來擬定,假設(shè)你們團(tuán)隊(duì)沒有測(cè)試人員呢?

  事情總是沒有表面看起來的那么簡單。這里再設(shè)計(jì)一份簡化的驗(yàn)收清單

?

  如此簡化的功能也能多少避免小李和老張的鴻溝了吧?那么又回到前面的問題,誰來制作這份清單?

  我個(gè)人的意見是小李來做,因?yàn)樾±畹膭?shì)能沒有老張高,那就多增加自己的動(dòng)能了,顯示自己做事的能力,同時(shí)也做一個(gè)同事眼中的好伙伴,領(lǐng)導(dǎo)眼中的好同事。等小李變成老李了,遇到小張也是小張來做這事。

四、DoD是一種思維方式

  鄭曄在最后又補(bǔ)充道:

至此,我們只是從軟件開發(fā)團(tuán)隊(duì)內(nèi)部協(xié)作的角度來談 DoD。但實(shí)際上,它不僅局限在團(tuán)隊(duì)內(nèi)部協(xié)作上,如果你可以放開思路,會(huì)發(fā)現(xiàn) DoD 的思維在工作中用途非常廣泛。比如,當(dāng)我們需要和其他團(tuán)隊(duì)合作開發(fā)一個(gè)接口時(shí),我們都知道第一步就是要把接口定義下來。

  這里的DoD看起來很完美,定義了驗(yàn)收清單,羅列了一系列驗(yàn)收項(xiàng)目,并固化成文檔。但是,過程中有幾個(gè)焦油坑需要去思考:

  • 如何才能符合“可驗(yàn)收”?
  • 彼此都無法想到的風(fēng)險(xiǎn)如何管理?

  也許這需要團(tuán)隊(duì)的磨合了,從老張角度如果這事不會(huì)死人,其實(shí)沒有必要去咄咄逼人,大不了后續(xù)進(jìn)行迭代改進(jìn),否則逼得緊其實(shí)只會(huì)引起反彈,養(yǎng)成小李習(xí)慣性的逃避責(zé)任,形成團(tuán)隊(duì)推卸責(zé)任的文化就得不償失了。

  當(dāng)我們有了DoD的思維方式,后面的事情也許會(huì)變得簡單很多,鄭曄舉了個(gè)小例子讓人折服:

1.經(jīng)常會(huì)有人過來,讓我?guī)兔ψ鲂┦隆_\(yùn)用 DoD 的思維,我首先會(huì)問他我具體要做哪些事,確認(rèn)好細(xì)節(jié)(相當(dāng)于定義好“檢查項(xiàng)”),然后我就知道,這個(gè)忙我能幫到什么程度。 2.我請(qǐng)別人幫忙的時(shí)候,也會(huì)很清楚告訴他,哪些事是需要他做的,盡量減少不必要的誤解。

五、總結(jié)

  人與人的協(xié)作,總會(huì)存在理解上的偏差,如何去解決信息不同步的問題呢?DoD是一種最佳實(shí)踐,它是包含了檢查項(xiàng)的驗(yàn)收清單,而如何做到“可檢查”需要雙方重點(diǎn)溝通。DoD從大了看是一種思維模式,是一種盡可能消除不確定性,達(dá)成共識(shí)的方式。

借用鄭曄的一句話:“如果今天的內(nèi)容你只能記住一件事,那請(qǐng)記住:在做任何事之前,先定義完成的標(biāo)準(zhǔn)。”

 

?

轉(zhuǎn)載于:https://www.cnblogs.com/jackyfei/p/10244806.html

總結(jié)

以上是生活随笔為你收集整理的如何定义开发完成?(Definition of Done)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。