軟件工程必看——10條你最容易忽視的經(jīng)典法則

新智元報(bào)道
【新智元導(dǎo)讀】本文列出了10條經(jīng)常被忽視的軟件工程法則,包括康威定律、布魯克斯定律、扎溫斯基定律、帕金森定律、帕累托法則、斯特金的啟示、彼得原理、Eagleson 定律、Greenspun 的第十條編程規(guī)則以及冰山謬論。
1. 康威定律(Conway's Law)
任何設(shè)計(jì)系統(tǒng)的組織,其設(shè)計(jì)的結(jié)構(gòu)都是該組織溝通結(jié)構(gòu)的復(fù)制品。

2. 布魯克定律(Brooks's Law)
“給一個(gè)遲來(lái)的軟件項(xiàng)目增加人力會(huì)使它更遲。”

3. 扎溫斯基定律(Zawinski's Law)
“每個(gè)程序都試圖擴(kuò)展,直到它包含了一個(gè)web服務(wù)器。那些不能擴(kuò)展的項(xiàng)目會(huì)被能夠擴(kuò)展的項(xiàng)目所取代。”

4. 帕金森定律(Parkinson's Law)
工作完成的時(shí)間會(huì)影響工作的量"

在使用完所有可用的存儲(chǔ)空間/帶寬/周期/RAM之前,數(shù)據(jù)/CPU/內(nèi)存的使用會(huì)一直擴(kuò)展
5. 帕累托謬論(Pareto's Fallacy)
“當(dāng)你完成了80%時(shí),你會(huì)認(rèn)為你只剩下20%了。”

6. 斯特金啟示(Sturgeon's Revelation)
所有部分的90%都是無(wú)用的。

7. 彼得原則(The Peter Principle)
在等級(jí)制度中,每個(gè)員工都傾向于升到他們不能勝任的級(jí)別。因此,隨著時(shí)間的推移,每個(gè)崗位都有可能被不稱職的員工占據(jù)。”

8. Eagleson定律(Eagleson's Law)
任何你自己的代碼,如果你有6個(gè)月或更長(zhǎng)的時(shí)間沒(méi)有查看,就好像是別人寫(xiě)的一樣。

9. Greenspun編程的第10條規(guī)則(Greenspun's 10th Rule of Programming)
任何自定義開(kāi)發(fā)的身份驗(yàn)證系統(tǒng)都包含一個(gè)特別的、非正式指定的、充滿錯(cuò)誤的、緩慢的Kerberos實(shí)現(xiàn)。

10. 冰山謬論(The Iceberg Fallacy)
新軟件產(chǎn)品的開(kāi)發(fā)成本僅占所有權(quán)管理的總成本和預(yù)算的25%。


評(píng)論
圖片
表情
