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