人月神話讀書筆記(一) (轉)

worldblog發表於2008-01-24
人月神話讀書筆記(一) (轉)[@more@]

第一章 焦油坑

表面上看起來好像沒有任何一個單獨的問題會導致困難,每個都能被
解決,但是當它們相互糾纏和積累在一起的時候,團隊的行動就會變
得越來越慢。對問題的麻煩程度,每個人似乎都會感到驚訝,並且很
難看清問題的本質。不過,如果我們想解決問題,就必須試圖先去理
解它。  --  清楚地解釋開發的困難所在。

這,就是。一個許多人痛苦掙扎的焦油坑以及一種樂趣和苦惱共
存的創造性活動。對於許多人而言,其中的樂趣遠大於苦惱。而本書
的剩餘部分將試圖搭建一些橋樑,為透過這樣的焦油坑提供一些指導。
  --  本書的目的

 

第二章 人月神話

1.  在眾多專案中,缺乏合理的時間進度是造成專案滯後的最主要原因,它比其他所有因素加起來的影響還大。導致災難的原因是:

首先,我們對估算技術缺乏有效的研究。

第二,我們採用的估算技術隱含地假設人和月可以互換,錯誤地將進度與工作量相互混淆

第三,由於對自己的估算缺乏信心,軟體經理通常不會有耐心持續地進行估算這項工作。

第四,對進度缺少跟蹤和監督。

第五,當意識到進度的偏移時,下意識(以及傳統)的反應是增加人力。

2.  系統開發過程中,樂觀主義並不應該是理所應當的。

在單個任務中,“一切都將運轉正常”的假設在時間進度上具有可實現性。因為所遇的延遲是一個機率分佈曲線,“不會延遲”僅具有有限的機率,所以現實情況可能會像計劃安排的那樣順利。然而大型的程式設計工作,或多或少包含了很多工,某些任務間還具有前後的次序,從而一切正常的機率變得非常小,甚至接近於無。

3.  成本的確隨開發產品的人數和時間的不同,有著很大的變化,進度卻不是如此。因此我認為用人月作為衡量一項工作的規模是一個危險和帶有欺騙性的神話。它暗示著人員數量和時間是可以相互替換的。

因為本質上是一項系統的工作--錯綜複雜關係下的一種實踐--溝通、交流的工作量非常大,它很快會消耗任務分解所節省下來的個人時間。從而,新增更多的人手,實際上是延長了,而不是縮短了時間進度。

4.  在時間進度中,順序限制所造成的影響,沒有哪個部分比單元測試和系統測試所受到的牽涉更徹底。

對於任務的進度安排,以下是作者使用了很多年的法則:
1/3 計劃
1/6 編碼
1/4 構件測試和早期系統測試(單元測試)
1/4 系統測試

5.  如果發現專案的實際進度滯後於預計的進度,專案經理最好的辦法是重新安排進度,而不是增加專案人手。

6.  專案的時間依賴於順序上的限制,人員的數量依賴於單個子任務的數量。從這兩個數值可以推算出進度時間表,該表安排的人員較少,花費的時間較長(唯一的風險是產品可能過時)。相反,分派較多的人手,計劃較短的時間,將無法得到可行的進度表。總之,在眾多軟體專案中,缺乏合理的時間進度是造成專案滯後的最主要原因,它比其他所有因素加起來的影響還要大。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-998340/,如需轉載,請註明出處,否則將追究法律責任。

相關文章