※這本書是Controlling Software Projects: Management, Measurement, and Estimates
在某次的專案進度檢討會議上,布魯斯的老闆請假,改由大師進行review。
布魯斯:目前系統已經漸漸趨於穩定。
大師:你講這種話有沒有什麼具體的根據?
布魯斯一驚,暗想今天吉娜為什麼要請假?:我是從defect新增的速度來看的。
大師:defect新增的速度告訴你什麼?有什麼具體的數據?
布魯斯暗想看來今天的status report很難善了:這個禮拜所開出來的defect,主要都是severity 4的defect,severity 3的defect 這個禮拜的數量已經從上個禮拜的10個降為1個了。
大師:你拿這個禮拜跟上個禮拜相比,tester在這兩週中,是執行同樣的test case,然後同樣跑一個round的測試嗎?
布魯斯嘆了一口氣,心想,這下被打到罩門了:不是。其實我們這兩個禮拜才執行完一個round。
大師:那你怎麼可以說系統已經漸漸趨於穩定了?
布魯斯:…大師,我知錯了。
如果有一個人向你報告說,這個專案的品質變得比較好了,他有什麼具體的指標嗎?我們在估計專案的大小,然後想要根據這個東西去估計schedule,有什麼明確的計量單位嗎?如果你在討論事情的時候,沒有任何客觀的數據,那麼你對於情勢的判斷,是否是基於天真的想像?
就跟股票分析師會去收集各式各樣的股價資訊,再畫成線圖一樣。專案管理其實還是需要收集各式各樣的統計資訊。經過系統化並且自動化的收集與整理之後,你才會有辦法去解讀,目前這個專案的狀況到底好或者是不好,管理者要應該採取什麼樣的管理措施。
所有技術分析的基礎都在於收集資料。希望透過科學的方式,去預估專案的未來,去評估目前專案的狀況,去找出應該要解決的風險,這些都需要有充足的資訊,來協助你做判斷。
這讓我想起一段三國時期孔明借東風的歷史故事。話說,曹操聚集了百萬雄兵,想要一舉殲滅孫權與劉備,就此一統天下。當他想要大舉渡江把劉備孫權打個稀巴爛時,他的部隊卻不怎麼捧場。沒辦法,他的將士多是北人,不慣乘舟。此時龐統獻連環計,要曹操把大小船隻,彼此之間用鐵環連在一起。如此一來,船就會穩如平地。想要稱霸中原,就指日可待了。
然而當時正值隆冬之際,只有西風北風,那有東風南風呢?周瑜看到當然大吃一驚。精心安排下的妙計,就等著要把曹操燒成黑炭,要是風兒不幫忙,一番精心設計就此白費。孔明說:『我小時候學過奇門遁甲之術,你幫我建個七星壇,再叫一些人過來幫我跳祈風舞,包你有三天三夜的東南風,讓你可以去放火。』。孔明做法之後果然就有東南風出現,周瑜一把火把曹操燒的是焦頭爛額,曹操兵敗如山倒,關雲長義釋華容道。三國鼎立之勢就此確立。
小時候讀到這一段歷史故事,心裡想的當然是,我一定要好好唸書,中國文化博大精深,一定有很多不傳的奇門遁甲之術,長大以後要當諸葛孔明,就可以學會移山倒海,呼風喚雨的神通。等到年紀越來越大,也覺得好像光唸唸咒語跳跳土風舞,要可以就此要風有風,好像不太可能。後來想想,嗯,諸葛孔明一定是個氣象學家。一定是他常常觀測氣象,才可以把天氣預報做的這麼準確。好個孔明,原來找士兵跳跳土風舞,只是個障眼法。
考前重點提示:你得要多收集一點氣象資料,才可以借得到東風。
可是當你要跟曹操打仗時,你怎麼會事先知道要當個氣象學家?這就是一門學問了。做專案也是一樣,當你要開始進行一個專案時,怎麼知道要收集什麼資料?這也是一門學問。當我們要收集資料時,所要面臨的問題就是:
這些我們下周再談。
作者為資深工程師及軟體開發專案經理,經常撰寫軟體專案的文章,作品散見於資訊論壇網站及其個人部落格中,著有《在公牛身上擠奶》一書。

