[轉]關于軟件開發的21條“規律”
這些規律兩年前在一論壇上看到過,這幾天在一linux社區上重現,發現體會不一樣了,發現我認同的多了。全文如下:
每個有經驗的程序員都知道,在軟件開發中存在著一些規律。但是,破壞了這些規律并不會得到懲罰,相反會有些許獎勵。
1. 任何一個程序一旦發布就意味著它已經過時了。
2. 讓需求根據程序調整往往要比讓程序根據需求調整來得容易。
3. 如果一個程序是有用的,那它必將被改變。
4. 如果一個程序是無用的,那它必須被注釋。
5. 在任何一個程序里只有10%的代碼會被執行。
6. 軟件會無限擴張以占用所有的系統資源。
7. 任何有價值的程序都會包含至少一個錯誤。
8. 一個演示版的程序完美無瑕的幾率和關注它的人數成反比,最終要花費的金錢的數量是原數量的平方。
9. 一個程序的致命錯誤要到其發布至少半年后才會被發現。
10. 不可檢測的錯誤是無窮無盡的,并以各種形式存在;相反,可檢測的錯誤從理論上講是有限的。
11. 隨著時間的推移,修正某個錯誤所需花費的精力會成指數級增加。
12. 程序的復雜度會一直增長,直到超出維護它的程序員的能力為止。
13. 一段你自己寫的代碼如果幾個月不曾看過,那很有可能其他人也會寫出相同的代碼。
14. 在每個小程序里都會有一大段代碼想要破殼而出。
15. 你越快開始編寫代碼,就會需要越長的時間。
16. 一個項目如果沒有精心策劃,那將需要比預期多出兩倍的時間來完成它;相反的,如果項目是精心策劃過的,就只需要多出一倍的時間。
17. 向一個落后于進度的項目添加程序員只會讓項目更加落后于進度。
18. 一個程序的完成程度總在90%到95%之間。
19. 如果你讓一團糟糕的代碼自動化,那你就會得到一團自動化的糟糕的代碼。
20. 建立一個連傻瓜都會使用的程序,而只有一個傻瓜才想要去使用它。
21. 用戶直到他們使用了一個程序之后才知道他們究竟想要的是什么。
posted on 2008-09-05 07:47 justBlue 閱讀(77) 評論(0) 編輯 收藏 所屬分類: 思想歸納