關於程式設計師開發效率的悖論
程式設計師看起來應該都是一幫非常高產的人。
你總能看到他們在電腦桌前噼裡啪啦的敲著鍵盤;他們焦急的等待會議結束,希望馬上能回去程式設計。當被問起,他們總是說沒有足夠的時間編寫出這些程式,需要立刻開始編碼,這樣才能及早完成。
看來,敲程式碼一定是最重要的事情了,不是嗎?
如果一個普通水平的程式設計師每天能寫出50行程式碼。一個5萬行程式碼的程式將會需要1000人/天來開發。把5萬行程式碼輸入電腦裡,一個程式設計師每天能錄1000行,也就需要50人/天。
那麼,剩下的950天這些程式設計師都在幹什麼?
在搞清楚這個問題前,讓我們先看一些簡單的資料。Capers Jones研究了數萬個軟體專案,他通過比較其中的各種軟體開發方法(RUP,極限程式設計,敏捷開發,瀑布開發等等)和各種程式語言,發現,一個程式設計師每月平均寫出的程式碼大概是325行到750行,比我們上面說到的每月1000行還要少。就算是程式設計師不是每天只寫50行程式碼,但下面兩點是清楚的。
- 開發方法的差異不能解釋程式設計師程式碼生產量上的不平衡
- 使用的程式語言無關程式設計師程式碼生產量上的不平衡
實際情況是,只有很小一部分的程式設計師的時間是花在寫程式碼上的。如果一個程式設計師的所有時間都在敲程式碼,那他一定是在嘗試不同的程式碼組合,直到找到好用的程式碼組合。
更準確的說法是,找到看起來是符合需求的“程式碼組合”——如果測試人員或業務分析師不來告知說這些程式碼是有問題的。
這就是為什麼在把手放到鍵盤上前喜歡先計劃程式碼如何寫的程式設計師會比其他程式設計師效率高的原因。事實上,不僅僅只有很少數的程式設計師在寫程式碼前先計劃,很多即使有多年程式設計經驗的老程式設計師也不知道這個道理。一項持續40年的研究表明,程式設計師的開發效率並不會隨閱歷的增加而增加。(參考No Experience Required!)
多年的程式設計閱歷並不是必然導致高開發效率
十分有趣的是,各種強調編碼前先計劃的軟體開發方法論都已經存在很長時間了。比如Personal Software Process (PSP),創始人Watts Humphrey根據統計資料說:
PSP能提高21.2%的生產效率和31.2%的質量水平
像這樣優秀的實踐方法有很多。總之,就像作家動筆前先要構思好文章的結構和內容一樣,程式設計師在按動鍵盤前如果不先琢磨一陣,很可能發生的情況是他的開發效率不會很高。
相關文章
- 提升開發效率,程式設計師都在使用的免費api程式設計師API
- React的併發悖論React
- 關於 Android 程式設計師最近的狀況Android程式設計師
- 可以提高程式設計師效率的工具!程式設計師
- 對待Java程式設計,開發工程師如何提高效率?Java程式設計工程師
- 關於程式設計師這個職業程式設計師
- Java開發程式設計師:JVM相關的知識講解Java程式設計師JVM
- 小白致力於成為前後端開發程式設計師後端程式設計師
- 優秀程式設計師必須知道的32個演算法,提高你的開發效率程式設計師演算法
- (效率人生)程式設計師必備工具Dash程式設計師
- 毀滅程式設計師效率的 15 個障礙程式設計師
- 推薦幾個好用的程式設計師效率神器程式設計師
- 使用 ABAP 開發的一個基於 Web Socket 的小工具,能提高程式設計師日常工作效率Web程式設計師
- 程式設計師相信的關於時間方面的謊言程式設計師
- 程式設計師過關斬將--論商品促銷程式碼的優雅性程式設計師
- 頂級程式設計師推薦的程式設計開發書籍【整合】程式設計師
- 關於程式設計師的段子,有沒有get到你的點?程式設計師
- 真正的程式設計師,敢於直面枯燥的開發,敢於正視汙汙的段子程式設計師
- 多年前端開發程式設計師論述:這些必然的前端疲勞前端程式設計師
- 關於佛薩奇系統開發智慧合約程式設計丨開發佛薩奇程式設計程式碼示例程式設計
- 駁“低程式碼開發取代程式設計師”論 為什麼專業開發者也需要低程式碼?程式設計師
- 論程式設計師如何優雅的聽歌程式設計師
- 論讓程式設計師失業的Ying框架程式設計師框架
- Java程式設計師必讀:最新流行的Java開發程式設計技術Java程式設計師
- Qt程式設計師必看/關於Qt收費的官方答覆QT程式設計師
- 這是一篇關於程式設計師學習的文章程式設計師
- 關於要不要轉行做程式設計師的建議程式設計師
- 關於IC設計的一次討論
- 5款程式設計師常用的Python開發工具程式設計師Python
- 論跟程式設計師談話的技巧:千萬不要跟程式設計師說,你的程式碼有bug程式設計師
- windows程式設計師開發linux程式的頭一個月Windows程式設計師Linux
- 併發程式設計導論程式設計
- [併發程式設計]-關於 CAS 的幾個問題程式設計
- 久坐傷身?關於程式設計師站立式辦公的體驗,你會發現...程式設計師
- TGDC | 一個遊戲程式設計師的堅持 —— 論向量化程式設計遊戲程式設計師
- 【程式設計師的實用工具推薦】 Mac 效率神器 Alfred程式設計師MacAlfred
- 我關注的那些程式設計師大佬程式設計師
- 程式設計師的相關笑話(一)程式設計師
- 程式設計師“公關”日曆程式設計師