一次因代碼走查引發(fā)的思維碰撞
團(tuán)隊(duì)今天的迭代回顧會,有一個小議題是關(guān)于“代碼走查記錄的問題關(guān)閉不及時”的問題。
事情起因是這樣的,我們團(tuán)隊(duì)踐行每日代碼走查(daily code review)已有超過一年了,走查過程中大家會針對前一天提交的代碼提出不少問題和修改意見,然后由一位質(zhì)量跟蹤員將這些問題及問題的修改責(zé)任人,記錄在wiki頁面的表格里。如果修改責(zé)任人下來將代碼問題處理關(guān)閉了,就登陸wiki,對相關(guān)問題項(xiàng)的復(fù)選框打勾,表示問題已經(jīng)被修復(fù)。
看起來,規(guī)則和人員都是明確的。但從近幾個月觀察來看,走查發(fā)現(xiàn)問題的修復(fù)和關(guān)閉情況卻不甚理想,通常都有不少問題一直擺在那里,到了月底還沒有打勾解決。我通常會扮演“看門人”的角色,在月底去跟催打勾,但坦率地講效果不佳,而且事倍功半。
由于項(xiàng)目和部門質(zhì)量部都會關(guān)注每個團(tuán)隊(duì)的代碼走查執(zhí)行落地情況,因此,雖然每天都花費(fèi)了精力投入代碼走查,但是外部觀感和結(jié)果統(tǒng)計(jì)來看卻是一堆問題沒有及時關(guān)閉,問題沒有閉環(huán)。
這到底是哪個環(huán)節(jié)出了問題?謎題該怎么破?
看似小問題,大家你一言我一語,展開了一場別開生面的民主大討論。
觀點(diǎn)1:質(zhì)量監(jiān)督員的問題。
質(zhì)量監(jiān)督員不僅要記錄,還要跟催相關(guān)的開發(fā)負(fù)責(zé)人及時修改,這樣就不會遺留那么多問題到月底了。
贊同的小伙伴甲:質(zhì)量跟蹤員,沒有很好地履行自己的職責(zé)——對了,大家知道本迭代的質(zhì)量跟蹤員是誰嗎?算了,恐怕質(zhì)量監(jiān)督員自己都不知道,責(zé)任沒有落實(shí)到人。
贊同的小伙伴乙:那我們就來看看迭代輪值表,下個迭代起,讓跟蹤員盡到責(zé)任——不妨把質(zhì)量跟蹤員的名字寫個便簽紙,貼在大屏幕旁邊。
反對的小伙伴丙:這不是質(zhì)量跟蹤員的問題,而是個人的主動性和意識問題。假設(shè)按這種方案,質(zhì)量跟蹤員既要記錄,又要去跟催別人修改,一次催了不行,還要催二次,質(zhì)量跟蹤員好心累。不妨看看,每次都是哪幾個人沒有改?
持中立態(tài)度的小伙伴?。?/strong>每個人都是聰明的,有自己的做事方式,要信任其專業(yè)性。不要把大家弄得針尖對麥芒,太有壓力。
觀點(diǎn)2:不是質(zhì)量跟蹤員的問題,而是寫代碼的人的問題。
贊同的小伙伴甲:誰制造的問題,誰負(fù)責(zé)清理,應(yīng)該有主動性。明明是你的問題,為什么要質(zhì)量跟蹤員來買單?
贊同的小伙伴乙:我自己就是走查的問題下來立即就修改了。今日事,今日畢,既然認(rèn)可走查的記錄,寫代碼的同學(xué)就應(yīng)該解決掉問題。
反對的小伙伴丙:首先,我不認(rèn)可記錄的所有問題,比如:變量命名,類名單詞拼寫錯誤,從繼承關(guān)系改為組合關(guān)系,這些是不是一定要改,不改會不會有問題?記錄到wiki的問題,是否經(jīng)過了當(dāng)事人認(rèn)可,或者說多數(shù)人當(dāng)場同意。
其次,有一類問題,屬于研討類問題,并不是要修改代碼,現(xiàn)在也記錄了。適不適合記錄在代碼走查的wiki里?這些問題,比較耗時,一時半會也關(guān)閉不了。通常是重要不緊急。
回答小伙伴丙的丁同學(xué):兩點(diǎn)建議非常好。記錄的內(nèi)容,應(yīng)該是大家認(rèn)可的,有疑問的***走查當(dāng)場確認(rèn)后再記錄。非代碼類問題,衍生出來的業(yè)務(wù)澄清或者業(yè)務(wù)研討,***另外用本子記錄,這樣就不會和代碼修改的問題混為一談了。
觀點(diǎn)3:都不對,是當(dāng)前的做法有問題
小伙伴甲:不如就不要質(zhì)量跟蹤員記錄了,走查時讓寫代碼的同學(xué)自己講,自己記錄。自己記錄的問題自己肯定是已認(rèn)可的,肯定會去修改。
小伙伴乙:頻繁輪換不太好吧,而且講解的人需要專注,不建議一邊講解一邊記錄。不如不要輪換質(zhì)量跟蹤員,統(tǒng)一我來記錄吧,保證月底前都會打勾。
小伙伴丙:阿彌陀佛,老衲實(shí)在看不下去了……那么小的事情,怎么就越搞越復(fù)雜呢?
小伙伴?。?/strong>只要涉及到人的事,就沒有小事。因?yàn)槿伺c人的認(rèn)知,行為,習(xí)慣都不同。除了每個人的心智模式的差異,還有人與人之間的關(guān)系,群體的復(fù)雜性。如果只用“我”的視角來看問題,難免難以理解這背后的復(fù)雜性。遇到問題,要用更多的視角去看待問題,分析問題。不用著急得出結(jié)論。
小伙伴丙:是滴,就事論事,大家激烈討論完,依然還是好伙伴。
未劃休止符的結(jié)論
雖然,這個問題在求同存異后,還沒有得到普遍認(rèn)可的結(jié)論。但我覺得,能開放式地探討挺好的,不至于陷入個體思維局限。正如喬幫主說的,keep hungry, stay foolish。觀點(diǎn)沒有對錯,而是說是否適合和貼近團(tuán)隊(duì)的實(shí)際情況。
秉持敏捷精神,我們可以擁抱變化,嘗試一下大家頭腦風(fēng)暴后提到的幾種小改進(jìn),然后看看效果,好的就保留,不好則再微調(diào)。




























