第一篇:人月神話讀后感
3110402157_ 王森_軟件11
2《人月神話》讀后感
在閱讀這本書(shū)之前,已經(jīng)很多次聽(tīng)到關(guān)于人月神話這本書(shū)以及他的作者Brooks的消息了.在軟件領(lǐng)域, 《人月神話》具有深遠(yuǎn)影響力而且暢銷不衰.這一次,正好老師的作業(yè)要求我們閱讀這本書(shū),我終于使有機(jī)會(huì)閱讀這本經(jīng)典之作了.在這過(guò)去的幾個(gè)星期里面,一點(diǎn)一滴的閱讀這本書(shū),粗略的了解了這本書(shū).首先,讓我印象深刻的是《人月神話》提出的兩條著名的法則:
1、人月神話:向一個(gè)已經(jīng)延后的項(xiàng)目中投入更多的人力資源只會(huì)讓它更延后。人月神話看上去這么浪漫的名字,原來(lái)并不是真的說(shuō)神話故事,作者闡述的主要觀點(diǎn)是在軟件開(kāi)發(fā)項(xiàng)目上項(xiàng)目進(jìn)度和增加人員這兩個(gè)概念是不能互換。雖然已經(jīng)時(shí)隔20多年了,這本書(shū)依然給我震撼,一是讓我驚訝的是,美國(guó)20年前軟件項(xiàng)目所面臨的問(wèn)題,在我們現(xiàn)在依然如此,糟糕的情況沒(méi)有改變,大家仍舊在焦油坑里掙扎,而且看上去沒(méi)有解決辦法.當(dāng)讀到“是當(dāng)意識(shí)到進(jìn)度的偏移時(shí),下意識(shí)(以及傳統(tǒng))的反應(yīng)是增加人力。這就像使用汽油滅火一樣,只會(huì)使事情更糟。越來(lái)越大的火勢(shì)需要更多的汽油,從而進(jìn)入了一場(chǎng)注定會(huì)導(dǎo)致災(zāi)難的循環(huán)。這讓我明白了一個(gè)重要的道:理項(xiàng)目的進(jìn)度是不能夠光靠人力的增加來(lái)推進(jìn)的.2、沒(méi)有銀彈:沒(méi)有任何技術(shù)或管理上的進(jìn)展,能夠獨(dú)立地許諾十年內(nèi)使生產(chǎn)率、可靠性或簡(jiǎn)潔性獲得數(shù)量級(jí)上的進(jìn)步。
雖然現(xiàn)在有不少人對(duì)他的觀點(diǎn)持反對(duì)或不同意見(jiàn),但我始終覺(jué)得他的觀點(diǎn)是對(duì)的——根本和次要問(wèn)題的劃分以及定義。作者認(rèn)為軟件開(kāi)發(fā)困難的部分是概念的結(jié)構(gòu),如規(guī)格化、設(shè)計(jì)和測(cè)試等概念的結(jié)構(gòu),而不是概念的表述和實(shí)現(xiàn)概念,雖然實(shí)現(xiàn)概念可能占用了小于90%的時(shí)間,就如現(xiàn)今的軟件開(kāi)發(fā)一樣,系統(tǒng)分析通常占用的整個(gè)項(xiàng)目開(kāi)發(fā)時(shí)間不超過(guò)20%,而80%的時(shí)間花在編程上一樣。
這兩個(gè)原則已經(jīng)在過(guò)去的幾十年間得到了驗(yàn)證.我相信在未來(lái),它以依舊是成立的.另外,在焦油坑那一章里面,有一句話讓我難以忘懷:岸上的船,如同海上的燈塔,無(wú)法移動(dòng).是呀, 過(guò)去幾十年的大型 系統(tǒng)開(kāi)發(fā)就猶如這樣一個(gè)焦油坑,很多大型和強(qiáng)壯的動(dòng)物在其中劇烈地掙扎。他們中大多數(shù)開(kāi)發(fā)出了可運(yùn)行的系統(tǒng)——不過(guò),其中只有非常少數(shù)的項(xiàng)目滿足了目標(biāo)、時(shí)間進(jìn)度和預(yù)算的要求。各種團(tuán)隊(duì),大型的和小型的,龐雜的和精干的,一個(gè)接一個(gè)淹沒(méi)在了焦油坑中。表面上看起來(lái)好像沒(méi)有任何一個(gè)單獨(dú)的問(wèn)題會(huì)導(dǎo)致困難每個(gè)都能被解決,但是當(dāng)它們相互糾纏和累積在一起的時(shí)候,團(tuán)隊(duì)的行動(dòng)就會(huì)變得越來(lái)越慢。對(duì)問(wèn)題的麻煩程度,每個(gè)人似乎都會(huì)感到驚訝,并且很難看清問(wèn)題的本質(zhì)。不過(guò),如果我們想解決問(wèn)題,就必須試圖先去理解它。這就是生活真理。要想解決一件事,首先要了解事情的始末。提出問(wèn)題就是解決問(wèn)題的答案。
人月神話還讓我了解到, 軟件系統(tǒng)可能是人類創(chuàng)造中最錯(cuò)綜復(fù)雜的事物.往往一個(gè)很小的功能,實(shí)在也需要開(kāi)發(fā)職員的架構(gòu)設(shè)計(jì)方面的完善,對(duì) 其它模塊的影響及擴(kuò)展,以及代碼編寫(xiě)工作。用戶在前臺(tái)可能看到的只是幾個(gè)文字,實(shí)際是中開(kāi)發(fā)職員晝夜奮戰(zhàn)的結(jié)果。很多時(shí)候,客戶的需求修改,在他們眼里看起來(lái)是如此地Easy,可他們卻忽視了很多他們看不到的因素.總而言之,《人月神話》是一部IT界的神話,經(jīng)久不衰.它就像是一顆“銀彈”,教會(huì)我們?nèi)绾稳ハ麥畿浖?xiàng)目這只“人狼”,指引著每個(gè)IT從業(yè)者認(rèn)真開(kāi)發(fā),開(kāi)拓進(jìn)取.人月神話將帶領(lǐng)IT界的精英們創(chuàng)造一個(gè)又一個(gè)IT界的神話..
第二篇:人月神話讀后感
人月神話讀后感
二十九年前(1975)﹐IBM大型電腦之父──Fred Brooks 出版一本書(shū)﹕“The Mythical Man-Month”。收集了他在1960年代領(lǐng)導(dǎo)1000多人共同發(fā)展OS/360大型軟件系統(tǒng)的心得和經(jīng)驗(yàn)。該書(shū)是論文集﹐其中有一篇文章叫“The Mythical Man-Month”﹐他就以此作為書(shū)名。在1956~1965 之間﹐Brooks實(shí)際領(lǐng)導(dǎo)IBM 360 大型電腦的開(kāi)發(fā)計(jì)劃﹐包括硬體結(jié)構(gòu)及龐大的OS/360作業(yè)系統(tǒng)在內(nèi)﹐因之他具有IBM 大型電腦之父的尊稱。由于OS/360是多達(dá)1000位程式師共同合作的大型軟件開(kāi)發(fā)工作﹐讓他深刻了解到大型軟件開(kāi)發(fā)的技術(shù)和管理上所面臨的種種困難和挑戰(zhàn)。于是﹐他就將其領(lǐng)導(dǎo)開(kāi)發(fā)OS/360軟件系統(tǒng)的經(jīng)驗(yàn)心得收集在這本書(shū)里。人們常拿Man-Month(多少人﹐做多少個(gè)月)來(lái)計(jì)算軟件的工作量﹐但是Brooks發(fā)現(xiàn)軟件的開(kāi)發(fā)工作是需要人與人之間密切溝通的﹐使得設(shè)計(jì)工作不易分割﹐所以Man-Month 為單位的計(jì)算方法是有問(wèn)題的(mythical)。也就得出著名的Brooks法則── 「對(duì)于進(jìn)度已落后的軟件開(kāi)發(fā)計(jì)劃而言﹐若再增加人力﹐只會(huì)讓其更加落后?!?Adding manpower to a late software project makes it later)這是該書(shū)名稱的涵義。
看完此書(shū)后,我發(fā)現(xiàn)人月神話無(wú)處不在,其實(shí)在我們做
軟件工程來(lái)說(shuō),此書(shū)已經(jīng)滲透進(jìn)去了。本書(shū)作者為人們管理復(fù)雜項(xiàng)目提供了頗具洞察力的見(jiàn)解,既有很多發(fā)人深省的觀點(diǎn),也有大量的軟件工程實(shí)踐。本書(shū)對(duì)我觸動(dòng)最大的,一是保持設(shè)計(jì)的概念完整。無(wú)論對(duì)小軟件還是大軟件,都必須由一個(gè)設(shè)計(jì)師主導(dǎo),最多兩個(gè)人討論來(lái)共同完成軟件的整體設(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ī)則或者概念,很可能由于沒(méi)有明確的文檔化,而沒(méi)有成為所有開(kāi)發(fā)者共同的概念。概念的完整性,對(duì)于很多小規(guī)模軟件,由于開(kāi)發(fā)人員不多,開(kāi)發(fā)經(jīng)理一般都能控制住所有的代碼,概念完整性在組織層面就維持住了。但要注意以后的Bug修改,功能擴(kuò)展的時(shí)候,也要時(shí)刻留意與最初的設(shè)計(jì)是否概念上相容。對(duì)于大規(guī)模的軟件系統(tǒng),則必須通過(guò)樹(shù)狀組織結(jié)構(gòu),層層控制,總設(shè)計(jì)師還是一到兩人,每一層都有對(duì)下層的絕對(duì)把握能力。
二是“一個(gè)拿2倍工資的人,生產(chǎn)率可能是其他人的10倍?!辈恢榔渌镜某绦騿T們?nèi)绾慰?。我覺(jué)得,作為公司,應(yīng)該給最好的人最好的待遇,或者說(shuō)給比目前更高的待遇。組建一個(gè)團(tuán)隊(duì),最好的就是那種精英團(tuán)隊(duì)。微軟就是這
種思路吧,把最聰明的人集中在一起,想不成功都難。
三是進(jìn)度落后與增加人力。記得當(dāng)年看《C++編程思想》,Bruce說(shuō)“十個(gè)婦女不能在一個(gè)月內(nèi)生下小孩”(大意),于我心有戚戚焉。而本書(shū)作者Brooks得出的結(jié)論是對(duì)我是震撼性的:“向進(jìn)度落后的項(xiàng)目中增加人手,只會(huì)使進(jìn)度更加落后”。以前,增加人手基本是挽救進(jìn)度落后項(xiàng)目的主要辦法。這個(gè)辦法行不通的話,難道只有“加班”一條路了?如果不想加班,不想削減功能,不想推遲發(fā)布日期,那么。。。唯一的方法還是只有….加人。加足夠的人。而且不要逐步加入,一定要一次性加入。要小心的是,新加入的人可能對(duì)原來(lái)的組織造成沖擊,或者對(duì)原來(lái)的設(shè)計(jì)有不同意見(jiàn)(特別是加入的人中有比較強(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ì)讀本書(shū)的心得也不一樣。在此我說(shuō)說(shuō)書(shū)中許多非常好的觀點(diǎn)。
1.外科手術(shù)隊(duì)伍T(mén)he 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í)的小組來(lái)完成。
3.畫(huà)蛇添足The Second-System Effect
講述的基本都是基于IBM 360操作系統(tǒng)以及編譯程序等方面的經(jīng)驗(yàn),講述如何避免開(kāi)發(fā)第二個(gè)系統(tǒng)的風(fēng)險(xiǎn),作者認(rèn)為開(kāi)發(fā)第二個(gè)系統(tǒng)的設(shè)計(jì)師設(shè)計(jì)出來(lái)的系統(tǒng)是最危險(xiǎn)的,因此要求他們自律。
4.貫徹執(zhí)行Passing the word
印象比較深刻的是“體系結(jié)構(gòu)設(shè)計(jì)人員必須為自己描述的任何特性準(zhǔn)備一種實(shí)現(xiàn)方法,但他不應(yīng)該支配具體的實(shí)現(xiàn)過(guò)程?!?/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í)語(yǔ)言,但Portman的觀點(diǎn)仍然適合現(xiàn)在,即編程人員實(shí)際的編程時(shí)間只有50%,其他的時(shí)間都花在了無(wú)關(guān)的瑣碎事情上。
7.削足適履Ten Pounds in a Five-Pound Sack
主要講述程序占用的空間等,在70年代比較突出,但現(xiàn)在好多了。
8.提綱擎領(lǐng)The Documentary Hypothesis
說(shuō)明文檔的作用
9.未雨綢繆Plan to Throw One Away
唯一不變的是變化本身。在大型項(xiàng)目中,項(xiàng)目經(jīng)理需要有兩個(gè)和三個(gè)頂級(jí)程序員作為技術(shù)輕騎兵,當(dāng)工作繁忙最密集的時(shí)候,他們能急馳飛奔,解決各種問(wèn)題。
10.干將莫邪Sharp Tools
主要講述項(xiàng)目中管理好各種工具的重要性,項(xiàng)目經(jīng)理首先要制定一種策略,讓各種工具成為公用的工具,這樣才能使開(kāi)發(fā)、維護(hù)和使用這種工具的開(kāi)發(fā)人員的效率更高,這種工具可能是開(kāi)發(fā)人員開(kāi)發(fā)出來(lái)的,也可能是使用現(xiàn)有的,可能是通用的,也可能是專用的或個(gè)人偏好的。比如:文檔編寫(xiě)工具、開(kāi)發(fā)工具(包括各種不同開(kāi)發(fā)平臺(tái))、調(diào)試工具、測(cè)試工具、數(shù)據(jù)庫(kù)工具、版本管理、項(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ī)格說(shuō)明,規(guī)范話的功能描述說(shuō)明以及這些方法的實(shí)施,大大減少了系統(tǒng)中必須查找的BUG數(shù)量。雖然這句話的意思只是說(shuō)明精確定義產(chǎn)品將減少BUG的數(shù)量,但我看到了系統(tǒng)分析的最重要的工作——產(chǎn)品定義。
12.禍起蕭墻Hatching a Catastrophe
這章節(jié)說(shuō)明使項(xiàng)目進(jìn)度拖后的最大原因不是重要的事件,如新技術(shù)、重組等,而是一些瑣碎的小事,每件小事只耽誤半天或一天時(shí)間,但這種小事多以后,將使項(xiàng)目的進(jìn)度嚴(yán)重拖后。項(xiàng)目對(duì)于公司就如程序?qū)y(cè)試工程師一樣,如果不了解它,它就是一個(gè)黑盒子,如果不打開(kāi)這個(gè)黑盒子,你可能永遠(yuǎn)不知道盒子里面有什么。
13.另外一面The other face
本章說(shuō)明程序的另一面——文檔。
不了解,就無(wú)法真正擁有——歌德,作者引用的歌德的話來(lái)描述文檔對(duì)客戶的重要性,提出客戶需要什么樣的文檔以及文檔的格式和包含的內(nèi)容,指出當(dāng)時(shí)存在的大多數(shù)文檔只描述了樹(shù)木,形容了樹(shù)葉,但沒(méi)有整個(gè)森林的圖案。想想,這種情況在現(xiàn)在仍然沒(méi)有改變。于是作者提出了兩個(gè)觀點(diǎn):
1.流程圖:流程圖是被吹捧得最過(guò)分的一種程序文檔。許多程序甚至不需要流程圖,很少程序需要一頁(yè)以上的流程圖
2.自動(dòng)文檔化(self-documenting)的程序:提出文檔與程序合為一體,能很好的解決文檔與程序分開(kāi)造成的文檔過(guò)時(shí)的問(wèn)題,并說(shuō)明了在程序中加入文檔的一些方法和技巧。
14.沒(méi)有銀彈-軟件工程中的根本和次要問(wèn)題(No Silver Bullet-Essence and Accident in software Engineering)
人狼是傳說(shuō)中的妖怪,只有銀彈才能殺死他。作者認(rèn)為軟件項(xiàng)目具有人狼的特性,因?yàn)檐浖?xiàng)目也可能變成一個(gè)怪物,一個(gè)落后進(jìn)度、超出預(yù)算、存在大量缺陷的怪物。作者通過(guò)軟件系統(tǒng)的內(nèi)在特性復(fù)雜性、一致性、可變性和不可見(jiàn)性來(lái)分析說(shuō)明了軟件天生就沒(méi)有銀彈。作者試圖通過(guò)分析軟件問(wèn)題的本質(zhì)和很多侯選銀彈的特征來(lái)探究其中的原因。他行動(dòng)的第一步是將大塊的“巨無(wú)霸理論”替換成“微生物理論”。這個(gè)變化的過(guò)程告訴你,進(jìn)步是逐步取得的,伴隨著辛勤的勞動(dòng),對(duì)規(guī)范化過(guò)程應(yīng)進(jìn)行持續(xù)不懈的努力,而這個(gè)努力的過(guò)程相應(yīng)的就誕生了軟件工程。
15.再論《沒(méi)有銀彈》No Silver Bullet Refired
看完再論《沒(méi)有銀彈》后,雖然作者說(shuō)有不少人對(duì)他的觀點(diǎn)持反對(duì)或不同意見(jiàn),但我始終覺(jué)得他的觀點(diǎn)是對(duì)的——根本和次要問(wèn)題的劃分以及定義。作者認(rèn)為軟件開(kāi)發(fā)困難的部分是概念的結(jié)構(gòu),如規(guī)格化、設(shè)計(jì)和測(cè)試等概念的結(jié)構(gòu),而不是概念的表述和實(shí)現(xiàn)概念,雖然實(shí)現(xiàn)概念可能占用了小于90%的時(shí)間,就如現(xiàn)今的軟件開(kāi)發(fā)一樣,系統(tǒng)分析通常占用的整個(gè)項(xiàng)目開(kāi)發(fā)時(shí)間不超過(guò)20%,而80%的時(shí)間花在編程上一樣。
第三篇:《人月神話》讀后感
~-6-23 字?jǐn)?shù):1345當(dāng)我捧起《人月神話》,馬上就被深深的吸引了。書(shū)中很多細(xì)微之處都對(duì)我的思維造成了沖擊。上一本給我類似感覺(jué)的書(shū)是那本四人幫的《設(shè)計(jì)模式》,已經(jīng)很久沒(méi)有看到這么好的書(shū)了,鄭重推薦。把感觸比較深的幾點(diǎn)記下來(lái),順便整理一下自己的思路,與大家分享。1,保持設(shè)計(jì)的概念完整。無(wú)論對(duì)小軟件還是大軟件,都必須由一個(gè)設(shè)計(jì)師主導(dǎo),最多兩個(gè)人討論來(lái)共同完成軟件的整體設(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ī)則或者概念,很可能由于沒(méi)有明確的文檔化,而沒(méi)有成為所有開(kāi)發(fā)者共同的概念。在其他開(kāi)發(fā)者編碼的時(shí)候,就可能會(huì)生成與概念相抵觸的東東(模塊,功能,算法),導(dǎo)致整體結(jié)構(gòu)的惡化。這個(gè)時(shí)候總設(shè)計(jì)師一定要即時(shí)發(fā)現(xiàn),做出更正。概念的完整性,對(duì)于很多小規(guī)模軟件,由于開(kāi)發(fā)人員不多,開(kāi)發(fā)經(jīng)理一般都能控制住所有的代碼,概念完整性在組織層面就維持住了。但要注意以后的Bug修改,功能擴(kuò)展的時(shí)候,也要時(shí)刻留意與最初的設(shè)計(jì)是否概念上相容。對(duì)于大規(guī)模的軟件系統(tǒng),則必須通過(guò)樹(shù)狀組織結(jié)構(gòu),層層控制,總設(shè)計(jì)師還是一到兩人,每一層都有對(duì)下層的絕對(duì)把握能力。我以前參加過(guò)一個(gè)15人左右的項(xiàng)目組,就是分為兩層。感覺(jué)整體概念完整性的控制效果還不錯(cuò)。我沒(méi)有更多人數(shù)項(xiàng)目的具體實(shí)踐經(jīng)驗(yàn),希望以后能有機(jī)會(huì)參與比較大的項(xiàng)目。2,“一個(gè)拿2倍工資的人,生產(chǎn)率可能是其他人的10倍。”我和我的同學(xué),一個(gè)小公司的技術(shù)總監(jiān)聊起這個(gè),他也是十分的認(rèn)同。不知道其他公司的程序員們?nèi)绾慰?。我的同事中有一個(gè)牛人,做出的貢獻(xiàn)特別大,應(yīng)該相當(dāng)于我們公司普通的十個(gè)程序員,不過(guò)工資最多也就是普通程序員的二倍。是不是有些不公平呢?我也說(shuō)不清楚。因?yàn)槟切┢胀ǔ绦騿T也十分的努力。不過(guò),我覺(jué)得,作為公司,應(yīng)該給最好的人最好的待遇,或者說(shuō)給比目前更高的待遇。組建一個(gè)團(tuán)隊(duì),最好的就是那種精英團(tuán)隊(duì),大家都是牛人,效率會(huì)特別高。微軟就是這種思路吧,把最聰明的人集中在一起,想不成功都難亞。3,進(jìn)度落后與增加人力。記得當(dāng)年看《C++編程思想》,Bruce說(shuō)“十個(gè)婦女不能在一個(gè)月內(nèi)生下小孩”(大意),于我心有戚戚焉。而本書(shū)作者Brooks得出的結(jié)論是對(duì)我是震撼性的:“向進(jìn)度落后的項(xiàng)目中增加人手,只會(huì)使進(jìn)度更加落后”。以前,增加人手基本是挽救進(jìn)度落后項(xiàng)目的主要辦法。這個(gè)辦法行不通的話,難道只有“加班”一條路了?但長(zhǎng)期加班是對(duì)個(gè)人的摧殘,我更愿意利用業(yè)余時(shí)間去看書(shū),例如看這本“人月神話”。:)如果不想加班,不想削減功能,不想推遲發(fā)布日期,那么。。。唯一的方法還是只有….加人。加足夠的人。而且不要逐步加入,一定要一次性加入。要小心的是,新加入的人可能對(duì)原來(lái)的組織造成沖擊,或者對(duì)原來(lái)的設(shè)計(jì)有不同意見(jiàn)(特別是加入的人中有比較強(qiáng)大的設(shè)計(jì)者)。那么,就當(dāng)作,新組建了一個(gè)團(tuán)隊(duì)吧。交流,培訓(xùn)新人,就設(shè)計(jì)達(dá)成一致,繼續(xù)向者目標(biāo)前進(jìn)。感觸還有很多,以后如果有機(jī)會(huì)再寫(xiě)。不過(guò),我決定去買(mǎi)本英文版回來(lái),收藏,以后再多看幾次。
第四篇:《人月神話》讀后感
《人月神話》讀后感
通過(guò)閱讀《人月神話》,我從中學(xué)到了一些東西:
首先,開(kāi)發(fā)一個(gè)項(xiàng)目,我們錯(cuò)誤的認(rèn)為用人月這個(gè)工作量單位來(lái)估計(jì)和進(jìn)行進(jìn)度安排。成本的確隨開(kāi)發(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)度沒(méi)有幫助。調(diào)試、測(cè)試的次序特性,許多軟件都具有這種特征。因?yàn)檐浖_(kāi)發(fā)本質(zhì)上是一項(xiàng)系統(tǒng)工作——錯(cuò)綜復(fù)雜關(guān)系下的一種實(shí)踐——溝通、交流的工作量非常大,它很快會(huì)消耗任務(wù)分解所節(jié)省下來(lái)的個(gè)人時(shí)間。從而,添加更多的人手,實(shí)際上是延長(zhǎng)了,而不是縮短了時(shí)間進(jìn)度。
對(duì)于編程,有其樂(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í)際物體。將做事方式調(diào)整到追求完美,是學(xué)習(xí)編程的最困難部分;由其他人來(lái)設(shè)定目標(biāo),并且必須依靠自己無(wú)法控制的事物(特別是程序);權(quán)威不等同于責(zé)任實(shí)際情況看起來(lái)要比這一點(diǎn)好一些;真正的權(quán)威來(lái)自于每次任務(wù)的完成任何創(chuàng)造性活動(dòng)都伴隨著枯燥艱苦的勞動(dòng),編程也不例外 人們通常期望項(xiàng)目在接近結(jié)束時(shí),(bug、工作時(shí)間)能收斂得快一些,然而軟件項(xiàng)目的情況卻是越接近完成,收斂得越慢產(chǎn)品在即將完成時(shí)總面臨著陳舊過(guò)時(shí)的威脅。
開(kāi)發(fā)一個(gè)軟件,我們要有合理的時(shí)間進(jìn)度,開(kāi)發(fā)人員要少而精,概念完整性必須考慮在內(nèi),要盡量做到盡早交流和持續(xù)溝通。
同時(shí),文檔形成了關(guān)鍵的樞紐,每個(gè)項(xiàng)目管理的工作都圍繞著它們運(yùn)轉(zhuǎn),它們是經(jīng)理們的主要個(gè)人工具。對(duì)于計(jì)算機(jī)硬件開(kāi)發(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ì)要求書(shū)寫(xiě)相關(guān)文檔,對(duì)每個(gè)關(guān)鍵文檔的維護(hù)提供了狀態(tài)監(jiān)督和預(yù)警機(jī)制并且本身就可以作為檢查列表或者數(shù)據(jù)庫(kù)。
良好的工作手冊(cè)和組織架構(gòu)可以開(kāi)發(fā)出更加符合用戶的需求。手冊(cè)、或者書(shū)面規(guī)格說(shuō)明,是一個(gè)非常必要的工具,盡管光有文檔是不夠的。手冊(cè)是產(chǎn)品的外部規(guī)格說(shuō)明,它描述和規(guī)定了用戶所見(jiàn)的每一個(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á)的信心。
通常,開(kāi)發(fā)一個(gè)軟件我們還會(huì)設(shè)立規(guī)模目標(biāo),控制規(guī)模,發(fā)明一些減少規(guī)模的方法——
就如同硬件開(kāi)發(fā)人員為減少元器件所做的一樣。規(guī)模預(yù)算必須與分配的功能相關(guān)聯(lián); 在指明模塊大小的同時(shí),確切定義模塊的功能。培養(yǎng)開(kāi)發(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)度表來(lái)控制項(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ī)格說(shuō)明檢查機(jī)器和程序,充當(dāng)麻煩的代言人,查明每一個(gè)可能的缺陷和相互矛盾的地方。每個(gè)開(kāi)發(fā)機(jī)構(gòu)都需要這樣一個(gè)獨(dú)立的技術(shù)監(jiān)督部門(mén),來(lái)保證其公正性。產(chǎn)品-測(cè)試小組則是顧客的代理人,專門(mén)尋找缺陷。不時(shí)地,細(xì)心的產(chǎn)品測(cè)試人員總會(huì)發(fā)現(xiàn)一些沒(méi)有貫徹執(zhí)行、設(shè)計(jì)決策沒(méi)有正確理解或準(zhǔn)確實(shí)現(xiàn)的地方。出于這方面的原因,設(shè)立測(cè)試小組是使設(shè)計(jì)決策得以貫徹執(zhí)行的必要手段,同樣也是需要盡早著手,與設(shè)計(jì)同時(shí)實(shí)施的重要環(huán)節(jié)。
一個(gè)已開(kāi)發(fā)的項(xiàng)目,我們需要對(duì)它進(jìn)行后期維護(hù)。其維護(hù)基本上不同于硬件的維護(hù),它主要由各種變更組成,如修復(fù)設(shè)計(jì)缺陷、新增功能、或者是使用環(huán)境或者配置變換引起的調(diào)整而且維護(hù)總成本通常是開(kāi)發(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)沒(méi)有結(jié)束,它依然在飛速發(fā)展。更多的樂(lè)趣,盡在將來(lái)。
第五篇:《人月神話》讀后感
學(xué)號(hào):0967020449姓名:張小波班級(jí):軟件工程專升本3班
《人月神話》讀后感
在軟件領(lǐng)域中,很少能有像《人月神話》一樣具有深遠(yuǎn)影響力和暢銷不衰的著作。Brooks 博士為人們管理復(fù)雜項(xiàng)目提供了最具洞察力的見(jiàn)解,既有很多發(fā)人深省的觀點(diǎn),又有大量軟件工程的實(shí)踐,影響著一代又一代….通過(guò)閱讀《人月神話》,我從中學(xué)到了一些東西:
首先,開(kāi)發(fā)一個(gè)項(xiàng)目,我們錯(cuò)誤的認(rèn)為用人月這個(gè)工作量單位來(lái)估計(jì)和進(jìn)行進(jìn)度安排。成本的確隨開(kāi)發(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)度沒(méi)有幫助。調(diào)試、測(cè)試的次序特性,許多軟件都具有這種特征。因?yàn)檐浖_(kāi)發(fā)本質(zhì)上是一項(xiàng)系統(tǒng)工作——錯(cuò)綜復(fù)雜關(guān)系下的一種實(shí)踐——溝通、交流的工作量非常大,它很快會(huì)消耗任務(wù)分解所節(jié)省下來(lái)的個(gè)人時(shí)間。從而,添加更多的人手,實(shí)際上是延長(zhǎng)了,而不是縮短了時(shí)間進(jìn)度。
對(duì)于編程,有其樂(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í)際物體。將做事方式調(diào)整到追求完美,是學(xué)習(xí)編程的最困難部分;由其他人來(lái)設(shè)定目標(biāo),并且必須依靠自己無(wú)法控制的事物(特別是程序);權(quán)威不等同于責(zé)任實(shí)際情況看起來(lái)要比這一點(diǎn)好一些;真正的權(quán)威來(lái)自于每次任務(wù)的完成任何創(chuàng)造性活動(dòng)都伴隨著枯燥艱苦的勞動(dòng),編程也不例外 人們通常期望項(xiàng)目在接近結(jié)束時(shí),(bug、工作時(shí)間)能收斂得快一些,然而軟件項(xiàng)目的情況卻是越接近完成,收斂得越慢產(chǎn)品在即將完成時(shí)總面臨著陳舊過(guò)時(shí)的威脅。
開(kāi)發(fā)一個(gè)軟件,我們要有合理的時(shí)間進(jìn)度,開(kāi)發(fā)人員要少而精,概念完整性必須考慮在內(nèi),要盡量做到盡早交流和持續(xù)溝通。
同時(shí),文檔形成了關(guān)鍵的樞紐,每個(gè)項(xiàng)目管理的工作都圍繞著它們運(yùn)轉(zhuǎn),它們是經(jīng)理們的主要個(gè)人工具。對(duì)于計(jì)算機(jī)硬件開(kāi)發(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ì)要求書(shū)寫(xiě)相關(guān)文檔,對(duì)每個(gè)關(guān)鍵文檔的維護(hù)提供了狀態(tài)監(jiān)督和預(yù)警機(jī)制并且本身就可以作為檢查列表或者數(shù)據(jù)庫(kù)。
良好的工作手冊(cè)和組織架構(gòu)可以開(kāi)發(fā)出更加符合用戶的需求。手冊(cè)、或者書(shū)面規(guī)格說(shuō)明,是一個(gè)非常必要的工具,盡管光有文檔是不夠的。手冊(cè)是產(chǎn)品的外部規(guī)格說(shuō)明,它描述和規(guī)
定了用戶所見(jiàn)的每一個(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á)的信心。
通常,開(kāi)發(fā)一個(gè)軟件我們還會(huì)設(shè)立規(guī)模目標(biāo),控制規(guī)模,發(fā)明一些減少規(guī)模的方法——就如同硬件開(kāi)發(fā)人員為減少元器件所做的一樣。規(guī)模預(yù)算必須與分配的功能相關(guān)聯(lián); 在指明模塊大小的同時(shí),確切定義模塊的功能。培養(yǎng)開(kāi)發(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)度表來(lái)控制項(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ī)格說(shuō)明檢查機(jī)器和程序,充當(dāng)麻煩的代言人,查明每一個(gè)可能的缺陷和相互矛盾的地方。每個(gè)開(kāi)發(fā)機(jī)構(gòu)都需要這樣一個(gè)獨(dú)立的技術(shù)監(jiān)督部門(mén),來(lái)保證其公正性。產(chǎn)品-測(cè)試小組則是顧客的代理人,專門(mén)尋找缺陷。不時(shí)地,細(xì)心的產(chǎn)品測(cè)試人員總會(huì)發(fā)現(xiàn)一些沒(méi)有貫徹執(zhí)行、設(shè)計(jì)決策沒(méi)有正確理解或準(zhǔn)確實(shí)現(xiàn)的地方。出于這方面的原因,設(shè)立測(cè)試小組是使設(shè)計(jì)決策得以貫徹執(zhí)行的必要手段,同樣也是需要盡早著手,與設(shè)計(jì)同時(shí)實(shí)施的重要環(huán)節(jié)。
一個(gè)已開(kāi)發(fā)的項(xiàng)目,我們需要對(duì)它進(jìn)行后期維護(hù)。其維護(hù)基本上不同于硬件的維護(hù),它主要由各種變更組成,如修復(fù)設(shè)計(jì)缺陷、新增功能、或者是使用環(huán)境或者配置變換引起的調(diào)整而且維護(hù)總成本通常是開(kāi)發(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)沒(méi)有結(jié)束,它依然在飛速發(fā)展。更多的樂(lè)趣,盡在將來(lái)。