作為企業(yè)IT部門某個開發(fā)團隊負(fù)責(zé)人的你垃它,從書上和大佬那里得知,軟件開發(fā)團隊中的開發(fā)人員烹看,如果在將所完成的功能提交給測試人員之前国拇,加強自測,那么就能降低軟件開發(fā)過程中的返工惯殊。
于是你為每位開發(fā)人員揪荣,都準(zhǔn)備了自測環(huán)境赊堪。然后告訴開發(fā)人員,在完成功能的開發(fā),向測試人員提測前缎谷,需要在自測環(huán)境完成自測。
但很快你就發(fā)現(xiàn)誓军, 測試人員還是經(jīng)常抱怨巾腕,開發(fā)人員即使擁有自測環(huán)境,但所提測的代碼闪湾,經(jīng)常連基本的功能都沒有跑通冲甘,需要打回去修復(fù)。
這個問題該如何破途样?
你讀了塞勒和桑斯坦的《助推》江醇,其中行為經(jīng)濟學(xué)的“錨定效應(yīng)”和“心理賬戶”給了你很大的啟發(fā)。即開發(fā)人員對于自測的態(tài)度何暇,被其崗位名稱“開發(fā)”所錨定陶夜,即“開發(fā)”意味著設(shè)計和寫代碼,而“自測”屬于測試裆站,應(yīng)該由測試人員負(fù)責(zé)条辟。這種錨定效應(yīng)會帶來“心理賬戶”效應(yīng)黔夭,即開發(fā)人員設(shè)計和寫代碼的時間,與修復(fù)包括自測在內(nèi)的測試所發(fā)現(xiàn)bug的時間捂贿,分屬兩個不同的心理賬戶纠修。在開發(fā)階段,他們不會使用修bug階段的賬戶里的時間厂僧。
如果把“開發(fā)人員”和“測試人員”這兩個崗位名稱扣草,更名為能反映整個軟件系統(tǒng)的質(zhì)量的名稱,是否能破解上述問題颜屠?
如果將開發(fā)人員的崗位改名為系統(tǒng)紅軍辰妙,即需要對所設(shè)計和編寫的軟件特性在整個系統(tǒng)中正常運行負(fù)全責(zé),而測試人員的崗位改名為系統(tǒng)藍(lán)軍甫窟,即從整個系統(tǒng)的角度模擬現(xiàn)實生產(chǎn)環(huán)境各種刁鉆的場景來考驗系統(tǒng)紅軍所設(shè)計和實現(xiàn)的軟件特性密浑,能否正常運行,那么這兩個崗位之間的關(guān)系粗井,就轉(zhuǎn)變?yōu)榧t藍(lán)軍對抗尔破。這樣是否能擺脫錨定和心理賬戶,從而助推開發(fā)人員進行自測浇衬?
你覺得可以設(shè)計一個實驗懒构,來找到引導(dǎo)開發(fā)人員做好功能自測的一種方法。
該如何設(shè)計這個實驗耘擂?
我在下面幫你列出這個實驗的6個步驟和具體實施方法胆剧。你可以根據(jù)團隊具體情況,做適當(dāng)?shù)恼{(diào)整醉冤。
1 基于觀察
測試人員經(jīng)常抱怨秩霍,開發(fā)人員即使擁有自測環(huán)境,但所提測的代碼蚁阳,經(jīng)常連基本的功能都沒有跑通铃绒,需要打回去修復(fù)。
2 問出問題
是什么阻礙了開發(fā)人員進行自測螺捐?
3 形成可驗證的解釋性假說
根據(jù)行為經(jīng)濟學(xué)的“錨定效應(yīng)”颠悬,開發(fā)人員對于自測的態(tài)度,被其崗位名稱“開發(fā)”所錨定归粉,即“開發(fā)”意味著設(shè)計和寫代碼椿疗,而“自測”屬于測試漏峰,應(yīng)該由測試人員負(fù)責(zé)糠悼。這種錨定效應(yīng)會帶來行為經(jīng)濟學(xué)的“心理賬戶”效應(yīng),即開發(fā)人員設(shè)計和寫代碼的時間浅乔,與修復(fù)包括自測在內(nèi)的測試所發(fā)現(xiàn)bug的時間倔喂,分屬兩個不同的心理賬戶铝条。在開發(fā)階段,他們不會使用修bug階段的賬戶里的時間席噩。
4 基于假說做出預(yù)測
如果將開發(fā)人員的崗位改名為系統(tǒng)紅軍班缰,即需要對所設(shè)計和編寫的軟件特性在整個系統(tǒng)中正常運行負(fù)全責(zé),而測試人員的崗位改名為系統(tǒng)藍(lán)軍悼枢,即從整個系統(tǒng)的角度模擬現(xiàn)實生產(chǎn)環(huán)境各種刁鉆的場景來考驗系統(tǒng)紅軍“所設(shè)計和實現(xiàn)的軟件特性埠忘,能否正常運行,那么這兩個崗位之間的關(guān)系馒索,就轉(zhuǎn)變?yōu)榧t藍(lán)軍對抗莹妒。這樣就能擺脫錨定和心理賬戶,從而助推開發(fā)人員進行自測绰上。
5 設(shè)計并執(zhí)行有對照組且只改變一個變量的實驗檢驗預(yù)測
你需要設(shè)法吸引IT部門負(fù)責(zé)人和測試團隊負(fù)責(zé)人對這個實驗感興趣旨怠,并獲得她/他的支持,比如幫助你找到另一個有同樣多開發(fā)和測試人員的開發(fā)團隊作為對照組蜈块,并獲得那個開發(fā)團隊負(fù)責(zé)人的支持鉴腻。而你所在的團隊,可以作為實驗組百揭。
由IT部門負(fù)責(zé)人爽哎、測試團隊負(fù)責(zé)人和實驗組與對照組這兩個開發(fā)團隊負(fù)責(zé)人,四人成立實驗小組信峻。
為了讓實驗結(jié)果不會因為實驗組和對照組兩個開發(fā)團隊的開發(fā)和測試人員倦青,因相互攀比而有損數(shù)據(jù)的準(zhǔn)確性,該實驗從始至終秘密進行盹舞。即實驗的事情产镐,只有實驗小組的那四人知道。若其他人問起實驗過程中一些事情的緣由踢步,可以編一個理由癣亚。總之不要透露正在開展的實驗和實驗意圖获印。
在實驗開始前述雾,兩個開發(fā)團隊的負(fù)責(zé)人,需要各自保證開發(fā)人員都擁有自測環(huán)境兼丰,并準(zhǔn)備好度量開發(fā)人員自測一次通過率的觀測工具玻孟。即能統(tǒng)計出開發(fā)人員開發(fā)完功能,首次給測試人員測試且一次通過的比例鳍征。
對照組對于開發(fā)和測試人員的崗位名稱保持不變黍翎。對照組團隊負(fù)責(zé)人在實驗開始前一天,召集所有開發(fā)和測試人員艳丛,告訴他們在完成功能的開發(fā)匣掸,向測試人員提測前趟紊,需要在自測環(huán)境完成自測。
實驗組團隊負(fù)責(zé)人碰酝,就是你霎匈,在實驗開始前一天,召集所有開發(fā)和測試人員送爸,向他們宣布铛嘱,在本開發(fā)組,開發(fā)和測試人員的崗位袭厂,在未來一段時間內(nèi)弄痹,比如6周,分別改名為系統(tǒng)紅軍和系統(tǒng)藍(lán)軍嵌器。并告訴他們肛真,系統(tǒng)紅軍需要對所設(shè)計和編寫的軟件特性在整個系統(tǒng)中正常運行負(fù)全責(zé),而系統(tǒng)藍(lán)軍需要從整個系統(tǒng)的角度模擬現(xiàn)實生產(chǎn)環(huán)境各種刁鉆的場景來考驗系統(tǒng)紅軍所設(shè)計和實現(xiàn)的軟件特性爽航,能否正常運行蚓让,
設(shè)置一個開展實驗時間段,比如6周讥珍。兩個團隊同時開展實驗历极,并同時采集數(shù)據(jù)。
每2周作為一個迭代衷佃。實驗小組在迭代末就開一次碰頭會趟卸,分析和對比這2周采集的觀測數(shù)據(jù)。
6 根據(jù)實驗結(jié)果可回到第3步不斷迭代優(yōu)化假說/預(yù)測/實驗過程
到第6周結(jié)束氏义,總結(jié)和對比這3個迭代實驗組和對照組的數(shù)據(jù)锄列。根據(jù)實驗數(shù)據(jù),看看是否支持第4步的預(yù)測惯悠,并決定是否回到第3步邻邮,改進假說、預(yù)測或?qū)嶒炦^程克婶。
如果遇到問題筒严,歡迎在評論區(qū)留言,與我交流情萤。非常歡迎你把實驗的步驟鸭蛙、過程和結(jié)果分享給我,以便一起改進這個實驗筋岛。我會在這個實驗的將來的版本的致謝段落娶视,署上你的名字和你所做的改進。
如果覺得本文對你有幫助泉蝌,歡迎點贊歇万,并轉(zhuǎn)發(fā)給其他志同道合的小伙伴。你覺得引導(dǎo)開發(fā)人員做好功能自測勋陪,還有什么其他好辦法贪磺?你還希望我聊有關(guān)做軟件的其他什么新話題?歡迎在評論區(qū)留言诅愚。我會仔細(xì)閱讀每一條留言寒锚。期待聽到你的聲音。
企業(yè)生意好违孝,系統(tǒng)運行穩(wěn)刹前。你所閱讀的文章,來自“吾真本說混沌工程”知乎專欄雌桑。