如何逐步引入TDD

一、團(tuán)隊(duì)為什么會(huì)抵制TDD

1.時(shí)間壓

由于團(tuán)隊(duì)忙于交付,所以團(tuán)隊(duì)不可能分心出來執(zhí)行TDD,因?yàn)閳?zhí)行TDD需要更多的時(shí)間。所以,團(tuán)隊(duì)比較擔(dān)心投入TDD會(huì)進(jìn)一步影響進(jìn)度。

2.學(xué)習(xí)成本

TDD不是很簡單的就可以使用的,而是需要一定學(xué)習(xí)的。團(tuán)隊(duì)已經(jīng)很忙了,還要分身學(xué)習(xí),這對團(tuán)隊(duì)的直覺來說的話,一定是會(huì)更進(jìn)一步降低速率,所以,團(tuán)隊(duì)在效果不確定的情況下,一般也不會(huì)愿意投入。

3.標(biāo)壓力

團(tuán)隊(duì)一旦使用TDD,就要向管理層匯報(bào)測試的覆蓋率等等,這等于是額外為自己增加了更多的負(fù)擔(dān)。

二、可能的解決辦法

1.引入比較擅長TDD的外部資源

因?yàn)橥獠勘容^成熟的能夠執(zhí)行TDD的團(tuán)隊(duì)能夠直接將TDD引入,并且?guī)韺?shí)際的效果,所以對于團(tuán)隊(duì)來說,比較容易看到立竿見影的效果。這樣團(tuán)隊(duì)就比較容易接受,并且去學(xué)習(xí)TDD。

2.減緩交付速度

如果允許的話,可以通過減緩交付速度的方式來騰出學(xué)習(xí)TDD的時(shí)間。但是有很多團(tuán)隊(duì)可能并不具備這樣的條件。

3.減少浪費(fèi)的時(shí)間

很多團(tuán)隊(duì)之所以忙于眼前的任務(wù)而無暇分身的首要原因是因?yàn)閳F(tuán)隊(duì)本身對于時(shí)間的使用不夠科學(xué),導(dǎo)致沒有時(shí)間去提升團(tuán)隊(duì)。所以從長遠(yuǎn)來看,減少浪費(fèi)的時(shí)間這個(gè)策略可以更好的提高團(tuán)隊(duì)整體的士氣以及團(tuán)隊(duì)的能力。所以,這個(gè)是最為推薦的策略。

這個(gè)改善本身需要通過一定的觀察,來找到團(tuán)隊(duì)的時(shí)間浪費(fèi)點(diǎn)。

不過,以大多數(shù)的團(tuán)隊(duì)情況來看 ,下面幾個(gè)方法都可以達(dá)到立竿見影的效果。

a.改善會(huì)議

1)會(huì)議召開之前問一下:是否所有的人都要參加,是否所有的人都要參加所有的部分?

2)會(huì)議召開的時(shí)候遵守時(shí)間盒

3)會(huì)議召開的時(shí)候,不要讓大家岔開話題。

4)會(huì)議不要自動(dòng)充滿預(yù)約的時(shí)間。

5)盡量減少會(huì)議。

b.引入和強(qiáng)化時(shí)間盒

1)對于一個(gè)Junior的程序員需要調(diào)查4個(gè)小時(shí)而一個(gè)senior只要幾分鐘就能夠解決的問題,就不要浪費(fèi)這么多的時(shí)間。因此設(shè)置時(shí)間盒,當(dāng)一個(gè)簡單問題超過20分鐘無法解決的時(shí)候就要詢問比自己有經(jīng)驗(yàn)的人。

2)比如,交付一個(gè)模塊的時(shí)間也應(yīng)該有時(shí)間盒。在時(shí)間盒沒有到來之前,需要檢查進(jìn)度(這里有另外一個(gè)話題,如何檢查進(jìn)度,簡略的說,不要用百分比來統(tǒng)計(jì)進(jìn)度,那個(gè)數(shù)據(jù)沒有任何參考價(jià)值)。這樣可以提前預(yù)知什么模塊會(huì)造成延遲。從而提前采取必要的措施來改進(jìn)。


c.減少等待

1)根據(jù)帕金森定律,工作會(huì)自動(dòng)充滿工作時(shí)間。所以,統(tǒng)計(jì)每個(gè)人的時(shí)間是如何使用的,可以發(fā)現(xiàn),其中的大量等待的存在。所以,減少這部分的等待,可以轉(zhuǎn)化為學(xué)習(xí)TDD的時(shí)間。

2)在瀑布式開發(fā)流程下,等待都是很明顯的,比如:需求分析階段,開發(fā)和測試團(tuán)隊(duì)基本上出在“無事可干”的狀態(tài)。開發(fā)階段,測試人員也處在“設(shè)計(jì)測試用例”狀態(tài),可是怎么那么湊巧,測試人員的測試用例設(shè)計(jì)時(shí)間“恰好”和開發(fā)人員開發(fā)所需要的時(shí)間一樣呢?所以必然有一方在某個(gè)時(shí)間段處在等待狀態(tài)。測試期間,開發(fā)人員在等待Bug的出現(xiàn)。

3)等待還非常的多,不一一列舉了。

4.改善約束點(diǎn)

a.團(tuán)隊(duì)的交付管道可能會(huì)遇到很多約束點(diǎn)。比如:“集成”。這個(gè)可以通過度量數(shù)據(jù)來得到具體數(shù)據(jù)??梢钥吹郊蛇^程中每個(gè)人的時(shí)間是如何使用的。到底有哪里是造成約束的。比如:集成的時(shí)候,只有幾個(gè)人能夠在處理集成的操作,其他人只能等待。

b.改善約束點(diǎn)的方法有很多,包括:拓寬管道,繞過約束點(diǎn),或者將約束點(diǎn)的操作向前移動(dòng)。這里也不一一列舉具體的做法了。

5.提高團(tuán)隊(duì)“做入質(zhì)量”的意識(shí)

a.做入質(zhì)量是提高成本意識(shí)以及質(zhì)量意識(shí)的重要入口。當(dāng)團(tuán)隊(duì)都有這個(gè)意識(shí)的時(shí)候,會(huì)自然而然的要求使用TDD。而無需外部要求。所以,這個(gè)是長久生效的策略。

b.為了能夠讓團(tuán)隊(duì)提高這個(gè)意識(shí),需要從實(shí)際統(tǒng)計(jì)數(shù)據(jù)出發(fā)。讓團(tuán)隊(duì)明白,后測質(zhì)量帶來的問題所在,以及時(shí)間浪費(fèi)。比如,bug的re-open率。以及TDD所帶來的數(shù)據(jù)上的變化。

c.最重要的是,讓團(tuán)隊(duì)看到效果??吹叫Ч菆F(tuán)隊(duì)能夠自動(dòng)吸收TDD的最佳策略。而讓團(tuán)隊(duì)看到效果的話,不要參考別人的成功案例。團(tuán)隊(duì)會(huì)找到很多借口,比如:時(shí)間不夠,人員經(jīng)驗(yàn)不夠等。一定要讓團(tuán)隊(duì)親自去感受到TDD的效果。

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

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

  • PMP第五版考點(diǎn)匯總沖刺版 第一章引論 P2:《PMI道德與專業(yè)行為規(guī)范》詳細(xì)描述從業(yè)者在責(zé)任、尊重、公正、誠實(shí)方...
    文小夢閱讀 23,694評論 5 102
  • 先說項(xiàng)目開發(fā)過程中團(tuán)隊(duì)人員的分工協(xié)作。 一 人員安排 畢業(yè)至今的大部分項(xiàng)目都是獨(dú)立完成,雖然也有和其他同事協(xié)作的時(shí)...
    SnowflakeCloud閱讀 11,136評論 3 59
  • 前兩天,和一個(gè)很會(huì)學(xué)習(xí)的朋友聊天,期間談到閱讀這回事,我問他:影響閱讀最重要的因素是什么?他的答案是:專注...
    W南茜閱讀 200評論 0 0
  • 1 我曾是個(gè)極愛面子之人,記得上初中時(shí)是家里經(jīng)濟(jì)最困難的時(shí)期,但我那時(shí)的成績卻很好,考過好幾次年級(jí)第一名。當(dāng)時(shí)學(xué)校...
    白夜self閱讀 636評論 0 0
  • 一直說男人是否可以給女人安全感,但我覺得,安全感應(yīng)該來自女孩子自己吧。有安全感了,再尋找一份自己想要的愛情,這才是...
    向日葵姑娘007閱讀 314評論 0 0

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