自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于程序員開(kāi)發(fā)效率的悖論

開(kāi)發(fā) 后端 前端
Capers Jones研究了數(shù)萬(wàn)個(gè)軟件項(xiàng)目,他通過(guò)比較其中的各種軟件開(kāi)發(fā)方法(RUP,極限編程,敏捷開(kāi)發(fā),瀑布開(kāi)發(fā)等等)和各種編程語(yǔ)言,發(fā)現(xiàn),一個(gè)程序員每月平均寫出的代碼大概是325行到750行,比我們上面說(shuō)到的每月1000行還要少。就算是程序員不是每天只寫50行代碼,但下面兩點(diǎn)是清楚的。

程序員看起來(lái)應(yīng)該都是一幫非常高產(chǎn)的人。

你總能看到他們?cè)陔娔X桌前噼里啪啦的敲著鍵盤;他們焦急的等待會(huì)議結(jié)束,希望馬上能回去編程。當(dāng)被問(wèn)起,他們總是說(shuō)沒(méi)有足夠的時(shí)間編寫出這些程序,需要立刻開(kāi)始編碼,這樣才能及早完成。

看來(lái),敲代碼一定是最重要的事情了,不是嗎?

如果一個(gè)普通水平的程序員每天能寫出50行代碼。一個(gè)5萬(wàn)行代碼的程序?qū)?huì)需要1000人/天來(lái)開(kāi)發(fā)。把5萬(wàn)行代碼輸入電腦里,一個(gè)程序員每天能錄1000行,也就需要50人/天。

那么,剩下的950天這些程序員都在干什么?

在搞清楚這個(gè)問(wèn)題前,讓我們先看一些簡(jiǎn)單的資料。Capers Jones研究了數(shù)萬(wàn)個(gè)軟件項(xiàng)目,他通過(guò)比較其中的各種軟件開(kāi)發(fā)方法(RUP,極限編程,敏捷開(kāi)發(fā),瀑布開(kāi)發(fā)等等)和各種編程語(yǔ)言,發(fā)現(xiàn),一個(gè)程序員每月平均寫出的代碼大概是325行到750行,比我們上面說(shuō)到的每月1000行還要少。就算是程序員不是每天只寫50行代碼,但下面兩點(diǎn)是清楚的。

  • 開(kāi)發(fā)方法的差異不能解釋程序員代碼生產(chǎn)量上的不平衡
  • 使用的編程語(yǔ)言無(wú)關(guān)程序員代碼生產(chǎn)量上的不平衡

combinations2

實(shí)際情況是,只有很小一部分的程序員的時(shí)間是花在寫代碼上的。如果一個(gè)程序員的所有時(shí)間都在敲代碼,那他一定是在嘗試不同的代碼組合,直到找到好用的代碼組合。

更準(zhǔn)確的說(shuō)法是,找到看起來(lái)是符合需求的“代碼組合”——如果測(cè)試人員或業(yè)務(wù)分析師不來(lái)告知說(shuō)這些代碼是有問(wèn)題的。

這就是為什么在把手放到鍵盤上前喜歡先計(jì)劃代碼如何寫的程序員會(huì)比其他程序員效率高的原因。事實(shí)上,不僅僅只有很少數(shù)的程序員在寫代碼前先計(jì)劃,很多即使有多年編程經(jīng)驗(yàn)的老程序員也不知道這個(gè)道理。一項(xiàng)持續(xù)40年的研究表明,程序員的開(kāi)發(fā)效率并不會(huì)隨閱歷的增加而增加。(參考No Experience Required!)

多年的編程閱歷并不是必然導(dǎo)致高開(kāi)發(fā)效率

十分有趣的是,各種強(qiáng)調(diào)編碼前先計(jì)劃的軟件開(kāi)發(fā)方法論都已經(jīng)存在很長(zhǎng)時(shí)間了。比如Personal Software Process (PSP),創(chuàng)始人Watts Humphrey根據(jù)統(tǒng)計(jì)數(shù)據(jù)說(shuō):

PSP能提高21.2%的生產(chǎn)效率和31.2%的質(zhì)量水平

jquery-whiteboard-marker-no

像這樣優(yōu)秀的實(shí)踐方法有很多??傊?,就像作家動(dòng)筆前先要構(gòu)思好文章的結(jié)構(gòu)和內(nèi)容一樣,程序員在按動(dòng)鍵盤前如果不先琢磨一陣,很可能發(fā)生的情況是他的開(kāi)發(fā)效率不會(huì)很高。

英文原文:The Programmer Productivity Paradox

譯文鏈接:http://www.vaikan.com/the-programmer-productivity-paradox/

責(zé)任編輯:林師授 來(lái)源: 外刊IT評(píng)論 編譯
相關(guān)推薦

2014-12-12 10:01:29

程序員

2011-02-16 09:18:50

人才

2019-11-27 10:08:36

程序員技能開(kāi)發(fā)者

2014-07-14 11:28:41

2011-09-30 11:13:31

51CTO博客一周熱門程序員

2014-12-05 09:59:17

程序員

2020-10-10 11:43:29

Java開(kāi)發(fā)代碼

2012-01-17 10:34:14

程序員

2020-10-08 15:01:17

開(kāi)發(fā)Java程序員

2015-08-19 09:10:37

程序員面試

2013-05-30 13:30:00

代碼效率程序員

2012-09-24 01:11:46

2018-04-19 14:50:50

2021-07-19 05:53:32

程序員工作效率效率

2015-10-12 09:03:53

程序員法則

2013-08-20 09:33:59

程序員

2018-02-27 16:28:41

軟件程序員接私活

2021-03-26 11:52:50

Debug效率運(yùn)行

2018-04-02 11:19:20

MacAppleScript代碼

2011-05-13 14:34:02

程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)