一次把事情做好

有一個項目,客戶在美國,僱傭的開發團隊在中國。客戶說開發人員的技術能力非常好,但就是提交的代碼Bug太多。所以客戶每次都要花很多時間來測試和溝通那些Bug。因此客戶對那個團隊的工作不算滿意。

下面是我的簡單分析和建議。

Bug多有兩種基本情況:一是開發人員沒有弄明白需求是什麼;二是需求弄明白了,但是設計和實現的質量有問題。 

對於任何一種情況,都可以通過分析以往的Bug的產生原因來提出修正方案。

建議從客戶提出的那些Bug裏,分析哪些是由於需求溝通沒有達成一致或者需求溝通不充分造成的。然後要看爲什麼沒有達成一致,以及在哪些方面不充分。是因爲語言上的問題導致的雙方的誤解嗎?對某個功能執行的前提條件和後置條件都仔細考慮了嗎?對於UI,考慮到各種異常數據了嗎?考慮到數據格式了嗎?考慮數據量大小了嗎?。。。溝通需求的時候,我們總是有很多假定,但是這些假定是在自己腦子裏的,客戶的假定也在他的腦子裏,都需要說明白。爲了避免重複地溝通這些假定,可以有一個簡單的文檔來記錄一些公共的需求。

還要分析哪些Bug是由於設計上欠考慮或者實現時的錯誤導致的。對於每個類的每個方法,也需要考慮前置條件和後置條件,還有其他的非功能性需求。把這些分析清楚其實就是爲每個方法定義了入口和出口條件,其實也就是將需求分配到了每個類的每個方法上。按照這些分配了的需求來實現。

還有的Bug是因爲修改代碼引起的。重構是不可避免的。但是如何保證重構能不引入新的Bug,如何保證已經修復Bug不再出現?辦法是自動化測試和持續集成。

效率不是快速編碼,而是一次把事情做好。返工是造成效率低的重要原因。所以,除了我們積極的工作態度,熟練的技能之外,儘可能把事情‘一次做好’的理念也是非常重要的。一次做好意味着每天提交的代碼都是經過測試的,並且只有非常少的Bug。

個人建議,僅供參考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章