1. 程式人生 > >隨便亂扯:軟體開發中的布魯克斯法則

隨便亂扯:軟體開發中的布魯克斯法則

這裡寫圖片描述
  在《人月神話》中,布魯克斯博士提出了布魯克斯法則:向進度落後的專案中增加人手,只會使進度更加落後。
  專案的進度可以被各種原因拖後:每個問題看上去都十分容易解決,但這些問題相互糾纏和堆積在一起時,團隊的行動就會越來越慢;對專案的預算不足也會拖延專案的進度;有的時候,僅僅是因為對專案所需的時間的估算不足,這導致這個專案幾乎無法按時完成。
  但在面對無法按時完成的專案時,向其中增添人手是非常傳統和自然的想法。然而事實上,試圖依靠增添人手來延緩進度的行為無異於抱薪救火。新員工往往會帶來一系列問題:

  • 新員工不可能馬上投入專案,他們需要經歷一些培訓。
  • 需要在原本的員工中挑選幾人脫離生產,用於對新員工進行培訓
  • 團隊內部的溝通將會消耗更多的時間
  • 團隊的管理將會更加困難
  • 新員工對於工作的不熟悉極有可能拖累專案進度
  • 更多人蔘與設計導致概念的一致性遭到破壞,將會導致專案的缺陷增多
  • 由於工作的先後順序問題,所有的員工不一定能投入工作,“十個孕婦不可能在一個月內產下孩子”

  因此,嘗試向進度落後的專案中新增人手是一個錯誤的選擇,軟體經理在面對專案進度落後時,所能採取的選擇往往只有以下幾種:

  • 向專案中追加時間,但這帶來的二次商業成本將會非常高昂
  • 帶著問題釋出新版本
  • 減小目標,釋出更精簡的版本,並增添更多的後續版本計劃

  當然,最好的做法莫過於從一開始便正確地估算進度,合理地安排時間,並不斷跟蹤並及時調整專案的進度安排,從而使得專案能夠從按時完成。