以下是研究報告中用於度量的一些實踐:
- 對技術債務(Technical debt)的處理
- 監視和修正程式碼質量問題
- 自動化測試
- 結對程式設計
- 程式碼評審
貫徹上述實踐可以提高軟體質量,但是需要付出的金錢和時間成本又如何?這時就要使用可預測性的度量。將這些實踐與軟體按時釋出的可能性相比,我們可以妥當得出可靠度量,來審視提高質量花費的時間能否滿足最終期限。
處理技術債務
技術債務是指為了其他任務而推遲的工作。大部分延後的工作都是不用馬上處理的,但如果不好好處理這些任務,可能在將來引起更棘手的問題。
結論:需要偶爾處理下技術債務。始終解決技術債務相比時不時解決下會有較小的提高,但並不顯著。
解決技術債務對可預測性和質量的影響:
監視和修復程式碼質量問題:
結論:修復程式碼質量能夠顯著提高軟體的質量和釋出的可預測性,很可能因為這樣的實踐會讓工程師們注意軟體應用中潛在的結構性問題。
修復程式碼質量問題對可預測性和質量的影響:
自動化測試
結論:100% 使用自動化測試要比部分測試覆蓋率要好,但不使用自動化測試要比部分自動化測試要略微好些——很可能是這些工程師在人工測試他們的程式碼。
自動化功能測試對可預測性和質量的影響:
結對程式設計
結論:結對程式設計(一人稽核程式碼,另一人編寫程式碼)對軟體質量有顯著影響。
結對程式設計對質量和可預測性的影響:
程式碼評審
結論:從報告來看,評審程式碼對軟體釋出的可預測性有顯著影響,但是對質量影響很小。這種實踐可能會幫助開發人員發現設計和方向上的重大問題,但並不能暴露小問題,例如軟體缺陷(bugs)。
程式碼評審對質量和可預測性的影響:
英文原文:The State of Developer Productivity
相關閱讀
評論(2)