開發人員生產力狀態
英文原文:The State of Developer Productivity
評估開發人員的表現(performance)時,很難找到一個合適的、不依賴軼事證據(anecdotal evidence)的度量。所以當我們 Bowery 看到 Rebel Lab 開發人員生產力研究報告-下載鏈接時非常興奮。這份 40 頁的報告研究了開發人員在日常生活中使用的工具和實踐。為了能夠讓報告抓住“表現”所蘊含的主旨,Rebel Labs 加權了不同實踐和工具在軟件質量和版本發布的可預測性上的效果。
以下是研究報告中用于度量的一些實踐:
- 對技術債務(Technical debt)的處理
- 監視和修正代碼質量問題
- 自動化測試
- 結對編程
- 代碼評審
貫徹上述實踐可以提高軟件質量,但是需要付出的金錢和時間成本又如何?這時就要使用可預測性的度量。將這些實踐與軟件按時發布的可能性相比,我們可以妥當得出可靠度量,來審視提高質量花費的時間能否滿足最終期限。
處理技術債務
技術債務是指為了其他任務而推遲的工作。大部分延后的工作都是不用馬上處理的,但如果不好好處理這些任務,可能在將來引起更棘手的問題。
結論:需要偶爾處理下技術債務。始終解決技術債務相比時不時解決下會有較小的提高,但并不顯著。
解決技術債務對可預測性和質量的影響:
監視和修復代碼質量問題
結論:修復代碼質量能夠顯著提高軟件的質量和發布的可預測性,很可能因為這樣的實踐會讓工程師們注意軟件應用中潛在的結構性問題。
修復代碼質量問題對可預測性和質量的影響:
自動化測試
結論:100% 使用自動化測試要比部分測試覆蓋率要好,但不使用自動化測試要比部分自動化測試要略微好些——很可能是這些工程師在人工測試他們的代碼。
自動化功能測試對可預測性和質量的影響:
結對編程
結論:結對編程(一人審核代碼,另一人編寫代碼)對軟件質量有顯著影響。
結對編程對質量和可預測性的影響:
代碼評審
結論:從報告來看,評審代碼對軟件發布的可預測性有顯著影響,但是對質量影響很小。這種實踐可能會幫助開發人員發現設計和方向上的重大問題,但并不能暴露小問題,例如軟件缺陷(bugs)。
代碼評審對質量和可預測性的影響:
<span id="shareA4" class="fl">
</span>