程序員工作效率悖論
程序員看起來是非常高效的人。你經常看到他們在桌子上碼字。他們迫不及待的開完會議,快點回到他們的桌子上繼續編程。當被問起來為什么這樣,他們會說他們沒有足夠的時間完成編碼,越早開始,就能越快完成。
因此寫代碼一定是最重要的事情,是這樣嗎?
如果普通程序員每天寫50行產品代碼。一個50000行的程序需要1000人天來完成。這50000行的代碼清單可以由一個程序員一天寫1000行左右或大概50人天完成。
那么開發者剩余的950天到底做了什么?
在回答這個疑問之前,讓我們做一個簡單的觀察。Capers Jones比較了很多方法論(RUP、XP、Agile、Waterfall等)和許多項目上的編程語言,斷定了程序員每個月的代碼行數在325和750之間,少于上面提到的1000代碼行每月的數量。即使程序員平均每天沒有達到50行代碼,下列的也是很清楚的。
-
方法論不能解釋明顯的生產力差距
</li> -
任何語言都不占明顯的生產力差距的比重
</li> </ul>實際上只有很小部分開發者的時間是真正花在寫有效代碼上的。如果一個開發者一直在寫代碼,那么他們在努力嘗試不同的代碼組合,直到他們最終發現有效的代碼組合。
或者更加準確的說,在QA或業務分析人員返回來跟他們說出現問題之前,這個組合看起來是符合需求的。這就是為什么那些在敲鍵盤前規劃代碼的開發者常常比其他開發者做得更好。不僅只有一小部分開發者在編碼前真的對代碼做計劃,擁有多年經驗的人也不教開發者學著做計劃。實際上,超過40年的研究表明,開發者效率不會隨著經驗年限而改變。(請看 無經驗要求)經驗年限不會推動高效率
有趣的是,很多方法論圍繞著強調規劃代碼這個話題已經有很長一段時間了。Watts Humphrey就是創建于個人軟件過程(PSP)。 已經可以測量出使用PSP:
PSP可以提高21.2%的生產效率和31.2%的質量。
如果你感興趣,還有很多其他不太經常使用的提高代碼質量的證明方法。(請看 弱者無計劃)
如果你的開發者沒有在白板上計劃就在寫代碼,那么你的生產力效率不會有本應有的那么高。
參考目錄
1.人月神話更悲觀地指出程序員每天寫出10行產品代碼
2.Jones,Capers 和 Bonsignour,Olivier.軟件質量經濟 Addison Wesley.2011
3.Watts,Humphrey.個人關鍵過程簡介,Addison Wesley Longman.1997
毫無疑問,我是他們中的最大”輸家”。我相信我已經至少犯過書中提到的每一個錯誤。引用:來自JCG 的伙伴Dalip Mahal在Accelerated Development博客上的程序員效率悖論
原文鏈接: Dalip Mahal 翻譯: 伯樂在線 - 都叫我老莫
譯文鏈接: http://blog.jobbole.com/69906/本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!