[閱讀筆記] 溫伯格的軟體管理學

溫伯格的鉅作『溫伯格的軟體管理學』是共四冊的系列套書,堪稱軟體專案管理的經典之作。溫伯格是軟體工程界的大師級人物,擅長以系統思考來解決問題,較為人所知的著作是『顧問成功的秘密』,『溫伯格的軟體管理學』這一系列的書(原文書),是他在1992年間陸續出版。即使二十多年前寫的書,書中的觀念至今仍然適用於軟體界。

這四冊套書分別是:
  1. 系統化思考(Systems Thinking) 
  2. 第一級評量(First-Order Measurement) 
  3. 關照全局的管理作為(Congruent Action) 
  4. 擁抱變革(Anticipating Change)
全書環繞在系統化思考的角度上,以六種軟體次文化角度來思考問題,模式越高代表組織越成熟。
  • 模式0(渾然不知):我們都不知道我們正循著一個過程在做事。
  • 模式1(變化無常):我們全憑當時的感覺來做事。
  • 模式2(照章行事):我們凡事皆依照工作慣例(除非我們陷入恐慌)。
  • 模式3(把穩方向):我們會選擇結果較好的工作慣例來行事。
  • 模式4(防範未然):我們會參照過往的經驗制定出一套工作慣例。
  • 模式5(全面關照):人人時時刻刻都會參與所有事務的改善工作。
這些書不只是闡述觀念而已,裡面有很多的情境,讀者可以跟著去思考,如果專案中發生了某個問題,要如何以系統化方式思考,然後根據思考的方向去解決問題。

在軟體界,大家為了專案上線疲於奔命,可是卻總是一波三折。專案進度落後,只好每天加班;用戶總是抱怨,做出來的東西不是他們要的;到了測試階段才發現,之前沒想到的問題不斷浮現;Bug越來越多,但快要上線了怎麼辦。最後,大家相約去拜拜,求神明保佑上線順利,往往卻是天不從人願。

以上問題的發生,不一定是巧合,很多時候,是因為專案成員沒有用系統化方式來思考及解決問題。

以下舉個書中的一個例子來說明:

【延遲的工作,增加人力一定趕得上進度嗎?】

以常理來說,專案進行中增加人力,真是求之不得,所謂人多好辦事,但真的是這樣嗎?

老闆期望的狀況是,給愈多人力,當然專案就可以提早完工。
可是現實的狀況卻是,加愈多人力,專案仍無法提前完工,這還是在專案成員彼此獨立作業,不溝通的狀況之下。

如果增加人力,而且專案成員彼此會互動、溝通,則人力增加到一個臨界值,專案時程不但不會提前,反而會延遲。

這就是『人月神話』書中,著名的《Brook's Law》
Brook's Law: Adding manpower to a late software project makes it later(投入更多的人到一項延遲的工作上,可以導致該項工作更加延遲) 

溫伯格在書中以系統動力學的角度來解釋Brook's Law。Brook's Law自成一個系統,如果愚昧的經理採取的行動是增加新進人員的數量,則這個系統就呈現負向效應:「新進人員數量」與「已完成之具生產力工作」成反比,「待完成之工作總量」與「相對進度」成反比。
當相對進度變得越來越差,管理階層才有所反應,但反應的動作過大且過遲。則會造成一個非線性正向反饋系統動態,如下圖左上紅色部分。
要打破Brook's Law的系統思考,就要控制負向效應,並使其產生正向效應。


根據系統動力學的觀點, 溫伯格認為打破Brook's Law,有以下方法:

  • 及早反應,動作要小
  • 在不妨礙核心人員工作負擔之下,增加人手
  • 指派新進人員獨立的工作,不要干擾核心人員
  • 指派新進人員非核心的工作,例如寫文件、測試

以上方法簡單明確,但大家遇到問題時,不見得能夠運用來解決問題。本書內容雖多,書中列舉很多專案實務上的常見問題,以及根據系統思考得出的解決方法,強烈建議專案經理和資深軟體工程師深讀。

最後一句話作結論:思考的深度,決定成功的高度。

相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

Mac與Android裝置傳輸檔案的方法

使用 Vysor 在電腦上控制 Android 裝置