1975年《人月神話》的觀點(diǎn):
第一章 焦油坑
1班挖、編程系統(tǒng)產(chǎn)品開(kāi)發(fā)的工作量是供個(gè)人使用的缀去、獨(dú)立開(kāi)發(fā)的構(gòu)建程序的9倍廓啊。我估計(jì)軟件構(gòu)件產(chǎn)品化引起了3倍工作量。將軟件構(gòu)件整合成完整系統(tǒng)所需要的設(shè)計(jì)牛曹、集成和測(cè)試又加強(qiáng)了3倍工作量,這些高成本的構(gòu)件在根本上是相互獨(dú)立的醇滥。
2黎比、編程行業(yè)“滿足我們內(nèi)心深處的創(chuàng)造渴望和愉悅所有人的共有感情”提供了五種樂(lè)趣:
創(chuàng)建事物的快樂(lè)
開(kāi)發(fā)對(duì)其他人有用的東西的樂(lè)趣
將可以活動(dòng)、相互嚙合的零部件組裝成類似迷宮的東西鸳玩,這個(gè)過(guò)程所體現(xiàn)出令人神魂顛倒的魅力阅虫。
面對(duì)不重復(fù)任務(wù),不斷學(xué)習(xí)的樂(lè)趣不跟。
工作在如此易于駕馭的介質(zhì)上的樂(lè)趣——純粹的思維活動(dòng)——其存在颓帝、移動(dòng)和運(yùn)轉(zhuǎn)方式完全不同于實(shí)際物體。
3、這個(gè)行業(yè)的苦惱(6個(gè))
追求完美
由他人來(lái)設(shè)定目標(biāo)
真正的權(quán)威來(lái)自于每次任務(wù)的完成
任何創(chuàng)造性活動(dòng)都伴隨著枯燥和艱苦的勞動(dòng)购城,編程也不例外
人們通常期望項(xiàng)目接近結(jié)束時(shí)會(huì)收斂快些吕座,實(shí)際相反
產(chǎn)品在完成前都有面臨陳舊過(guò)時(shí)的威脅
第二章 人月神話
1、缺乏合理的時(shí)間進(jìn)度是造成項(xiàng)目滯后的最主要原因瘪板,它比其他所有因素的總和影響還大吴趴。
2、由于編程人員通過(guò)純粹的思維活動(dòng)來(lái)開(kāi)發(fā)侮攀,我們期待在實(shí)現(xiàn)過(guò)程中不會(huì)碰到困難锣枝。但是,我們構(gòu)思本身是有缺陷的魏身,因此總會(huì)有bug惊橱。
3、人月是危險(xiǎn)和帶有欺騙性的神話箭昵,因?yàn)樗凳救藛T數(shù)量和時(shí)間是可以相互替換的税朴。
4、在若干人員中分解任務(wù)會(huì)引發(fā)額外的溝通工作量——培訓(xùn)和相互溝通家制。
5正林、關(guān)于進(jìn)度安排,我的經(jīng)驗(yàn)是1/3計(jì)劃颤殴、1/6編碼觅廓、1/4構(gòu)件測(cè)試和1/4系統(tǒng)測(cè)試。
6涵但、作為一門學(xué)科杈绸,我們?nèi)狈?shù)據(jù)估計(jì)。
7矮瘟、我們對(duì)自己的估計(jì)技術(shù)不確定瞳脓,因此在管理和客戶壓力下,我們常常缺乏堅(jiān)持的勇氣澈侠。
8劫侧、Brooks法則:向進(jìn)度落后的項(xiàng)目增加人手,只會(huì)使進(jìn)度更加落后哨啃。(主要原因?yàn)?個(gè)烧栋,任務(wù)重新分配本身造成工作中斷,培訓(xùn)新人員拳球,額外的相互溝通)
第三章 外科手術(shù)隊(duì)伍
1审姓、優(yōu)秀專業(yè)的程序猿生產(chǎn)率是較差程序猿的10倍
2、數(shù)據(jù)顯示祝峻,經(jīng)驗(yàn)和現(xiàn)實(shí)之間沒(méi)有相互聯(lián)系魔吐,我懷疑這種現(xiàn)象是否普遍成立
3次坡、小型、精干的隊(duì)伍是最好的——思緒盡可能的少画畅,但對(duì)于真正的大型系統(tǒng)砸琅,小型精干隊(duì)伍太慢了
4、絕大多數(shù)大型編程系統(tǒng)的經(jīng)驗(yàn)顯示轴踱,一擁而上的開(kāi)發(fā)是高成本症脂、速度緩慢、低效的淫僻,開(kāi)發(fā)出的產(chǎn)品無(wú)法進(jìn)行概念上的集成
5诱篷、一位首席程序猿,類似于外科手術(shù)隊(duì)伍的團(tuán)隊(duì)架構(gòu)雳灵,既能獲得由少數(shù)頭腦產(chǎn)生的產(chǎn)品完整性棕所,又能得到多位協(xié)助人員的總體生產(chǎn)率,還徹底地減少了溝通的工作量悯辙。
第四章 貴族專制琳省、民主政治和系統(tǒng)設(shè)計(jì)
1、概念完整性是系統(tǒng)設(shè)計(jì)中最重要的考慮因素躲撰。
2针贬、功能與理解上的復(fù)雜程度的比值才是系統(tǒng)設(shè)計(jì)的最終測(cè)試標(biāo)準(zhǔn),而不僅僅是豐富的功能拢蛋。
3桦他、為了獲得概念完整性,設(shè)計(jì)必須由一個(gè)人或者一個(gè)具有共識(shí)的小型團(tuán)隊(duì)來(lái)完成谆棱。
4快压、對(duì)于非常大型的項(xiàng)目,將體系結(jié)構(gòu)方面的工作與具體實(shí)現(xiàn)相分離是獲得概念完整性的強(qiáng)有力方法垃瞧。
5蔫劣、紀(jì)律、規(guī)則對(duì)行業(yè)是有益的皆警。外部體系結(jié)構(gòu)規(guī)定實(shí)際上是增強(qiáng)拦宣,而不是限制實(shí)現(xiàn)小組的創(chuàng)造性截粗。
6信姓、概念上統(tǒng)一的系統(tǒng)能更快地開(kāi)發(fā)和測(cè)試。
7绸罗、體系結(jié)構(gòu)意推、設(shè)計(jì)實(shí)現(xiàn)、物理實(shí)現(xiàn)的許多工作可以并發(fā)進(jìn)行珊蟀。(軟硬件設(shè)計(jì)都可以并行)
第五章
1菊值、盡早交流和持續(xù)溝通能使結(jié)構(gòu)師有較好的成本意識(shí)外驱。使開(kāi)發(fā)人員獲得對(duì)設(shè)計(jì)的信心,并且不會(huì)混淆各自的責(zé)任分工腻窒。
2昵宇、結(jié)構(gòu)師如何成功地影響實(shí)現(xiàn)
牢記是開(kāi)發(fā)人員承擔(dān)創(chuàng)造性的實(shí)現(xiàn)責(zé)任,結(jié)構(gòu)師只能提出建議儿子。
時(shí)刻準(zhǔn)備著為所指定的說(shuō)明建議一種實(shí)現(xiàn)的方法瓦哎,準(zhǔn)備接受任何其他可行的方法。
對(duì)上述建議保持低調(diào)和平靜柔逼。
準(zhǔn)備對(duì)所建議的改進(jìn)放棄堅(jiān)持蒋譬。
聽(tīng)取開(kāi)發(fā)人員在體系結(jié)構(gòu)上改進(jìn)的建議。
3愉适、人們所設(shè)計(jì)的最危險(xiǎn)的系統(tǒng)犯助,通常是過(guò)分地進(jìn)行設(shè)計(jì)。
4维咸、為功能分配優(yōu)先權(quán)值是一個(gè)很有價(jià)值的規(guī)范化方法剂买。
第六章 貫徹執(zhí)行
必須明確定義體系結(jié)構(gòu)中與先前定義不同的地方,重新定義的詳細(xì)程度應(yīng)該與原先的說(shuō)明一致癌蓖。
出于精確性考慮雷恃,我們需要形式化地設(shè)計(jì)定義,同樣费坊,我們需要記敘定義來(lái)加深理解倒槐。
允許體系結(jié)構(gòu)師對(duì)實(shí)現(xiàn)人員的詢問(wèn)做出電話應(yīng)答解釋是非常重要的,并且必須進(jìn)行日志記錄和整理發(fā)布附井。
項(xiàng)目經(jīng)理最好的朋友就是他每天要面對(duì)的對(duì)手——獨(dú)立的產(chǎn)品測(cè)試機(jī)構(gòu)/小組讨越。
第七章 為什么巴比倫塔會(huì)失敗
缺乏組織和交流
需要盡早盡量仔細(xì)的設(shè)計(jì)工作手冊(cè)結(jié)構(gòu)
每個(gè)團(tuán)隊(duì)成員應(yīng)該了解所有的材料(看到網(wǎng)頁(yè))
實(shí)時(shí)更新是至關(guān)重要的
組織結(jié)構(gòu)應(yīng)該是網(wǎng)狀,而不是樹(shù)型結(jié)構(gòu)永毅。
第八章 胸有成竹
構(gòu)建獨(dú)立的小型程序的數(shù)據(jù)不適用于編程系統(tǒng)項(xiàng)目
當(dāng)使用適當(dāng)?shù)母呒?jí)語(yǔ)言編程時(shí)把跨,程序編制生產(chǎn)率可以提高5倍。
第九章 削足適履
除了運(yùn)行時(shí)間外沼死,程序所占據(jù)的內(nèi)存空間也是主要開(kāi)銷着逐。規(guī)模本身不是件壞事,但不必要的規(guī)模是不可取的意蛀。
軟件開(kāi)發(fā)人員必須設(shè)立規(guī)模目標(biāo)耸别,控制規(guī)模,發(fā)明一些減少規(guī)模的方法县钥。
對(duì)于每個(gè)關(guān)鍵的文檔的維護(hù)提供了狀態(tài)監(jiān)督和預(yù)警機(jī)制
對(duì)于每個(gè)文檔本身就可以作為檢查列表或者數(shù)據(jù)庫(kù)
第11章 未雨綢繆
開(kāi)發(fā)人員交付的是用戶滿意程度秀姐,而不僅僅是實(shí)際的產(chǎn)品。
用戶的實(shí)際需要和感覺(jué)會(huì)隨著程序的構(gòu)建若贮、測(cè)試和使用而不斷變化省有。
對(duì)于一個(gè)廣泛使用的程序痒留,其維護(hù)總成本通常是開(kāi)發(fā)成本的40%或者更多。
缺陷修復(fù)總會(huì)以20%-50%的幾率引入新bug
第12章干將莫邪
第13章整體部分
今天軟件工程的一些特殊問(wèn)題
1.如何把一系列程序設(shè)計(jì)構(gòu)建成系統(tǒng)蠢沿。
2.如何把程序或者系統(tǒng)設(shè)計(jì)構(gòu)建成健壯的伸头、經(jīng)過(guò)測(cè)試的、文檔化的舷蟀、可支持的產(chǎn)品熊锭。
3.如何維持對(duì)大量的復(fù)雜性的控制。
//本書(shū)最亮的地方雪侥,在于通過(guò)過(guò)去看現(xiàn)在碗殷,看歷史演進(jìn),看誰(shuí)主沉浮速缨。