程式設計師工作效率悖論

jobbole發表於2014-06-17

程式設計師看起來是非常高效的人。你經常看到他們在桌子上碼字。他們迫不及待的開完會議,快點回到他們的桌子上繼續程式設計。當被問起來為什麼這樣,他們會說他們沒有足夠的時間完成編碼,越早開始,就能越快完成。

Programmer_Blog

因此寫程式碼一定是最重要的事情,是這樣嗎?

如果普通程式設計師每天寫50行產品程式碼。一個50000行的程式需要1000人天來完成。這50000行的程式碼清單可以由一個程式設計師一天寫1000行左右或大概50人天完成。

那麼開發者剩餘的950天到底做了什麼?

在回答這個疑問之前,讓我們做一個簡單的觀察。Capers Jones比較了很多方法論(RUP、XP、Agile、Waterfall等)和許多專案上的程式語言,斷定了程式設計師每個月的程式碼行數在325和750之間,少於上面提到的1000程式碼行每月的數量。即使程式設計師平均每天沒有達到50行程式碼,下列的也是很清楚的。

  • 方法論不能解釋明顯的生產力差距
  • 任何語言都不佔明顯的生產力差距的比重

實際上只有很小部分開發者的時間是真正花在寫有效程式碼上的。如果一個開發者一直在寫程式碼,那麼他們在努力嘗試不同的程式碼組合,直到他們最終發現有效的程式碼組合。

programmer
或者更加準確的說,在QA或業務分析人員返回來跟他們說出現問題之前,這個組合看起來是符合需求的。這就是為什麼那些在敲鍵盤前規劃程式碼的開發者常常比其他開發者做得更好。不僅只有一小部分開發者在編碼前真的對程式碼做計劃,擁有多年經驗的人也不教開發者學著做計劃。實際上,超過40年的研究表明,開發者效率不會隨著經驗年限而改變。(請看 無經驗要求

經驗年限不會推動高效率

有趣的是,很多方法論圍繞著強調規劃程式碼這個話題已經有很長一段時間了。Watts Humphrey就是建立於個人軟體過程(PSP)。 已經可以測量出使用PSP:

PSP可以提高21.2%的生產效率和31.2%的質量。

如果你感興趣,還有很多其他不太經常使用的提高程式碼質量的證明方法。(請看 弱者無計劃

如果你的開發者沒有在白板上計劃就在寫程式碼,那麼你的生產力效率不會有本應有的那麼高。

programmer3

參考目錄
1.人月神話更悲觀地指出程式設計師每天寫出10行產品程式碼
2.Jones,Capers 和 Bonsignour,Olivier.軟體質量經濟 Addison Wesley.2011
3.Watts,Humphrey.個人關鍵過程簡介,Addison Wesley Longman.1997
毫無疑問,我是他們中的最大”輸家”。我相信我已經至少犯過書中提到的每一個錯誤。

引用:來自JCG 的夥伴Dalip Mahal在Accelerated Development部落格上的程式設計師效率悖論

相關文章