揚尼斯定律:程式設計師的開發效率每6年提高一倍
| 2012-07-05 07:56 收藏: 1 分享: 2
我不斷的聽到各種關於“軟體危機”的警言,以及關於軟體開發缺少過程規範的批評。我做程式設計工作超過15年,我認為這些言論基本上都是錯的:我確信我能在很短的時間裡用如今的開發工具複製出15年前一個不錯的程式設計師開發出的東西。
模仿摩爾定律和Proebsting定律(這個不像是預言,更像是挑唆),我要給出的定律是:程式設計師的開發效率每6年提高一倍。
為了證實我這個定律裡的數字部分,請注意下面我的發現。在1972年的《在分解模組化系統中用到的規範(On the Criteria to Be Used in Decomposing Systems into
Modules)》這篇經典論文裡,作者David Parnas寫道:
KWIC索引系統接受一個有序的多行資訊,每行由有序的多個片語成,每個詞由有序的多個字元組成。每行資訊都能透過把第一 個詞挪到行尾這樣“迴圈變換”。KWIC索引系統的輸出是每行內容都透過字母順序經過“迴圈變換”後的新行。這是一個小系統,如果不考慮特殊情況(海量數 據,沒有軟體支援),這樣一個系統由一箇中等水平的程式設計師來開發,能在一到兩週時間裡做出來。
現在是2003年,如果一個程式設計師不能在一或二個小時——而不是1972年的一至二週——做出這個系統,我會認為他是個不可接受的程式設計師。這就建立起了一個31年裡開發效率提高40倍、或者說每年12.5%提高的公式,由此而得到每6年開發效率提高一倍的結論。
請注意,沒有一個現代程式設計師所使用的開發工具是專門針對KWIC系統的需求的:這個問題需要“從頭解決”,所以,儘管跟1972年的時代不同,我們仍然可以這樣比較。
這種巨大的進步無疑是由於可複用的軟體程式碼、更好的開發工具、更好的程式語言,更好的計算機教育等因素疊加的結果。但同時也是使用更快的機器、允許我們忽略掉底層的操作、使用更便捷但效率稍微次一點的解決方案的結果。
[本文英文原文連結:Yannis's Law: Programmer Productivity Doubles Every 6 Years ]
來自:http://www.aqee.net/yanniss-law-programmer-productivity-doubles-every-6-years/
相關文章
- 程式設計師:提高程式設計效率的技巧程式設計師
- 可以提高程式設計師效率的工具!程式設計師
- .NET程式設計師提高效率的70多個開發工具程式設計師
- 每個程式設計師都該知道的五大定律程式設計師
- 對待Java程式設計,開發工程師如何提高效率?Java程式設計工程師
- 關於程式設計師開發效率的悖論程式設計師
- 程式設計師如何提高工作效率程式設計師
- 程式設計師生存定律--程式人生的出口程式設計師
- 提高Java架構師和程式設計師效率的10個工具Java架構程式設計師
- 提高程式設計師工作效率的5個工具程式設計師
- 遵守這些原則讓你開發效率提高一倍
- 優秀程式設計師必須知道的32個演算法,提高你的開發效率程式設計師演算法
- 提高程式設計師工作效率的5個訣竅程式設計師
- 提升開發效率,程式設計師都在使用的免費api程式設計師API
- 程式設計師如何巧用Excel提高工作效率程式設計師Excel
- 朝九晚五的程式設計師如何提高開發技能程式設計師
- 每個Java程式設計師必備的8個開發工具Java程式設計師
- 程式設計師提高效率的一些建議程式設計師
- 程式設計技巧│提高 Javascript 程式碼效率的技巧程式設計JavaScript
- Proebsting定律:編譯器每18年只將計算能力提升一倍編譯
- PM 幫程式設計師提高效率需要做的 5 件事程式設計師
- 程式設計師能夠得到的最好讚揚程式設計師
- 淺談如何提高程式設計效率?程式設計
- iOS 提高開發效率iOS
- 程式設計師生存定律--成長路上要知道的程式設計師
- 為什麼開源可以提高程式設計師的程式設計技能?程式設計師
- 程式設計師入門,7個方法幫助你提高學習效率!程式設計師
- 如何提高App開發的效率?APP
- Facebook工程師開發工具提高VR內容開發效率工程師VR
- 每個Java程式設計師需要了解的8個Java開發工具Java程式設計師
- 更慢的程式設計師效率更高嗎?程式設計師
- 如何摧毀程式設計師的效率?程式設計師
- 53個要點提高PHP程式設計效率PHP程式設計
- 程式設計師生存定律--表達背後的力量(1)程式設計師
- 程式設計師生存定律--表達背後的力量(2)程式設計師
- 每週五程式設計師段子程式設計師
- 用 FutureBuilder 提高開發效率Rebuild
- 提高開發效率小技巧