關於程式設計師開發效率的悖論
程式設計師看起來應該都是一幫非常高產的人。
你總能看到他們在電腦桌前噼裡啪啦的敲著鍵盤;他們焦急的等待會議結束,希望馬上能回去程式設計。當被問起,他們總是說沒有足夠的時間編寫出這些程式,需要立刻開始編碼,這樣才能及早完成。
看來,敲程式碼一定是最重要的事情了,不是嗎?
如果一個普通水平的程式設計師每天能寫出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
- 關於程式設計師的漫畫程式設計師
- 程式設計師:提高程式設計效率的技巧程式設計師
- 關於 App 程式設計師泡沫APP程式設計師
- 關於App程式設計師泡沫APP程式設計師
- 關於程式設計風格的討論 (轉)程式設計
- 關於程式設計師的漫畫(三)程式設計師
- 關於程式設計師的一點感想程式設計師
- 關於Web開發,每個程式設計師都應瞭解的那些事Web程式設計師
- 更慢的程式設計師效率更高嗎?程式設計師
- 如何摧毀程式設計師的效率?程式設計師
- .NET程式設計師提高效率的70多個開發工具程式設計師
- 關於程式設計師的極品漫畫程式設計師
- 程式設計師的生產效率源於需求,而不是工具!程式設計師
- 可以提高程式設計師效率的工具!程式設計師
- 神祕的 10 倍效率程式設計師程式設計師
- 程式設計師的工作環境與效率程式設計師
- 一名全棧設計師的Mac工具箱(設計,開發,效率)全棧Mac
- 關於如何提高Web服務端併發效率的非同步程式設計技術Web服務端非同步程式設計
- 一個程式設計師的讀書筆記——關於程式設計的反思程式設計師筆記
- 程式設計師成才的關鍵:內在興趣和善於發現程式設計師
- 從學生到程式設計師(一) 關於程式設計 (轉)程式設計師
- 關於程式設計師這個職業程式設計師
- Java開發程式設計師:JVM相關的知識講解Java程式設計師JVM
- 對待Java程式設計,開發工程師如何提高效率?Java程式設計工程師
- 關於 Android 程式設計師最近的狀況Android程式設計師
- 關於程式設計師成長的一點思考程式設計師
- 揚尼斯定律:程式設計師的開發效率每6年提高一倍程式設計師
- 程式設計師要避免的開發模式程式設計師模式
- 論程式設計師的取財之道程式設計師
- 如何摧毀一個程式設計師的效率?程式設計師
- 小白致力於成為前後端開發程式設計師後端程式設計師
- 最早做遊戲設計與開發的女程式設計師遊戲設計程式設計師