產生代碼質量的問題有下面四類:
1.代碼編寫的錯誤类腮,導致業(yè)務邏輯錯誤做入,無法運行冒晰。
2.對整體系統(tǒng)不熟悉,為了實現A功能卻影響了B功能竟块。
3.方案設計的問題壶运,缺乏足夠細節(jié),導致功能需要實現1浪秘、2蒋情、3,但最終只實現了1耸携、1.5和2.5棵癣。
4.編碼設計思路問題,功能雖然實現夺衍,但卻無法滿足性能或安全要求狈谊。
目前團隊代碼編寫質量比較突出的問題是1、3
第一類問題屬于程序員的基礎能力問題沟沙,主要原因有以下幾點:
1.很少溝通河劝、很少反饋問題,只是低頭寫代碼矛紫,對可能存在的問題赎瞎,或不理解的問題不做及時的溝通和反饋,而這些問題很可能是同項目另一端同學已經解決或同時面臨的颊咬,這一點是導致代碼質量和效率低的重要原因务甥。
2.始終沒有建立有效的代碼規(guī)范,代碼規(guī)范不僅是編寫代碼的書寫格式上的規(guī)范喳篇,同時也應該是編寫代碼思想上的統(tǒng)一規(guī)范缓呛。這一點需要像站會一樣有計劃的,固定時間來開展杭隙,才會有進展。不一定一開始就建一個多全的規(guī)范因妙,以解決問題出發(fā)痰憎,遇到一個問題票髓,解決一個問題,形成一個規(guī)范铣耘。
3.第三點是個人能力素質的問題洽沟。
第二類問題也是團隊目前經常會遇到的問題,但是隨著開發(fā)的不斷深入蜗细,此類問題影響會逐步降低裆操,但是為了徹底解決此類問題,需要在合適的階段盡早引入單元測試流程炉媒。
單元測試流程是在編碼階段實現的功能設計一個可自動化執(zhí)行的單元測試用例代碼踪区,在將新的代碼后提交到代碼管理平臺,例如gitlab吊骤,就會開始基于所有的單元測試代碼進行一次回歸測試缎岗,對所有單元功能進行驗證,看看是否功能是否返回預期值白粉。而不是等到正式提測后由測試人工驗證传泊。
單元測試雖然會增加編寫代碼的工作量,但會開發(fā)效率整體提升有很大的幫助鸭巴。因此需要從現在開始逐步建立眷细。
第三類問題屬于產品和研發(fā)的溝通問題,也是目前研發(fā)和測試反饋最大的問題鹃祖。
目前階段溪椎,因為時間原因,產品在編寫功能需求時惯豆,不可能特別細池磁。在評審階段,也并不是所有人能馬上考慮到所有問題楷兽。雖然測試團隊在編寫測試用例過程中地熄,做了很大的補充,但是這些補充芯杀,并未左移端考,因此導致功能開發(fā)完成后,有很多需要優(yōu)化的工作揭厚,從而降低了開發(fā)效率却特。因此,為解決這個問題筛圆,在和研發(fā)和測試同學溝通后裂明,總結了他們提出的幾點建議:
1.產品需求文檔越細致,所耗費的時間就越多太援,所以闽晦,建議通過可交互的UI原型圖來彌補細節(jié)扳碍,按研發(fā)同學的話來說,文檔講真不會那么細心的看仙蛉,但好的UI原型圖笋敞,一看就知道怎么做了。
2.用戶故事很重要荠瘪,其實一句話夯巷,“誰”以什么“角色”希望“做什么”以便“達到什么目標或商業(yè)價值”,需求以此傳遞哀墓,大家心中也就有一個數了趁餐。
3.測試評審需要加強,目前大家對測試用例評審并不是特別的重視麸祷,導致很多測試人員補充的細節(jié)并沒有在開發(fā)過程中第一時間被了解澎怒,因此后續(xù)的工作中,加強測試用例的評審工作阶牍。
第四類問題屬于架構層面的工作喷面,目前只能通過開發(fā)后期的壓力測試和安全性測試進行彌補,但是性能和安全性需要制定一個規(guī)范走孽,什么標準符合規(guī)范惧辈。
因此基于以上思考,我計劃開展以下幾項工作:
首先需要監(jiān)督開發(fā)質量磕瓷,通過數據了解開發(fā)質量存在哪些問題盒齿,因此在周末,我對缺陷提報的模板進行了補充困食,由此在缺陷報表中可以通過更多的維度了解到更多數據情況边翁,目前只能看到在摸一個時間段內,誰產生了多少Bug硕盹,解決了多少符匾。
1.增加了缺陷打開次數字段,可了解同一個缺陷打開多少次
2.增加了缺陷發(fā)現階段字段瘩例,共分為“冒煙測試”啊胶、“功能測試”、“合并測試”垛贤、“驗收”焰坪、“回歸測試”、“線上bug”6個階段聘惦,由此可了解BUG集中產生的階段某饰。
3.增加了缺陷類型字段,共分為“編碼錯誤”、“業(yè)務不理解”露乏、“性能風險“碧浊、”安全性風險“四個類型,由此可了解團隊BUG集中的類型瘟仿。
4.增加了”測試人員“、”開發(fā)人員“字段比勉,以前只有”處理人“劳较,責權不清
5.增加了”解決期限“字段
由此,可進一步通過數據清晰了解開發(fā)質量浩聋,并對BUG處理進度進行監(jiān)督观蜗。
第二、擬建立定期codereview制度
目前因為目前代碼開發(fā)效率的要求衣洁,也不好開太多的會墓捻,占用太對的工作時間,我計劃在每個周二晚上由安卓坊夫、蘋果砖第、java的PLA對組內其他同學代碼編寫代碼進行評審,在評審過程中环凿,提出問題和意見梧兼,并由此逐步建立代碼規(guī)范。
第三智听、建立單元測試流程
第四羽杰、強化老帶新的工作風氣,建立新人責任制到推,新人出的問題考赛,老人如果不反饋,也要跟著負責莉测。同時也要強化新人和老人溝通反饋的文化颜骤。
綜上想法,都是基于“質量左移”的思路悔雹,提升開發(fā)質量复哆,需要從在編寫代碼前的產品方案制定、測試用例評審腌零、代碼審計等方面做深做透才能有效提升代碼的編寫質量梯找。