第一篇:《人月神話》讀書筆記
第1章 焦油坑
這一章分成兩個(gè)部分:
? 程序(Program)、程序產(chǎn)品(Programming Product)、編程系統(tǒng)(Programming System)、編程系統(tǒng)產(chǎn)品(Programming Product System)的概念
? 程序員的工作性質(zhì)
比較有意思的是第一部分的四個(gè)概念。
在作者的眼中,程序就是一堆代碼,任何人可以宣稱自己會(huì)編程,但是編程得到的只是程序,而不是產(chǎn)品。程序要成為程序產(chǎn)品,需要有明確的輸入、功能和輸出,經(jīng)過完備的測(cè)試,具備合格的文檔,使之功能可靠,維護(hù)易行。
編程系統(tǒng)是從系統(tǒng)的角度來看待功能完整的程序模塊,要求程序要具備語法和語義精確的接口,能夠與其他的程序進(jìn)行流暢的交互。相比程序產(chǎn)品來說,不僅僅要嚴(yán)格測(cè)試程序自身的輸入、處理、輸出,還要測(cè)試與不同程序之間的交互,因?yàn)楹芏郻ug其實(shí)是隱含在不同功能模塊的交互過程中。另外編程系統(tǒng)還要考慮程序之外的軟硬件運(yùn)行環(huán)境。呵呵,只有經(jīng)過了集成測(cè)試之后才能稱之為編程系統(tǒng)。
最高級(jí)的形式是編程系統(tǒng)產(chǎn)品,從書中的表述來看,就是編程系統(tǒng)+各類文檔,文檔是為了后續(xù)維護(hù)和升級(jí)方便而準(zhǔn)備的。智力產(chǎn)品如果沒有說明書真是一場(chǎng)噩夢(mèng)啊,之前我們經(jīng)歷過的不少系統(tǒng)到了后續(xù)維護(hù)的時(shí)候發(fā)現(xiàn)文檔補(bǔ)齊,維護(hù)人員真是傷透腦筋,最后問題太多了索性就提議推倒重做??梢哉f如果是文檔齊備一點(diǎn),我們公司很多系統(tǒng)的壽命是可以更長(zhǎng)的。
第2章 人月神話
第二篇:人月神話讀書筆記
人月神話這本書幾年前就聽別人說是本很經(jīng)典的軟件開發(fā)方面的書,這本書的成功之處在于他思想的前衛(wèi)性,以至于不只是軟件行業(yè)的人在讀。現(xiàn)在終于找到讀他的理由了,可以感受一下大師的杰作。在讀之前我已經(jīng)讀過了軟件工藝和極限編程,為什么留到最后讀人月神話呢?主要是因?yàn)槲矣X得一本能夠流傳30年還被人們津津樂道的書,肯定是本學(xué)要好好細(xì)讀的書,所以留到了最后。按照前兩篇讀書筆記的慣例,前面幾段是一些我讀書時(shí)的感受和收獲,還有一些對(duì)內(nèi)容的評(píng)價(jià)。
從這本書的內(nèi)容來看,對(duì)于一個(gè)項(xiàng)目經(jīng)理來說肯定會(huì)有更大的收獲,這本書主要是針對(duì)軟件開發(fā)管理方面的內(nèi)容,這主要原因可能是因?yàn)樽髡咭郧熬褪琼?xiàng)目的管理者,他是站在管理者的角度寫的。即便這樣,對(duì)于一個(gè)從來沒有參與過真實(shí)項(xiàng)目開發(fā),更沒有領(lǐng)導(dǎo)過團(tuán)隊(duì)的我還是有一定的吸引力,這本書中我最喜歡的就是前四章(焦油坑、人月神話、外科手術(shù)隊(duì)伍、貴族專制、民主政治和系統(tǒng)設(shè)計(jì))和沒有銀彈這章。這本書里面為了論證某一觀點(diǎn),會(huì)舉出許多實(shí)際的項(xiàng)目作為證據(jù),這一點(diǎn)非常好,事實(shí)勝于雄辯嘛!這些例子也許對(duì)于作者那個(gè)年代的人來說很好理解,但是放在30年后來看這些例子又有些陳舊和難懂了。另外,從文中我發(fā)現(xiàn)作者非常注重文檔,一個(gè)優(yōu)質(zhì)的文檔就是項(xiàng)目成功的保證,這一點(diǎn)與傳統(tǒng)的軟件工程很相似,但是卻與極限編程的觀點(diǎn)相悖。下面就是一些讀書的總結(jié)了。
焦油坑 1.編程系統(tǒng)產(chǎn)品開發(fā)的工作量是供個(gè)人使用的、獨(dú)立開發(fā)的構(gòu)件程序的九倍。
2.編程行業(yè)的一些內(nèi)在固有苦惱:
l 將做事方式調(diào)整到追求完美,是學(xué)習(xí)編程的最困難部分。
l 由其他人來設(shè)定目標(biāo),并且必須依靠自己無法控制的事物。
l 真正的權(quán)威來自于每次任務(wù)的完成。
l 任何創(chuàng)造性活動(dòng)都伴隨著枯燥艱苦的勞動(dòng),編程也不例外
l 人們通常期望項(xiàng)目在接近結(jié)束時(shí)(bug、工作時(shí)間)能收斂得快一些,然而軟件項(xiàng)目的情況卻是越接近完成,收斂得越慢。
l 產(chǎn)品在即將完成時(shí)總面臨著陳舊過時(shí)的威脅。人月神話 1.缺乏合理的時(shí)間進(jìn)度是造成項(xiàng)目滯后的最主要原因,它比其他所有因素加起來影響還大。
2.良好的烹飪需要時(shí)間,某些任務(wù)無法在不損害結(jié)果的情況下加快速度。
3.我們的構(gòu)思是有缺陷的,因此總會(huì)有bug。
4.我們圍繞成本核算的估計(jì)技術(shù),混淆了工作量和項(xiàng)目進(jìn)展。人月是危險(xiǎn)和帶有欺騙性的神話,因?yàn)樗凳救藛T數(shù)量和時(shí)間是可以相互替換的。
5.在若干人員中分解任務(wù)會(huì)引發(fā)額外的溝通工作量--培訓(xùn)和相互溝通。
6.關(guān)于進(jìn)度安排,作者的經(jīng)驗(yàn)是為1/3計(jì)劃、1/6編碼、1/4構(gòu)件測(cè)試以及1/4系統(tǒng)測(cè)試。
7.因?yàn)槲覀儗?duì)自己的估計(jì)技術(shù)不確定,所以在管理和客戶的壓力下,我們常常缺乏堅(jiān)持的勇氣。
8.brook法則:向進(jìn)度落后的項(xiàng)目中增加人手,只會(huì)使進(jìn)度更加落后。
9.向軟件項(xiàng)目中增派人手從三個(gè)方面增加了項(xiàng)目必要的總體工作量:任務(wù)重新分配本身和所造成的工作中斷;培訓(xùn)新人員;額外的相互溝通。外科手術(shù)隊(duì)伍 1.同樣有兩年經(jīng)驗(yàn)而且在受到同樣的培訓(xùn)的情況下,優(yōu)秀的專業(yè)程序員的工作效率是較差程序員的十倍。關(guān)于這一條我在極限編程里看到,sackman和humphrey分別做了實(shí)驗(yàn)發(fā)現(xiàn)優(yōu)秀程序員工作效率比較差程序員的工作效率最高要高達(dá)28倍。
2.小型、精干隊(duì)伍是最好的。這一點(diǎn)在軟件工藝和極限編程里都得到了充分的體現(xiàn)。
3.兩個(gè)人的團(tuán)隊(duì),其中一個(gè)項(xiàng)目經(jīng)理,常常是最佳的人員使用方法。
4.對(duì)于真正意義上的大型系統(tǒng),小型精干的隊(duì)伍太慢了。
5.實(shí)際上,絕大多數(shù)大型編程系統(tǒng)的經(jīng)驗(yàn)顯示出,一擁而上的開發(fā)方法是高成本、速度緩慢、不充分的,開發(fā)出的產(chǎn)品無法進(jìn)行概念上的集成。
6.一位首席程序員、類似于外科手術(shù)隊(duì)伍的團(tuán)隊(duì)架構(gòu)提供了一種方法,既能獲得由少數(shù)頭腦產(chǎn)生的產(chǎn)品完整性,又能得到多位協(xié)助人員的總體生產(chǎn)率,還徹底地減少了溝通的工作量。圖1是10人的程序開發(fā)隊(duì)伍溝通模式。圖1 10人程序開發(fā)隊(duì)伍溝通模式
貴族專制、民主政治和系統(tǒng)設(shè)計(jì) 1.概念完整性是系統(tǒng)設(shè)計(jì)中最重要的考慮因素。
2.為了獲得概念完整性,設(shè)計(jì)必須由一個(gè)人或者具有共識(shí)的小型團(tuán)隊(duì)來完成。
3.對(duì)于非常大型的項(xiàng)目,將設(shè)計(jì)方法、體系結(jié)構(gòu)方面的工作與具體實(shí)現(xiàn)相分離是獲得概念完整性的強(qiáng)有力方法。
4.紀(jì)律、規(guī)則對(duì)行業(yè)是有益的。外部的體系結(jié)構(gòu)規(guī)定實(shí)際上是增強(qiáng),而不是限制實(shí)現(xiàn)小組的創(chuàng)造性。
5.體系結(jié)構(gòu)、設(shè)計(jì)實(shí)現(xiàn)、物理實(shí)現(xiàn)的許多工作可以并發(fā)進(jìn)行。畫蛇添足 1.盡早交流和持續(xù)溝通能使結(jié)構(gòu)師有較好的成本意識(shí),以及使開發(fā)人員獲得對(duì)設(shè)計(jì)的信心,并且不會(huì)混淆各自的責(zé)任分工。
2.結(jié)構(gòu)師如何成功地影響實(shí)現(xiàn):
i.牢記是開發(fā)人員承擔(dān)創(chuàng)造性的實(shí)現(xiàn)責(zé)任;結(jié)構(gòu)師只能提出建議。
ii.聽取開發(fā)人員在體系結(jié)構(gòu)上改進(jìn)的建議。
3.第二個(gè)系統(tǒng)是人們所設(shè)計(jì)的最危險(xiǎn)的系統(tǒng),通常的傾向是過分地進(jìn)行設(shè)計(jì)。關(guān)于這一點(diǎn)也許是正確的,但是這是一個(gè)回避不了的問題,如果沒有開發(fā)第二個(gè)系統(tǒng)經(jīng)驗(yàn)的人,就不可能有開發(fā)第三個(gè)系統(tǒng)經(jīng)驗(yàn)的人了。貫徹執(zhí)行 1.即使是大型的設(shè)計(jì)團(tuán)隊(duì),設(shè)計(jì)結(jié)果也必須由一個(gè)或兩個(gè)人來完成,以確保這些決定是一致的。
2.必須明確定義體系結(jié)構(gòu)中與先前定義不同的地方,重新定義的詳細(xì)程度應(yīng)該與原先的說明一致。
3.出于精確性的考慮,我們需要形式化的設(shè)計(jì)定義,同樣,我們需要記敘性定義來加深理解。
4.允許體系結(jié)構(gòu)師對(duì)實(shí)現(xiàn)人員的詢問做出電話應(yīng)答解釋是非常重要的,并且必須進(jìn)行日志記錄和整理發(fā)布。
5.項(xiàng)目經(jīng)理最好的朋友就是他每天要面對(duì)的敵人--獨(dú)立的產(chǎn)品測(cè)試機(jī)構(gòu)/小組。為什么巴比倫塔會(huì)失?。?1.巴比倫塔項(xiàng)目的失敗是因?yàn)槿狈涣?,以及交流的結(jié)果的組織。
2.因?yàn)樽笫植恢烙沂衷谧鍪裁?,從而進(jìn)度災(zāi)難、功能的不合理和系統(tǒng)缺陷紛紛出現(xiàn)。由于對(duì)其他人的各種假設(shè),團(tuán)隊(duì)成員之間的理解開始出現(xiàn)偏差。
3.團(tuán)隊(duì)?wèi)?yīng)該以盡可能多的方式進(jìn)行相互之間的交流:非正式、常規(guī)項(xiàng)目會(huì)議,會(huì)上進(jìn)行簡(jiǎn)要的技術(shù)陳述、共享的正式項(xiàng)目工作手冊(cè)。胸有成竹 1.僅僅通過對(duì)編碼部分的估計(jì),然后乘以任務(wù)其他部分的相對(duì)系數(shù),是無法得出對(duì)整項(xiàng)工作的精確估計(jì)的。
2.構(gòu)建獨(dú)立小型程序的數(shù)據(jù)不適用于編程系統(tǒng)項(xiàng)目。
3.程序開發(fā)與程序規(guī)模成指數(shù)增長(zhǎng)趨勢(shì)。
4.當(dāng)使用適當(dāng)?shù)母呒?jí)語言時(shí),程序編制的生產(chǎn)率可以提高5倍。削足適履
這一章主要是要解決項(xiàng)目投資與磁盤空間和內(nèi)存之間的矛盾,但是這個(gè)矛盾在電腦硬件發(fā)展到現(xiàn)在的層次已經(jīng)可以忽略掉了。
提綱挈領(lǐng) 1.軟件項(xiàng)目的要求:目標(biāo)、用戶手冊(cè)、內(nèi)部文檔、進(jìn)度、預(yù)算、組織機(jī)構(gòu)圖和工作空間分配。
2.即使是小型項(xiàng)目,項(xiàng)目經(jīng)理也應(yīng)該在項(xiàng)目早期規(guī)范化上述的一系列文檔。這一章強(qiáng)調(diào)文檔重要性,但并沒有將一些教條主義的道理讓你相信文檔的重要性,而是給項(xiàng)目經(jīng)理給出了實(shí)實(shí)在在的操作步驟。
未雨綢繆 1.對(duì)于大多數(shù)項(xiàng)目,第一個(gè)開發(fā)的系統(tǒng)并不合用。它可能太慢、太大,而且難以使用,或者三者兼而有之。系統(tǒng)的丟棄和重新設(shè)計(jì)可以一步完成,也可以一塊塊地實(shí)現(xiàn)。這是個(gè)必須完成的步驟,如果將開發(fā)的第一個(gè)系統(tǒng)丟棄原型發(fā)布給用戶,可以獲得時(shí)間,但是它的代價(jià)很高。對(duì)于用戶,使用極度痛苦;對(duì)于重新開發(fā)的人員,分散了精力;對(duì)于產(chǎn)品,影響了聲譽(yù),即使最好的再設(shè)計(jì)也難以挽回名聲。
2.用戶的實(shí)際需要和用戶感覺會(huì)隨著程序的構(gòu)建、測(cè)試和使用而變化。
3.軟件產(chǎn)品易于掌握的特性和不可見性,導(dǎo)致了它的構(gòu)建人員面臨著永恒的需求變更。
4.目標(biāo)和開發(fā)策略上的一些正常變化無可避免,事先為它們做準(zhǔn)備總比假設(shè)它們不會(huì)出現(xiàn)要好得多。
5.對(duì)于一個(gè)廣泛使用的程序,其維護(hù)總成本通常是開發(fā)成本的40%或更多。
6.維護(hù)成本受用戶數(shù)目的嚴(yán)重影響。用戶越多,所發(fā)現(xiàn)的錯(cuò)誤也越多。
7.campbell指出了一個(gè)顯示產(chǎn)品生命期中每月bug數(shù)的有趣曲線,它先是下降,然后攀升。
8.缺陷修復(fù)總會(huì)以(20-50)%的機(jī)率引入新的bug。
9.在每次修復(fù)之后,必須重新運(yùn)行先前所有的測(cè)試用例,從而確保系統(tǒng)不會(huì)以更隱蔽的方式被破壞。
10.同樣,設(shè)計(jì)實(shí)現(xiàn)的人員越少、接口越少,產(chǎn)生的錯(cuò)誤也就越少。
11.所有修改都傾向于破壞系統(tǒng)的架構(gòu),增加了系統(tǒng)的混亂程度。即使是最熟練的軟件維護(hù)工作,也只是放緩了系統(tǒng)退化到不可修復(fù)混亂的進(jìn)程。干將莫邪
項(xiàng)目經(jīng)理應(yīng)該制訂一套策略,以及為通用工具的開發(fā)分配資源,與此同時(shí),他還必須意識(shí)到專業(yè)工具的需求。
禍起蕭墻 1.一天一天的進(jìn)度落后比起重大災(zāi)難,更難以識(shí)別,更不容易防范和更加難以彌補(bǔ)。
2.根據(jù)一個(gè)嚴(yán)格的進(jìn)度表來控制項(xiàng)目的第一個(gè)步驟是制訂進(jìn)度表,進(jìn)度表由里程碑和日期組成。
3.里程碑必須是具體的、特定的、可度量的事件,能進(jìn)行清晰能定義。
4.如果里程碑定義得非常明確,以致于無法自欺欺人時(shí),程序員很少會(huì)就里程碑的進(jìn)展弄虛作假。另外一面 1.對(duì)于軟件編程產(chǎn)品來說,程序向用戶所呈現(xiàn)的面貌與提供給機(jī)器識(shí)別的內(nèi)容同樣重要。
2.即使對(duì)于完全開發(fā)給自己使用的程序,描述性文字也是必須的,因?yàn)樗鼈儠?huì)被用戶和作者所遺忘。
3.文檔能在整個(gè)軟件開發(fā)的生命周期對(duì)程序員克服懶惰和進(jìn)度的壓力起促進(jìn)激勵(lì)作用,但向編程人員成功地灌輸對(duì)待文檔的積極態(tài)度是一件困難的事情。
4.為了使文檔易于維護(hù),將它們合并至源程序是至關(guān)重要的,而不是作為獨(dú)立文檔進(jìn)行保存。沒有銀彈
人狼的傳說可能有人聽過也可能沒聽過,人狼是一種具有人和狼兩種特征的恐怖生物,而銀彈是消滅它的一種最有效的子彈,如果看過《吸血鬼傳說》也許就能和容易的理解這一點(diǎn)。作者將軟件開發(fā)比作人狼,而將提高軟件開發(fā)效率的方法比作銀彈。作者預(yù)言未來十年,想要試圖通過尋找一種有效地銀彈將軟件開發(fā)效率提高一個(gè)甚至幾個(gè)數(shù)量級(jí),這種銀彈不可能出現(xiàn)。
沒有銀彈這篇文章里作者列舉出了當(dāng)時(shí)一些非常先進(jìn)的技術(shù)或思想理念,例如ada和其他高級(jí)編程語言、面向?qū)ο缶幊?、人工智能、專家系統(tǒng)、“自動(dòng)”編程、圖形化編程、程序驗(yàn)證、環(huán)境和工具、工作站等。雖然這些先進(jìn)技術(shù)在一定程度上提高了軟件開發(fā)的效率,但是始終沒有達(dá)到銀彈的效果。距離作者的預(yù)言已經(jīng)過去有20多年了,縱觀現(xiàn)在的軟件開發(fā)領(lǐng)域,雖然新技術(shù)層出不窮,但是還是沒有一種銀彈能夠讓軟件開發(fā)產(chǎn)生一次革命。
焦油坑依然存在軟件工程的焦油坑在將來很長(zhǎng)一段時(shí)間內(nèi)會(huì)繼續(xù)困擾著人們。由于軟件系統(tǒng)多變性和錯(cuò)綜復(fù)雜性,這個(gè)行業(yè)只能是一步一個(gè)臺(tái)階的往上爬,而出現(xiàn)銀彈的希望在我們可以想象的時(shí)間范圍內(nèi)是非常渺茫的。我們將長(zhǎng)期與焦油作斗爭(zhēng)。
第三篇:人月神話讀后感
人月神話讀后感
二十九年前(1975)﹐IBM大型電腦之父──Fred Brooks 出版一本書﹕“The Mythical Man-Month”。收集了他在1960年代領(lǐng)導(dǎo)1000多人共同發(fā)展OS/360大型軟件系統(tǒng)的心得和經(jīng)驗(yàn)。該書是論文集﹐其中有一篇文章叫“The Mythical Man-Month”﹐他就以此作為書名。在1956~1965 之間﹐Brooks實(shí)際領(lǐng)導(dǎo)IBM 360 大型電腦的開發(fā)計(jì)劃﹐包括硬體結(jié)構(gòu)及龐大的OS/360作業(yè)系統(tǒng)在內(nèi)﹐因之他具有IBM 大型電腦之父的尊稱。由于OS/360是多達(dá)1000位程式師共同合作的大型軟件開發(fā)工作﹐讓他深刻了解到大型軟件開發(fā)的技術(shù)和管理上所面臨的種種困難和挑戰(zhàn)。于是﹐他就將其領(lǐng)導(dǎo)開發(fā)OS/360軟件系統(tǒng)的經(jīng)驗(yàn)心得收集在這本書里。人們常拿Man-Month(多少人﹐做多少個(gè)月)來計(jì)算軟件的工作量﹐但是Brooks發(fā)現(xiàn)軟件的開發(fā)工作是需要人與人之間密切溝通的﹐使得設(shè)計(jì)工作不易分割﹐所以Man-Month 為單位的計(jì)算方法是有問題的(mythical)。也就得出著名的Brooks法則── 「對(duì)于進(jìn)度已落后的軟件開發(fā)計(jì)劃而言﹐若再增加人力﹐只會(huì)讓其更加落后?!?Adding manpower to a late software project makes it later)這是該書名稱的涵義。
看完此書后,我發(fā)現(xiàn)人月神話無處不在,其實(shí)在我們做
軟件工程來說,此書已經(jīng)滲透進(jìn)去了。本書作者為人們管理復(fù)雜項(xiàng)目提供了頗具洞察力的見解,既有很多發(fā)人深省的觀點(diǎn),也有大量的軟件工程實(shí)踐。本書對(duì)我觸動(dòng)最大的,一是保持設(shè)計(jì)的概念完整。無論對(duì)小軟件還是大軟件,都必須由一個(gè)設(shè)計(jì)師主導(dǎo),最多兩個(gè)人討論來共同完成軟件的整體設(shè)計(jì)。作為一個(gè)軟件,一個(gè)系統(tǒng),必須有一個(gè)清晰明確的概念模型,大家都在這個(gè)框架下工作,所有的創(chuàng)新發(fā)展都必須與基本的概念相吻合。具體的實(shí)現(xiàn)人員可以細(xì)化概念,但只有總設(shè)計(jì)者才有否定與發(fā)展基本概念的權(quán)力。需要注意的一點(diǎn)是,即使是總設(shè)計(jì)師一直是同一個(gè)人,他腦海中所認(rèn)為理所當(dāng)然的規(guī)則或者概念,很可能由于沒有明確的文檔化,而沒有成為所有開發(fā)者共同的概念。概念的完整性,對(duì)于很多小規(guī)模軟件,由于開發(fā)人員不多,開發(fā)經(jīng)理一般都能控制住所有的代碼,概念完整性在組織層面就維持住了。但要注意以后的Bug修改,功能擴(kuò)展的時(shí)候,也要時(shí)刻留意與最初的設(shè)計(jì)是否概念上相容。對(duì)于大規(guī)模的軟件系統(tǒng),則必須通過樹狀組織結(jié)構(gòu),層層控制,總設(shè)計(jì)師還是一到兩人,每一層都有對(duì)下層的絕對(duì)把握能力。
二是“一個(gè)拿2倍工資的人,生產(chǎn)率可能是其他人的10倍。”不知道其他公司的程序員們?nèi)绾慰?。我覺得,作為公司,應(yīng)該給最好的人最好的待遇,或者說給比目前更高的待遇。組建一個(gè)團(tuán)隊(duì),最好的就是那種精英團(tuán)隊(duì)。微軟就是這
種思路吧,把最聰明的人集中在一起,想不成功都難。
三是進(jìn)度落后與增加人力。記得當(dāng)年看《C++編程思想》,Bruce說“十個(gè)婦女不能在一個(gè)月內(nèi)生下小孩”(大意),于我心有戚戚焉。而本書作者Brooks得出的結(jié)論是對(duì)我是震撼性的:“向進(jìn)度落后的項(xiàng)目中增加人手,只會(huì)使進(jìn)度更加落后”。以前,增加人手基本是挽救進(jìn)度落后項(xiàng)目的主要辦法。這個(gè)辦法行不通的話,難道只有“加班”一條路了?如果不想加班,不想削減功能,不想推遲發(fā)布日期,那么。。。唯一的方法還是只有….加人。加足夠的人。而且不要逐步加入,一定要一次性加入。要小心的是,新加入的人可能對(duì)原來的組織造成沖擊,或者對(duì)原來的設(shè)計(jì)有不同意見(特別是加入的人中有比較強(qiáng)大的設(shè)計(jì)者)。那么,就當(dāng)作,新組建了一個(gè)團(tuán)隊(duì)吧。交流,培訓(xùn)新人,就設(shè)計(jì)達(dá)成一致,繼續(xù)向者目標(biāo)前進(jìn)。
不同的社會(huì)經(jīng)驗(yàn),不同的思想狀態(tài),對(duì)讀本書的心得也不一樣。在此我說說書中許多非常好的觀點(diǎn)。
1.外科手術(shù)隊(duì)伍The Surgical Team
項(xiàng)目經(jīng)理在項(xiàng)目的初期必須清楚的估計(jì)項(xiàng)目的人月運(yùn)作模式(時(shí)間、人力在項(xiàng)目各階段的分配),例如什么時(shí)候需要出什么樣成果,決定了什么時(shí)候需要什么樣的人加入項(xiàng)目,這是項(xiàng)目經(jīng)理的責(zé)任。
2.貴族專制,民主政治Aristocracy,Democracy,System
要獲得概念的完整性,設(shè)計(jì)必須由一個(gè)人或具有共識(shí)的小組來完成。
3.畫蛇添足The Second-System Effect
講述的基本都是基于IBM 360操作系統(tǒng)以及編譯程序等方面的經(jīng)驗(yàn),講述如何避免開發(fā)第二個(gè)系統(tǒng)的風(fēng)險(xiǎn),作者認(rèn)為開發(fā)第二個(gè)系統(tǒng)的設(shè)計(jì)師設(shè)計(jì)出來的系統(tǒng)是最危險(xiǎn)的,因此要求他們自律。
4.貫徹執(zhí)行Passing the word
印象比較深刻的是“體系結(jié)構(gòu)設(shè)計(jì)人員必須為自己描述的任何特性準(zhǔn)備一種實(shí)現(xiàn)方法,但他不應(yīng)該支配具體的實(shí)現(xiàn)過程?!?/p>
5.巴比倫塔會(huì)失敗Why did the Tower of Babel Fail?講述巴比倫塔會(huì)失敗的原因是缺乏交流。
6.胸有成竹Calling the Shot
主要講述如何計(jì)算編程時(shí)間,以及提出幾個(gè)人的經(jīng)驗(yàn)算法。講述的各種算法可能都不太適合與現(xiàn)在的高級(jí)語言,但Portman的觀點(diǎn)仍然適合現(xiàn)在,即編程人員實(shí)際的編程時(shí)間只有50%,其他的時(shí)間都花在了無關(guān)的瑣碎事情上。
7.削足適履Ten Pounds in a Five-Pound Sack
主要講述程序占用的空間等,在70年代比較突出,但現(xiàn)在好多了。
8.提綱擎領(lǐng)The Documentary Hypothesis
說明文檔的作用
9.未雨綢繆Plan to Throw One Away
唯一不變的是變化本身。在大型項(xiàng)目中,項(xiàng)目經(jīng)理需要有兩個(gè)和三個(gè)頂級(jí)程序員作為技術(shù)輕騎兵,當(dāng)工作繁忙最密集的時(shí)候,他們能急馳飛奔,解決各種問題。
10.干將莫邪Sharp Tools
主要講述項(xiàng)目中管理好各種工具的重要性,項(xiàng)目經(jīng)理首先要制定一種策略,讓各種工具成為公用的工具,這樣才能使開發(fā)、維護(hù)和使用這種工具的開發(fā)人員的效率更高,這種工具可能是開發(fā)人員開發(fā)出來的,也可能是使用現(xiàn)有的,可能是通用的,也可能是專用的或個(gè)人偏好的。比如:文檔編寫工具、開發(fā)工具(包括各種不同開發(fā)平臺(tái))、調(diào)試工具、測(cè)試工具、數(shù)據(jù)庫工具、版本管理、項(xiàng)目管理工具等。
11.整體部分The Whole and the Parts
特別是這句話"BELL實(shí)驗(yàn)室監(jiān)控系統(tǒng)項(xiàng)目的V.A.Vyssotsky提出,“關(guān)鍵的工作是產(chǎn)品定義。許許多多的失敗完全源于那些產(chǎn)品未精確定義的地方”,細(xì)致的功能定義,詳細(xì)的規(guī)格說明,規(guī)范話的功能描述說明以及這些方法的實(shí)施,大大減少了系統(tǒng)中必須查找的BUG數(shù)量。雖然這句話的意思只是說明精確定義產(chǎn)品將減少BUG的數(shù)量,但我看到了系統(tǒng)分析的最重要的工作——產(chǎn)品定義。
12.禍起蕭墻Hatching a Catastrophe
這章節(jié)說明使項(xiàng)目進(jìn)度拖后的最大原因不是重要的事件,如新技術(shù)、重組等,而是一些瑣碎的小事,每件小事只耽誤半天或一天時(shí)間,但這種小事多以后,將使項(xiàng)目的進(jìn)度嚴(yán)重拖后。項(xiàng)目對(duì)于公司就如程序?qū)y(cè)試工程師一樣,如果不了解它,它就是一個(gè)黑盒子,如果不打開這個(gè)黑盒子,你可能永遠(yuǎn)不知道盒子里面有什么。
13.另外一面The other face
本章說明程序的另一面——文檔。
不了解,就無法真正擁有——歌德,作者引用的歌德的話來描述文檔對(duì)客戶的重要性,提出客戶需要什么樣的文檔以及文檔的格式和包含的內(nèi)容,指出當(dāng)時(shí)存在的大多數(shù)文檔只描述了樹木,形容了樹葉,但沒有整個(gè)森林的圖案。想想,這種情況在現(xiàn)在仍然沒有改變。于是作者提出了兩個(gè)觀點(diǎn):
1.流程圖:流程圖是被吹捧得最過分的一種程序文檔。許多程序甚至不需要流程圖,很少程序需要一頁以上的流程圖
2.自動(dòng)文檔化(self-documenting)的程序:提出文檔與程序合為一體,能很好的解決文檔與程序分開造成的文檔過時(shí)的問題,并說明了在程序中加入文檔的一些方法和技巧。
14.沒有銀彈-軟件工程中的根本和次要問題(No Silver Bullet-Essence and Accident in software Engineering)
人狼是傳說中的妖怪,只有銀彈才能殺死他。作者認(rèn)為軟件項(xiàng)目具有人狼的特性,因?yàn)檐浖?xiàng)目也可能變成一個(gè)怪物,一個(gè)落后進(jìn)度、超出預(yù)算、存在大量缺陷的怪物。作者通過軟件系統(tǒng)的內(nèi)在特性復(fù)雜性、一致性、可變性和不可見性來分析說明了軟件天生就沒有銀彈。作者試圖通過分析軟件問題的本質(zhì)和很多侯選銀彈的特征來探究其中的原因。他行動(dòng)的第一步是將大塊的“巨無霸理論”替換成“微生物理論”。這個(gè)變化的過程告訴你,進(jìn)步是逐步取得的,伴隨著辛勤的勞動(dòng),對(duì)規(guī)范化過程應(yīng)進(jìn)行持續(xù)不懈的努力,而這個(gè)努力的過程相應(yīng)的就誕生了軟件工程。
15.再論《沒有銀彈》No Silver Bullet Refired
看完再論《沒有銀彈》后,雖然作者說有不少人對(duì)他的觀點(diǎn)持反對(duì)或不同意見,但我始終覺得他的觀點(diǎn)是對(duì)的——根本和次要問題的劃分以及定義。作者認(rèn)為軟件開發(fā)困難的部分是概念的結(jié)構(gòu),如規(guī)格化、設(shè)計(jì)和測(cè)試等概念的結(jié)構(gòu),而不是概念的表述和實(shí)現(xiàn)概念,雖然實(shí)現(xiàn)概念可能占用了小于90%的時(shí)間,就如現(xiàn)今的軟件開發(fā)一樣,系統(tǒng)分析通常占用的整個(gè)項(xiàng)目開發(fā)時(shí)間不超過20%,而80%的時(shí)間花在編程上一樣。
第四篇:《人月神話》讀后感
學(xué)號(hào):0967020449姓名:張小波班級(jí):軟件工程專升本3班
《人月神話》讀后感
在軟件領(lǐng)域中,很少能有像《人月神話》一樣具有深遠(yuǎn)影響力和暢銷不衰的著作。Brooks 博士為人們管理復(fù)雜項(xiàng)目提供了最具洞察力的見解,既有很多發(fā)人深省的觀點(diǎn),又有大量軟件工程的實(shí)踐,影響著一代又一代….通過閱讀《人月神話》,我從中學(xué)到了一些東西:
首先,開發(fā)一個(gè)項(xiàng)目,我們錯(cuò)誤的認(rèn)為用人月這個(gè)工作量單位來估計(jì)和進(jìn)行進(jìn)度安排。成本的確隨開發(fā)產(chǎn)品的人數(shù)和時(shí)間的不同,有著很大的變化,進(jìn)度卻不是如此。因此我認(rèn)為用人月作為衡量一項(xiàng)工作的規(guī)模是一個(gè)危險(xiǎn)和帶有欺騙性的神話。它暗示著人員數(shù)量和時(shí)間是可以相互替換的。人數(shù)和時(shí)間的互換僅僅適用于以下情況:某個(gè)任務(wù)可以分解給參與人員,并且他們之間不需要相互的交流,而在系統(tǒng)編程中近乎不可能。當(dāng)任務(wù)由于次序上的限制不能分解時(shí),人手的添加對(duì)進(jìn)度沒有幫助。調(diào)試、測(cè)試的次序特性,許多軟件都具有這種特征。因?yàn)檐浖_發(fā)本質(zhì)上是一項(xiàng)系統(tǒng)工作——錯(cuò)綜復(fù)雜關(guān)系下的一種實(shí)踐——溝通、交流的工作量非常大,它很快會(huì)消耗任務(wù)分解所節(jié)省下來的個(gè)人時(shí)間。從而,添加更多的人手,實(shí)際上是延長(zhǎng)了,而不是縮短了時(shí)間進(jìn)度。
對(duì)于編程,有其樂趣和苦惱。創(chuàng)建事物的快樂,開發(fā)對(duì)其他人有用的東西的樂趣,將可以活動(dòng)、相互嚙合的零部件組裝成類似迷宮的東西,這個(gè)過程所體現(xiàn)出令人神魂顛倒的魅力,面對(duì)不重復(fù)的任務(wù),不間斷學(xué)習(xí)的樂趣,工作在如此易于駕馭的介質(zhì)上的樂趣——純粹的思維活動(dòng),其存在、移動(dòng)和運(yùn)轉(zhuǎn)方式完全不同于實(shí)際物體。將做事方式調(diào)整到追求完美,是學(xué)習(xí)編程的最困難部分;由其他人來設(shè)定目標(biāo),并且必須依靠自己無法控制的事物(特別是程序);權(quán)威不等同于責(zé)任實(shí)際情況看起來要比這一點(diǎn)好一些;真正的權(quán)威來自于每次任務(wù)的完成任何創(chuàng)造性活動(dòng)都伴隨著枯燥艱苦的勞動(dòng),編程也不例外 人們通常期望項(xiàng)目在接近結(jié)束時(shí),(bug、工作時(shí)間)能收斂得快一些,然而軟件項(xiàng)目的情況卻是越接近完成,收斂得越慢產(chǎn)品在即將完成時(shí)總面臨著陳舊過時(shí)的威脅。
開發(fā)一個(gè)軟件,我們要有合理的時(shí)間進(jìn)度,開發(fā)人員要少而精,概念完整性必須考慮在內(nèi),要盡量做到盡早交流和持續(xù)溝通。
同時(shí),文檔形成了關(guān)鍵的樞紐,每個(gè)項(xiàng)目管理的工作都圍繞著它們運(yùn)轉(zhuǎn),它們是經(jīng)理們的主要個(gè)人工具。對(duì)于計(jì)算機(jī)硬件開發(fā)項(xiàng)目,關(guān)鍵文檔是目標(biāo)、手冊(cè)、進(jìn)度、預(yù)算、組織機(jī)構(gòu)圖、空間分配、以及機(jī)器本身的報(bào)價(jià)、預(yù)測(cè)和價(jià)格;對(duì)于大學(xué)科系,關(guān)鍵文檔類似:目標(biāo)、課程描述、學(xué)位要求、研究報(bào)告、課程表和課程的安排、預(yù)算、教室分配、教師和研究生助手的分配;對(duì)于軟件項(xiàng)目,要求是相同的:目標(biāo)、用戶手冊(cè)、內(nèi)部文檔、進(jìn)度、預(yù)算、組織機(jī)構(gòu)圖和工作空間分配。即使是一個(gè)小型項(xiàng)目,我們都會(huì)要求書寫相關(guān)文檔,對(duì)每個(gè)關(guān)鍵文檔的維護(hù)提供了狀態(tài)監(jiān)督和預(yù)警機(jī)制并且本身就可以作為檢查列表或者數(shù)據(jù)庫。
良好的工作手冊(cè)和組織架構(gòu)可以開發(fā)出更加符合用戶的需求。手冊(cè)、或者書面規(guī)格說明,是一個(gè)非常必要的工具,盡管光有文檔是不夠的。手冊(cè)是產(chǎn)品的外部規(guī)格說明,它描述和規(guī)
定了用戶所見的每一個(gè)細(xì)節(jié);同樣的,它也是結(jié)構(gòu)師主要的工作產(chǎn)物。
形式化定義是精確的,它們傾向于更加完整;差異得更加明顯,可以更快地完成。但是形式化定義的缺點(diǎn)是不易理解。記敘性文字則可以顯示結(jié)構(gòu)性的原則,描述階段上或?qū)哟紊系慕Y(jié)構(gòu),以及提供例子。它可以很容易地表達(dá)異常和強(qiáng)調(diào)對(duì)比的關(guān)系,最重要的是,它可以解釋原因。在表達(dá)的精確和簡(jiǎn)明性上,目前所提出的形式化定義,具有了令人驚異的效果,增強(qiáng)了我們進(jìn)行準(zhǔn)確表達(dá)的信心。
通常,開發(fā)一個(gè)軟件我們還會(huì)設(shè)立規(guī)模目標(biāo),控制規(guī)模,發(fā)明一些減少規(guī)模的方法——就如同硬件開發(fā)人員為減少元器件所做的一樣。規(guī)模預(yù)算必須與分配的功能相關(guān)聯(lián); 在指明模塊大小的同時(shí),確切定義模塊的功能。培養(yǎng)開發(fā)人員從系統(tǒng)整體出發(fā)、面向用戶的態(tài)度是軟件編程管理人員最重要的職能。
調(diào)試,是一種檢驗(yàn)程序中的方法。然而調(diào)試是系統(tǒng)編程中很慢和較困難的部分,而漫長(zhǎng)的調(diào)試周轉(zhuǎn)時(shí)間是調(diào)試的禍根。它可以持續(xù)一個(gè)很長(zhǎng)的時(shí)間,從而可能影響項(xiàng)目的交付日期。
為了更好的控制進(jìn)度,我們需要制定一個(gè)嚴(yán)格的進(jìn)度表來控制項(xiàng)目的進(jìn)度表,進(jìn)度表由里程碑和日期組成。里程碑必須是具體的、特定的、可度量的事件,能進(jìn)行清晰能定義。進(jìn)度表有時(shí)可以根據(jù)進(jìn)展情況進(jìn)行適度的修改。
產(chǎn)品測(cè)試時(shí)每個(gè)產(chǎn)品在提交給用戶的一道程序。而這項(xiàng)工作主要由產(chǎn)品測(cè)試機(jī)構(gòu)/小組根據(jù)規(guī)格說明檢查機(jī)器和程序,充當(dāng)麻煩的代言人,查明每一個(gè)可能的缺陷和相互矛盾的地方。每個(gè)開發(fā)機(jī)構(gòu)都需要這樣一個(gè)獨(dú)立的技術(shù)監(jiān)督部門,來保證其公正性。產(chǎn)品-測(cè)試小組則是顧客的代理人,專門尋找缺陷。不時(shí)地,細(xì)心的產(chǎn)品測(cè)試人員總會(huì)發(fā)現(xiàn)一些沒有貫徹執(zhí)行、設(shè)計(jì)決策沒有正確理解或準(zhǔn)確實(shí)現(xiàn)的地方。出于這方面的原因,設(shè)立測(cè)試小組是使設(shè)計(jì)決策得以貫徹執(zhí)行的必要手段,同樣也是需要盡早著手,與設(shè)計(jì)同時(shí)實(shí)施的重要環(huán)節(jié)。
一個(gè)已開發(fā)的項(xiàng)目,我們需要對(duì)它進(jìn)行后期維護(hù)。其維護(hù)基本上不同于硬件的維護(hù),它主要由各種變更組成,如修復(fù)設(shè)計(jì)缺陷、新增功能、或者是使用環(huán)境或者配置變換引起的調(diào)整而且維護(hù)總成本通常是開發(fā)成本的40%或更多。維護(hù)成本受用戶數(shù)目的嚴(yán)重影響,用戶越多,所發(fā)現(xiàn)的錯(cuò)誤也越多。在每次修復(fù)之后,必須重新運(yùn)行先前所有的測(cè)試用例,從而確保系統(tǒng)不會(huì)以更隱蔽的方式被破壞。其實(shí),對(duì)于一個(gè)項(xiàng)目,我們要盡量做到完美,減少以后的維護(hù)困難和成本。
在計(jì)算機(jī)技術(shù)進(jìn)步的同時(shí),計(jì)算機(jī)相關(guān)學(xué)科知識(shí)也在飛速發(fā)展。興趣太多,令人興奮的學(xué)習(xí)、研究和思考的機(jī)會(huì)也太多——多么不可思議的矛盾??!這個(gè)神奇的時(shí)代遠(yuǎn)遠(yuǎn)沒有結(jié)束,它依然在飛速發(fā)展。更多的樂趣,盡在將來。
第五篇:人月神話讀后感
人月神話讀后感
、《人月神話》是預(yù)言了未來還是扼制了未來?
事實(shí)是:我們目前的許多工程知識(shí),——無論是從書上看到的,還是從實(shí)踐中經(jīng)驗(yàn)到的——大多未曾脫離《人月神話》之所言,人月神話讀后感。
我在開篇中說《人月神話》“是一本可怕的書”。然而我感受懇摯的可怕之處在于:現(xiàn)今凡是論及工程(且不要讓人感受是離經(jīng)叛道),那么所解說的定然是Brooks的這么的經(jīng)驗(yàn)以及由此推出的見解,可能在不違拗這些經(jīng)驗(yàn)和見解上的一些翔實(shí)的實(shí)作措施!我們?nèi)徊活檿兴允羌傧?,還是性質(zhì)的推論,可能只是假象歸納的一個(gè)(未必準(zhǔn)確的)答案。盡管這些答案大多數(shù)時(shí)候都好像預(yù)期地展目前你的切實(shí)工程中:
原文中還有眾多相仿的見解、假象和答案,都成為了切實(shí)工程中的既存假象。先民們所說的圣人以及通神者,皆因他們多數(shù)時(shí)候在準(zhǔn)確地預(yù)言自己的切實(shí)。只有當(dāng)這個(gè)“多數(shù)時(shí)候”變成半點(diǎn)的時(shí)候,先民們才會(huì)置疑圣人和通神者的力氣。其實(shí)我們懂得并未曾預(yù)言未來的人,大多數(shù)時(shí)候是兩種情形導(dǎo)致的假象:
他做出了準(zhǔn)確的推斷;
你主觀地跟隨了他對(duì)未來的設(shè)定。
后者是風(fēng)險(xiǎn)的。大師們預(yù)言了未來也就改換了未來,即便未來未必“該當(dāng)”好像他所預(yù)言的那樣。
但萬一這種預(yù)言的前提不準(zhǔn)確,那么未來定然脫離這種波及而回到它該當(dāng)?shù)氖聭B(tài)上去。好像我們看到的另一些事實(shí)一樣,有許多假象闡明,我們正在歸來工程***的道路上摸索前進(jìn)。我們也覺察,在大多數(shù)情形下,先哲們的預(yù)言在實(shí)踐中被檢討著,只是偶爾“不太靈光”。下表則列出一些不同的例子:
注1:我例舉了爽利的一些見解,并不闡明我是Ap/Xp的fans。Ap/Xp的問題另論,在這里,我只是解釋存在一種不同的信念。
注2:Brooks爾后確認(rèn)“定然丟棄原型”是一個(gè)不太準(zhǔn)確的見解。
注3:Brooks在這里未曾犯訛謬,只是他所談?wù)摰氖仟M義的流程圖,而我們例舉的時(shí)序圖則更廣義。
我們追憶上一細(xì)節(jié),在《人月神話》中的那“31%的答案”的前提——也即便那7%的性質(zhì)中,如下兩項(xiàng)是顯明猜忌的(也是重要置疑):
目標(biāo)的性質(zhì):是大型工程,是系統(tǒng)項(xiàng)目,而不是過程
個(gè)體的性質(zhì):是私利性的其實(shí)早就有人意識(shí)到個(gè)體的性質(zhì)“未必全是私利的”,尊重這些個(gè)體就會(huì)帶來一些收獲。例如Ap正是因?yàn)楦鹬亻_發(fā)人員的稟性與力氣,以及互相間的配合而獲得了效率的晉級(jí)。
再進(jìn)一步地說,既然Brooks設(shè)定了“大型工程或系統(tǒng)項(xiàng)目”這么的目標(biāo),并給出了一些答案。那么在“小那么一點(diǎn)點(diǎn)的”工程項(xiàng)目中,是不是這些答案就無須定了呢?例如Brooks的眾多提倡,對(duì)于某些目標(biāo)——例如你要用為期三個(gè)月的工夫開發(fā)一個(gè)的產(chǎn)品——就并不是很管用;可能大約無法厲行——例如你的群體總共只有6個(gè)人,連“外科手術(shù)式的群體”都組織不起來,讀后感《人月神話讀后感》。
Brooks的答案對(duì)于同樣的目標(biāo),以及在他所述的“性質(zhì)”未能發(fā)生改換時(shí),還是比擬管用(或有厲行的可能性)。因而上述一些例外,總是在上述的“7%的性質(zhì)”被抵賴或被改換的情形下獲得的。因而我們提出的問題是“如何抵賴或改換”這些難以撼動(dòng)的性質(zhì)。然而在我看來,Brooks早曾經(jīng)在最佳位置上,給出了撬動(dòng)它們的一個(gè)支點(diǎn):
Brooks感受發(fā)生“自力更生小型過程”與“編程系統(tǒng)產(chǎn)品”是不同的問題。
Brooks談?wù)摰木幊滔到y(tǒng)產(chǎn)品的規(guī)模究竟有多大呢?我想起碼該當(dāng)是以IBM 360為參看的。不過書中在引用Joel Aron(IBM在馬里蘭州蓋茲堡的系統(tǒng)技巧主管)的例子時(shí)說,“大型意味著過程員的數(shù)目超過25人,將近30,000行的號(hào)召”。而按照《人月神話》的數(shù)據(jù):人均效率800號(hào)召/人年,則這個(gè)“大型項(xiàng)目”該當(dāng)必需1.5年能力告終。另外,還必需大約一倍的人工,來負(fù)責(zé)除開代碼之外的測(cè)驗(yàn)、管教、文檔和溝通等工作。
好的,萬一你有一個(gè)“(起碼)50人,開發(fā)一年半”的項(xiàng)目,那么你能夠先接受Brooks的答案去實(shí)踐一下:起碼你能夠有工夫來談?wù)摴こ虇栴},也能夠組建那樣規(guī)模的群體。然而,難道只有這么的“大型工程”才算得工程,而“小那么一點(diǎn)點(diǎn)”的就不算嗎?切實(shí)是,我們一方面在做著“小那么一點(diǎn)點(diǎn)的”工程項(xiàng)目,另一方面在聽著全副業(yè)界嘈雜著“為更大規(guī)模的工程”而準(zhǔn)備的工程理論。我們總在實(shí)踐Brooks的“答案”可能“預(yù)言”,而淡忘這些答案的前提:
Brooks的經(jīng)驗(yàn)源自對(duì)IBM 360等大型項(xiàng)目標(biāo)實(shí)踐與分析;
Brooks所述的工程是要獲得編程系統(tǒng)產(chǎn)品;
Brooks感受編程系統(tǒng)產(chǎn)品的工作量可能是自力更生小型過程的9倍(在告終大約雷同功能的情形下)。
事實(shí)上我們目前的軟件工程的進(jìn)展是被駕駛了,而不是被預(yù)言了。從性質(zhì)上來說,Brooks在《人月神話》中只是談?wù)摿舜笮凸こ痰膮栃?,以及相?yīng)規(guī)模下的群體創(chuàng)立。而我們,便按照這么的設(shè)定來擺開了全副軟件工作的工程化厲行。
促成這種現(xiàn)狀的,并不但僅是一本書的能力,還在于商業(yè)的能力。因?yàn)橹挥性谶@么擴(kuò)展開來的工作環(huán)境中,才可能有商業(yè)時(shí)機(jī)?!幢隳切┕こ填檰柵c厲行專家歷來未曾厲行過“50人,開發(fā)一年半”這么的項(xiàng)目,凡是他們能報(bào)出Brooks的名字,能談及某些工具在應(yīng)付“大型項(xiàng)目”中的獲勝經(jīng)驗(yàn),他們就曾經(jīng)獲勝了一半了。
為什么“爽利”之初頗受爭(zhēng)議?為什么爽利對(duì)一些中小型的群體顯得管用和可厲行?為什么當(dāng)這些爭(zhēng)議被擺在現(xiàn)在的獲勝平息爾后,傳統(tǒng)工程的理論家們卻不忘恨恨地評(píng)上一句:那是一種不能(或難以)利用于大型工程的措施呢?!
因?yàn)槿f一大家都很“爽利”,都只做比這些大型工程“小那么一點(diǎn)點(diǎn)”的工程,那么傳統(tǒng)工程的專家們就失業(yè)了。反到來,只有把工程做大,大到“爽利”錯(cuò)過了含義,而“宏偉”變成了性質(zhì)的時(shí)候,傳統(tǒng)工程就可感受任何失利找到借口:看啊,Brooks就說過“未曾銀彈”嘛。