人月神話讀書筆記(六) (轉)
第九章 削足適履
1. 的空間規模:規模是系統產品成本中如此大的一個組成部分,開發
人員必須設定規模的目標,控制規模,考慮減小規模的方法。同任何開銷一樣,規模
本身不是壞事,但不必要的規模是不可取的。
2. 對專案經理而言,規模控制既是技術工作的一部分,也是管理工作的一部分。必
須研究使用者和他們的應用,以設定將開發系統的規模。接著,把這些系統劃分成若干
部分,並設定每個部分的規模目標。由於規模--速度權衡方案的結果在很大的範圍內
變化,規模目標的設定是一件頗具技巧的事情,需要對每個可用方案有深刻的瞭解。
聰明的專案經理還會給自己預留一些空間,在工作推行時分配。
僅對核心設定規模目標是不夠的,必須把所有的方面都編入預算。
在指明模組有多大的同時,確切定義模組的功能。
培養開發人員從系統整體出發,面對使用者的態度。
3. 在速度不變的情況下,更多的功能意味著需要更多的空間。其中一個技巧是用功
能尺寸。設計人員必須決定使用者可選專案的精細程度。
4. 考慮空間--時間的折衷。對於給定的功能,空間越多,速度越快。
專案經理可以做兩件事來幫助他的團隊取得良好的空間--時間折衷。一是確保他們在
技能上得到培訓,而不僅僅是依賴他們自己掌握的知識和先前的。特別是使
用新語言或者新機器時,培訓顯得尤其重要。另一種方法是認識到程式設計需要技術積累,
需要開發很多公共單元構件。
5. 戰略上的突破常來自資料或表的重新表達--這是程式的核心所在。資料的表現形
式時程式設計的根本。
第十章 提綱挈領
1. 文件的跟蹤維護是專案監督和預警的機制。文件本身可以作為檢查
列表、狀態控制,也可以作為彙報的資料基礎。
2. 軟體專案文件的內容:
目標。待完成的目標、迫切需要的資源、和優先順序。
產品技術說明。
進度表。
資金預算。
工作空間分配。
人員組織。
3. 為什麼要有正式的文件
首先,書面記錄決策是必要的。人們能從令人迷惑的現象中得到清晰、確
定的決策。
第二,文件能作為同其他人溝通的渠道。專案經理的基本職責是使每個人
都向著相同的方向前進,所以他的工作主要是溝通,而不是做出決定。文
檔能極大地減輕他的負擔。
最後,文件可以作為資料基礎和檢查列表。透過週期性的回顧,他能清楚
專案所處的狀態,以及哪些需要重點進行更改和調整。
專案經理的任務是制訂計劃,並根據計劃實現。只有書面計劃是精確和可
以溝通的。透過遵循文件開展工作,專案經理能更清晰和地設定自己
的方向。
第十一章 未雨綢繆
1. 對於大多數專案,第一個開發的系統並不合用。可能太慢、太大,而且難以
使用,或者三者兼而有之。要解決所有的問題,除了重新開始以外,沒有其他的
辦法--即開發一個更靈巧或者更好的系統。系統的丟棄和重新設計可以一步完成
,也可以一塊塊地實現。所有大型系統的經驗都顯示,這是必須完成的步驟。
-- 構建一個試驗性的系統,然後拋棄它。
2. 一旦認識到實驗性的系統必須被構建和丟棄,具有變更思想的重新設計不可
避免。
3. 為變化設計系統,包括細緻的模組化、可擴充套件的、精確完整的模組間接
口設計、完備的文件。另外,還可能會採用包括佇列和表技術。
最重要的措施是使用高階語言和自文件技術,以減少變更引起的錯誤。採用編譯
時的操作來整合標準說明,在很大程度上幫助了變化的調整。
變更的階段化是一種必要的技術。每個產品都應該有數字版本號,每個版本都應
該有自己的日程表和凍結日期。在此之後的變更屬於下一個版本的範疇。
4. 為變更計劃組織架構和團隊。
5. 程式維護中的一個基本問題是 -- 缺陷修復總會以(20%--50%)的機率引入新
的。整個過程是前進兩步,後退一步。作為引入新bug的一個後果,程式每條
語句的維護需要的系統測試比其他程式設計要多,成本非常高。
缺陷不能被徹底修復的原因:
首先,看上去很輕微的錯誤,似乎僅僅是區域性操作上的失敗,實際上卻是系統級
別的問題。其次,維護人員通常不是編寫程式碼的開發人員。
5. 使用能消除、至少是能指明副作用的方法,會在維護成本上有很大
的回報。設計實現的人員越少、介面越少,產生的錯誤也就越少。
6. 維護工作破壞系統的架構,增加了系統的混亂程度。隨著時間的推移,系統
變得越來越無序,無法再成為下一步進展的基礎。這時,系統的重新設計完全是
必要的。
系統是減少混亂度的過程,軟體維護是提高混亂度的過程,即使是最熟
練的軟體維護工作,也只是放緩了系統退化的程式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993325/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《人月神話》閱讀筆記筆記
- 《人月神話》閱讀筆記3筆記
- 《人月神話》閱讀筆記4筆記
- 《人月神話》閱讀筆記5筆記
- 《人月神話》閱讀筆記6筆記
- 《人月神話》閱讀筆記二筆記
- 《人月神話》閱讀筆記一筆記
- 《人月神話》閱讀筆記三筆記
- 人月神話閱讀筆記2筆記
- 03人月神話
- 《人月神話》讀後感
- 大話設計模式 讀書筆記設計模式筆記
- 讀書筆記筆記
- 《每個人的戰爭》讀書筆記筆記
- PRML讀書筆記0——寫在前面的話筆記
- 《讀書與做人》讀書筆記筆記
- 《六西格瑪管理法》讀書筆記2021筆記
- 讀書筆記-2020年6月-《人間值得》筆記
- webpackDemo讀書筆記Web筆記
- Vue讀書筆記Vue筆記
- 散文讀書筆記筆記
- Cucumber讀書筆記筆記
- HTTP 讀書筆記HTTP筆記
- postgres 讀書筆記筆記
- 讀書筆記2筆記
- 讀書筆記3筆記
- 01《人月神話》
- js高程讀書筆記JS筆記
- 《論語》讀書筆記筆記
- 《重構》讀書筆記筆記
- PMBook讀書筆記(一)筆記
- [轉帖]System Performance 讀書筆記 - 作業系統(1)ORM筆記作業系統
- 《如何有效閱讀一本書》讀書筆記筆記
- 《將心注入》讀書筆記筆記
- Raft論文讀書筆記Raft筆記
- 讀書筆記-沒有空白筆記
- JVM讀書筆記之OOMJVM筆記OOM
- swift語法-讀書筆記Swift筆記
- 【GO】《GO HANDBOOK》讀書筆記Go筆記