基本介紹
- 中文名:布魯克斯法則
- 外文名:Brook's Law
提出和內容,項目滯後的原因,
提出和內容
Frederick P. Brooks,Jr.是北羅萊納大學Kenan-Flagler商學院的計算機科學教授。Brooks被認為是“IBM 360系統之父”,他擔任了360系統的項目經理,以及360作業系統項目設計階段的經理。憑藉在上述項目的傑出貢獻,他、Bob Evans和Erich Bloch在1985年榮獲了美國國家技術獎(National Medal of Techology)。早期,Brooks曾擔任IBM Stretch和Harvest計算機的體系結構師。
在查布爾希爾,Brooks博士創立了計算機科學系,並在1964至1984年期間擔任主席。他曾任職於美國國家科技局和國防科學技術委員會。Brooks目前的教學和研究方向是計算機體系結構、分子模型繪圖和虛擬環境。
布魯克斯是上世紀60年代IBMSystem/360的作業系統OS/360的開發負責人,這之後基於當時的經驗寫了人月神話一書。
但是一個月就需要結束的A結果花了兩個月完成。這相比於預估時已經是兩個月之後了。怎么辦?管理者有下面的對策。
- 重新安排任務。追加充足的時間到新的計畫了。
- 調整工作目標。減少工作。
這就是布魯克斯法則:追加人員到延遲的項目更會影響項目的進度。如布魯克斯所寫的那樣,無法按進度完成工作的話,只能降低工作目標作業。
項目滯後的原因
首先,我們對估算技術缺乏有效的研究,更加嚴肅地說,它反映了一種悄無聲息,但並不真實的假設——一切都將運作良好。
第二,我們採用的估算技術隱含地假設人和月可以互換,錯誤地將進度與工作量相互混淆。
第三,由於對自己的估算缺乏信心,軟體經理通常不會有耐心持續地進行估算這項工作。
第四,對進度缺少跟蹤和監督。其他工程領域中,經過驗證的跟蹤技術和常規監督程式,在軟體工程中常常被認為是無謂的舉動。
第五,當意識到進度的偏移時,下意識(以及傳統)的反應是增加人力。這就像使用汽油滅火一樣,只會使事情更糟。越來越大的火勢需要更多的汽油,從而進入了一場注定會導致災難的循環。
- 解析
第二點中提到的關於人月不可互換。舉個例子就是說:有一個10人月工作量的項目不能單純的分配個5個人用2個月的時間來完成。因為程式設計師在工作當中還需要交流的時間,各子項目間還可能會有依賴關係,因此本來10人月的項目分配給5個人之後,它的實際成本就提升了。
有人可能會說一個人做就可以了,但為了節省時間,在規定的時間裡完成項目,還是需要團隊合作的。
第三點:為了更有效的實施這一點,我們需要使用一個版本控制工具,比如說:SVN。還需要設定檢查點,里程碑,以及基線,從而準確的跟蹤項目進度。
第五點:當項目延後而增加人手,導致的結果卻是負面的。為了按期完成任務而增加新人,你需要從原來的項目組中調配人員來培訓新人,而且根據第二點,人員的增多,無形中也加大了任務開銷,最後導致項目難以控制。