(點(diǎn)擊上方公眾號,可快速關(guān)注)
譯文:伯樂在線 / 都叫我老莫
英文:Dalip Mahal
鏈接:http://blog.jobbole.com/69906/
點(diǎn)擊 → 了解如何加入專欄作者
程序員看起來是非常高效的人。你經(jīng)??吹剿麄冊谧雷由洗a字。他們迫不及待的開完會議,快點(diǎn)回到他們的桌子上繼續(xù)編程。當(dāng)被問起來為什么這樣,他們會說他們沒有足夠的時間完成編碼,越早開始,就能越快完成。
因此寫代碼一定是最重要的事情,是這樣嗎?
如果普通程序員每天寫 50 行產(chǎn)品代碼。一個 50000 行的程序需要 1000 人天來完成。這 50000 行的代碼清單可以由一個程序員一天寫 1000 行左右或大概 50 人天完成。
那么開發(fā)者剩余的 950 天到底做了什么?
在回答這個疑問之前,讓我們做一個簡單的觀察。Capers Jones 比較了很多方法論(RUP、XP、Agile、Waterfall 等)和許多項(xiàng)目上的編程語言,斷定了程序員每個月的代碼行數(shù)在 325 和 750 之間,少于上面提到的 1000 代碼行每月的數(shù)量。即使程序員平均每天沒有達(dá)到 50 行代碼,下列的也是很清楚的。
方法論不能解釋明顯的生產(chǎn)力差距
任何語言都不占明顯的生產(chǎn)力差距的比重
實(shí)際上只有很小部分開發(fā)者的時間是真正花在寫有效代碼上的。如果一個開發(fā)者一直在寫代碼,那么他們在努力嘗試不同的代碼組合,直到他們最終發(fā)現(xiàn)有效的代碼組合。
或者更加準(zhǔn)確的說,在 QA 或業(yè)務(wù)分析人員返回來跟他們說出現(xiàn)問題之前,這個組合看起來是符合需求的。這就是為什么那些在敲鍵盤前規(guī)劃代碼的開發(fā)者常常比其他開發(fā)者做得更好。不僅只有一小部分開發(fā)者在編碼前真的對代碼做計劃,擁有多年經(jīng)驗(yàn)的人也不教開發(fā)者學(xué)著做計劃。實(shí)際上,超過 40 年的研究表明,開發(fā)者效率不會隨著經(jīng)驗(yàn)?zāi)晗薅淖?。(請?無經(jīng)驗(yàn)要求)
經(jīng)驗(yàn)?zāi)晗薏粫苿痈咝?/p>
有趣的是,很多方法論圍繞著強(qiáng)調(diào)規(guī)劃代碼這個話題已經(jīng)有很長一段時間了。Watts Humphrey 就是創(chuàng)建于個人軟件過程(PSP)。 已經(jīng)可以測量出使用 PSP:
PSP 可以提高 21.2% 的生產(chǎn)效率和 31.2% 的質(zhì)量。
如果你感興趣,還有很多其他不太經(jīng)常使用的提高代碼質(zhì)量的證明方法。(請看 弱者無計劃)
如果你的開發(fā)者沒有在白板上計劃就在寫代碼,那么你的生產(chǎn)力效率不會有本應(yīng)有的那么高。
參考目錄
1. 人月神話更悲觀地指出程序員每天寫出 10 行產(chǎn)品代碼
2.Jones,Capers 和 Bonsignour,Olivier. 軟件質(zhì)量經(jīng)濟(jì) Addison Wesley.2011
3.Watts,Humphrey. 個人關(guān)鍵過程簡介,Addison Wesley Longman.1997
毫無疑問,我是他們中的最大” 輸家”。我相信我已經(jīng)至少犯過書中提到的每一個錯誤。
引用:來自 JCG 的伙伴 Dalip Mahal 在 Accelerated Development 博客上的程序員效率悖論
【今日微信公號推薦↓】