天天看點

人月神話(一)The Mythical Man-Month

讀書的一點點總結吧,關于軟體開發管理方面的知識,雖然可能以後工作中用不到,但是至少了解自己的角色。

這章主要問題就是:造成項目滞後的最主要原因是缺乏合理的進度安排。幾個可能的原因有:

一、對估算技術認識的缺乏,制定的時候基于一種假設——一切都将運作良好。

造成這種問題的原因大多是因為思路的不完善性,假如文檔寫的天衣無縫,程式寫的盡善盡美,估計會和理想預期的一樣。

二、采用的估算技術隐含地假設人和月可以互換,錯誤的将工作量與進度混淆。

人和月不可以互換的原因,大概有一下幾個:

1.人員溝通需要成本,大的項目,肯能會一直開會~

2.有的任務無法分解,例如一個算法,可能不能拆成幾個部分來做

3.即使任務可以分解,那麼與時間的關系也不是線性的,是1/x的樣子的。而且如果關系過于複雜那麼會出現人越多消耗時間越長的現象。

三、沒有持續性的對項目估算。

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

這兩點這章沒有詳述,我感覺和靈活開發中的回報意思差不多。

五、進度偏移時,下意識的增加人力。

如果增加人力,那麼新來的要教育訓練,需要消耗時間,人多了溝通多,消耗時間而且溝通中會有錯誤,子產品多了內建時候錯誤就會多。項目的時間依賴于順序上的限制,人員的最大數量依賴于獨立于任務的數量。從這兩個數值可以推算出進度表,該表安排的人員較少,花費的時間較長(唯一的風險是産品可能會過時)。相反,分派較多的人手,計劃較短的時間,将無法得到可行的進度安排。是以一個項目不是人越多做的越好越快,每個項目可能都有一個最佳的人員配置,最佳的進度安排。

UML

繼續閱讀