【正文】
項目,我們都會要求書寫相關文檔,對每個關鍵文檔的維護提供了狀態(tài)監(jiān)督和預警機制并且本身就可以作為檢查列表或者數(shù)據(jù)庫。因為軟件開發(fā)本質上是一項系統(tǒng)工作——錯綜復雜關系下的一種實踐——溝通、交流的工作量非常大,它很快會消耗任務分解所節(jié)省下來的個人時間。作者認為軟件開發(fā)困難的部分是概念的結構,如規(guī)格化、設計和測試等概念的結構,而不是概念的表述和實現(xiàn)概念,雖然實現(xiàn)概念可能占用了小于90%的時間,就如現(xiàn)今的軟件開發(fā)一樣,系統(tǒng)分析通常占用的整個項目開發(fā)時間不超過20%,而80%的時間花在編程上一樣。許多程序甚至不需要流程圖,很少程序需要一頁以上的流程圖(selfdocumenting)的程序:提出文檔與程序合為一體,能很好的解決文檔與程序分開造成的文檔過時的問題,并說明了在程序中加入文檔的一些方法和技巧。許許多多的失敗完全源于那些產(chǎn)品未精確定義的地方”,細致的功能定義,詳細的規(guī)格說明,規(guī)范話的功能描述說明以及這些方法的實施,大大減少了系統(tǒng)中必須查找的BUG數(shù)量。 the Shot主要講述如何計算編程時間,以及提出幾個人的經(jīng)驗算法。交流,培訓新人,就設計達成一致,繼續(xù)向者目標前進。而本書作者Brooks得出的結論是對我是震撼性的:“向進度落后的項目中增加人手,只會使進度更加落后”。對于大規(guī)模的軟件系統(tǒng),則必須通過樹狀組織結構,層層控制,總設計師還是一到兩人,每一層都有對下層的絕對把握能力。本書作者為人們管理復雜項目提供了頗具洞察力的見解,既有很多發(fā)人深省的觀點,也有大量的軟件工程實踐。該書是論文集﹐其中有一篇文章叫“The Mythical ManMonth”﹐他就以此作為書名。而且不要逐步加入,一定要一次性加入。3,進度落后與增加人力?!蔽液臀业耐瑢W,一個小公司的技術總監(jiān)聊起這個,他也是十分的認同。這個時候總設計師一定要即時發(fā)現(xiàn),做出更正。上一本給我類似感覺的書是那本四人幫的《設計模式》,已經(jīng)很久沒有看到這么好的書了,鄭重推薦。無論對小軟件還是大軟件,都必須由一個設計師主導,最多兩個人討論來共同完成軟件的整體設計。對于大規(guī)模的軟件系統(tǒng),則必須通過樹狀組織結構,層層控制,總設計師還是一到兩人,每一層都有對下層的絕對把握能力。是不是有些不公平呢?我也說不清楚。以前,增加人手基本是挽救進度落后項目的主要辦法。交流,培訓新人,就設計達成一致,繼續(xù)向者目標前進。于是﹐他就將其領導開發(fā)OS/360軟件系統(tǒng)的經(jīng)驗心得收集在這本書里。作為一個軟件,一個系統(tǒng),必須有一個清晰明確的概念模型,大家都在這個框架下工作,所有的創(chuàng)新發(fā)展都必須與基本的概念相吻合。我覺得,作為公司,應該給最好的人最好的待遇,或者說給比目前更高的待遇。唯一的方法還是只有….加人。 Surgical Team項目經(jīng)理在項目的初期必須清楚的估計項目的人月運作模式(時間、人力在項目各階段的分配),例如什么時候需要出什么樣成果,決定了什么時候需要什么樣的人加入項目,這是項目經(jīng)理的責任。 Documentary Hypothesis說明文檔的作用 to Throw One Away唯一不變的是變化本身。項目對于公司就如程序對測試工程師一樣,如果不了解它,它就是一個黑盒子,如果不打開這個黑盒子,你可能永遠不知道盒子里面有什么。作者通過軟件系統(tǒng)的內在特性復雜性、一致性、可變性和不可見性來分析說明了軟件天生就沒有銀彈。因此我認為用人月作為衡量一項工作的規(guī)模是一個危險和帶有欺騙性的神話。創(chuàng)建事物的快樂,開發(fā)對其他人有用的東西的樂趣,將可以活動、相互嚙合的零部件組裝成類似迷宮的東西,這個過程所體現(xiàn)出令人神魂顛倒的魅力,面對不重復的任務,不間斷學習的樂趣,工作在如此易于駕馭的介質上的樂趣——純粹的思維活動,其存在、移動和運轉方式完全不同于實際物體。手冊是產(chǎn)品的外部規(guī)格說明,它描述和規(guī)定了用戶所見的每一個細節(jié);同樣的,它也是結構師主要的工作產(chǎn)物。培養(yǎng)開發(fā)人員從系統(tǒng)整體出發(fā)、面向用戶的態(tài)度是軟件編程管理人員最重要的職能。而這項工作主要由產(chǎn)品測試機構/小組根據(jù)規(guī)格說明檢查機器和程序,充當麻煩的代言人,查明每一個可能的缺陷和相互矛盾的地方。在每次修復之后,必須重新運行先前所有的測試用例,從而確保系統(tǒng)不會以更隱蔽的方式被破壞。因此我認為用人月作為衡量一項工作的規(guī)模是一個危險和帶有欺騙性的神話。創(chuàng)建事物的快樂,開發(fā)對其他人有用的東西的樂趣,將可以活動、相互嚙合的零部件組裝成類似迷宮的東西,這個過程所體現(xiàn)出令人神魂顛倒的魅力,面對不重復的任務,不間斷學習的樂趣,工作在如此易于駕馭的介質上的樂趣——純粹的思維活動,其存在、移動和運轉方式完全不同于實際物體。手冊是產(chǎn)品的外部規(guī)格說明,它描述和規(guī)定了用戶所見的每一個細節(jié);同樣的,它也是結構師主要的工作產(chǎn)物。培養(yǎng)開發(fā)人員從系統(tǒng)整體出發(fā)、面向用戶的態(tài)度是軟件編程管理人員最重要的職能。而這項工作主要由產(chǎn)品測試機構/小組根據(jù)規(guī)格說明檢查機器和程序,充當麻煩的代言人,查明每一個可能的缺陷和相互矛盾的地方。在每次修復之后,必須重新運行先前所有的測試用例,從而確保系統(tǒng)不會以更隱蔽的方式被破壞。盡管這些答案大多數(shù)時候都好像預期地展目前你的切實工程中:原文中還有眾多相仿的見解、假象和答案,都成為了切實工程中的既存假象。好像我們看到的另一些事實一樣,有許多假象闡明,我們正在歸來工程***的道路上摸索前進。再進一步地說,既然Brooks設定了“大型工程或系統(tǒng)項目”這么的目標,并給出了一些答案。不過書中在引用Joel Aron(IBM在馬里蘭州蓋茲堡的系統(tǒng)技巧主管)的例子時說,“大型意味著過程員的數(shù)目超過25人,將近30,000行的號召”。事實上我們目前的軟件工程的進展是被駕駛了,而不是被預言了。