我作為一名程式設計師的經歷告訴了我很多軟體開發的事情,下面這些事就會讓人感到很驚訝。
1. 在一個專案程式中,一名程式設計師大概只用10%-20%的時間來寫程式碼,而且大部分程式設計師,不論在什麼技術水平上,每天只能寫出10-12行的能進入最終的產品的程式碼。優秀的程式設計師會用剩餘90%的時間思考、研究和實驗,從而得出最好的解決方案。水平較低的程式設計師會用90%的時間去除錯程式碼或盲目的修改程式,實驗性的檢驗程式能否正常執行。
2. 毫不誇張的說,一個優秀程式設計師的價值是普通程式設計師的十倍,而一個偉大程式設計師的價值是普通程式設計師的20-100倍。一個從20世紀60年代開始的研究也驗證了這一點,而且一個差勁的程式設計師不僅沒什麼價值——完不成工作,還留下了很多讓別人很難維護的程式碼。正如比爾.蓋茨曾經說過“一個偉大的車床工可以比一個一般的車床工多拿數倍高的工資,但一個偉大的軟體開發者的價值會比一個普通軟體開發者的價值高10000倍。”
3. 優秀的程式設計師只花很少的時間去寫程式碼——至少是那些最終形成產品的程式碼。那些花費大量時間寫程式碼的程式設計師都比較懶惰,比較無知或自大,不能發現現有的方案去解決問題。而優秀的程式設計師擅於認識到並重複利用通用模式,他們不怕重構他們之前的程式碼,從而達到更理想的模式。相反,那些水平較低的程式設計師寫出的程式碼缺乏完整性,沒有層次和模式,所以很難重複利用,相比於修改它們,還不如重新開始呢。
4. 和其它過程一樣,軟體開發同樣遵循著熵定律,持續的變化會導致軟體的磨損,特別是會破壞掉原始設計時的完整性。軟體的磨損是不可避免的,但在一開始就沒有軟體完整性概念的程式設計師更有可能寫出些出磨損更快的程式,那些程式甚至在沒有完成以前就沒有價值了。軟體完整性上的破壞是軟體專案失敗最常見的原因(第二大常見原因是沒有交出客戶想要的產品),軟體磨損使開發進度呈指數級減緩,大量的專案在失敗之前都面臨著突增的時間要求和資金預算。
5. 儘管大多數軟體專案都是團體開發的,但這並不是一項民主的活動。通常,都是一個人負責設計,其他人來填充一些細節內容。
6. 程式設計是一件艱苦的工作,是一項高度集中的腦力勞動。優秀的程式設計師會隨時思考他們的工作,他們最關鍵的程式碼部分(的構思)都是在淋浴時或睡夢中完成的。軟體開發中,最重要的工作都不是在電腦前完成的,所以對於一個專案開發,僅僅通過靠增加在辦公室的工作時間或增加人手來加快進度是徒勞的。
原文:http://automagical.rationalmind.net/2010/08/17/some-lesser-known-truths-about-programming/
(翻譯:Zeroing)
來自:PHP100
相關閱讀
評論(1)