茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1674594 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00137.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2008/3/14 8:48:13
爪哇教室 >> 獨孤木專欄─義和團式的專案計劃 (下)
在不斷加注的過程中,風險超出你能承受的範圍
==============================

某香港賭片典型場景。

賭神: 一百萬美金。

俗辣臨演: 我跟

壞蛋邪惡賭王: 我跟

發牌手每個人都再發了一張牌。

壞蛋邪惡賭王: 我再大你一億美金

俗辣臨演看了看手上的爛牌: 神經病,算了,不玩了,真倒楣,輸掉一百萬

賭神: 我跟你一億美金,再加上一百億美金,我梭了。



  如果你也坐在這個牌桌上,你也遇到賭神在玩你。你已經押了一億美金,不再跟牌,錢就被賭神拿走了,可是繼續跟下去,你有可能會輸到脫褲子。那你到底是跟還是不跟?

  我們常常提到高風險高報酬,可是大多數時候,其實只有看到高報酬,卻低估了高風險,或者自以為做了完整的風險管理計劃,可是結果卻遠超出預期。特別是當你已經押了一大堆籌碼進去之後,你真的有辦法說抽手就抽手嗎?

  所以原本以為一年會做完的案子,到了一年屆滿時,你告訴自己,糟糕,看起來可能要再做一年。可是現在如果不做了,這個案子先前投下去的經費就當做是完全的虧損,除了商譽獲得影響之外,還有一筆收入就收不到了。那要不然就再做下去吧。每一年進行風險評估,每一年都決定要繼續做下去,於是一年的案子做了五年。而整個花掉的經費,膨脹到原本一開始估計最壞狀況的五倍。

  這種風險最可怕的地方,在於這個財務的黑洞,是慢慢地被撐大的。不是一夕之間就冒出來。所以常常會因為它的緩慢成長,而讓管理人員失去戒心。等到你非處理不可時,則可能又會面臨,那到底是要放棄呢?還是要繼續進行急救?


  會有人跑去韓國的賭場,坐在賭桌上一個晚上輸掉一百萬美金,就是這個原因。當你坐在賭桌前,你並不是一次就把一百萬美金輸掉的。而是在緩慢不斷加注尋求翻本的狀況下,慢慢把自己的資源不斷地丟進去,越輸越多,就越押越大,到最後才會輸到回台灣之後被黑道討債,只好想辦法從公共工程中弄點油水回家花花。

  沒有人可以準確地預測未來,大多數人就算事先看出問題來,意見不被重視也是常有的事。不過當你某一天忽然警覺,發現自己已經深陷泥沼時,這時候應該怎麼辦呢?


當你發現自己踩在流沙上的時候
==============================

  不管我做了多少風險管理的工作,很奇怪,有一些對於專案進度會產生重大影響的事件,還是會突然之間就無中生有的出現在我眼前。或許有一些事前的徵兆,不小心被我忽略掉,而沒有加以事先預防。不過大多數我看到的狀況,是在一轉瞬之間,你就會發現自己踩在流沙上。

  這可能是因為我的專案管理能力太差所造成的。不過當你發現你自己踩在流沙上時,你會想要做些什麼?


  這個洞如果太大了,有些人就會開始尋找下一個可以棲身的地方;如果看起來你還沒有陷得太深,有些人會開始想要隱瞞實情,自己想辦法趕上進度;不管這個洞有多大,都還是會有些人會裝做一切都不存在,然後期待事情自己會自然而然地好轉;也有些人會實事求是的進行評估,然後想想有沒有什麼可以解決的方案。或是應變計畫。

  最好的解決方案當然是實事求是的進行損害控制。你跟老闆講一次不聽,講兩次不聽,可能講個十回,他就會覺得,割地賠款可能並沒有表面上那麼糟糕。八國聯軍要打過來的時候,就有一些官員去跟外國人簽訂了『東南互保章程』。大丈夫要能屈能伸,這邊虧一點,別的地方多賺點回來也就算了。

  可口可樂的故事其實有個快樂的大結局。在該設停損,放慢腳步時,他們選擇了傾聽,而非一意孤行,繼續把所有資源全部投入無底洞之中。


  這種決定當然會有政治上的影響,比如說有人的年終考績可能就會因為這樣而完蛋,也有人可能會因為這樣而被放到冷凍櫃中,永世不得翻身。不過如果你只想聽好消息,而拒絕傾聽壞消息時,那麼當你的部屬為了要繼續自己補救這個問題,而孤注一擲地把所有的資源投入一個無底洞時,有可能一次就會把你整家公司都賠光。例如英國具有悠久歷史的霸菱銀行,就被一個新加坡分行的明星期貨交易員李森一個人給弄倒了。

  新的產品,新的市場,新類型的專案,對很多公司來說,都是一種很大的風險。會不會成功,你可能做了很多問卷調查,你做了很多的市場分析,你可能想要從你已經有的經驗去進行推斷,然而,大多數這種類型的推估,都是徒勞無功的嘗試。可口可樂的故事告訴我們,任何時候,都應該要有你的預測可能會出錯的心理準備。認輸絕對不可恥,保留翻身的實力,才有機會在時來運轉的時候翻盤。

  如果你開發的是相當原創性的東西,你所進行的估計,其實大多都只是紙上談兵而已;不過如果你開發的是現在市場上已經出現的東西,那麼就會有一些方法,可以讓你在進行估計與規劃時,可以有一個可以遵循的依據。接下來,我將會跟大家聊聊一些跟Project planning有關的主題。



■ 大小很重要(Size Really Matters)
==============================

熱門call in節目現場,主持人拿出一張政府高官與商界聞人,同時至國外賭場遊玩的照片。

邱姓立委: 這一看就知道,是商人招待政府高官去國外賭錢,這中間一定有弊案。這一定是總統授意,怕在國內被人撞見,特地帶到國外去商量要怎麼掏空國家。我呼籲總統要為此向全國人民道歉。我也會在立法院中提出質詢,要求檢調立即進行偵辦。

李姓立委: 你看這兩個人的鼻子長相,就知道他們性需求一定非常強烈,我強烈質疑他們一定在賭完之後,會有part 2,part 3,會發生性醜聞。我建議水果日報與數字周刊儘速公布狗仔跟拍照片。我呼籲總統要為此向全世界人民道歉。

政治評論家:
康德曾經說過:『我的肚子好餓呀!』亞里斯多德曾經說過:『肚子餓就要吃東西。』你們看這個官員他臉沒有朝賭桌,我強烈懷疑他一定是肚子餓了要來找這幾個在賭博的人去找東西吃。接下來,他一定是要商人招待他去吃山珍海味。飽暖思淫慾,吃飽了以後有part 2,part 3一點也不足為奇。身為政府官員還接受商人招待到國外賭錢玩女人還吃宵夜,我鄭重呼籲總統要為此道歉下台。

對頭政治評論家: 鄉親呀,你們看,他們到國外去,就單純是要出去玩一玩散散心嘛。從他賭桌上的籌碼,可以看出來他們雖然輸了一屁股,還是面不改色。這分明是慷慨帥氣地去跟外國人鞏固邦交國的友誼嘛。這才是台灣人的氣魄,這才是愛台灣啦。不過就是一個人去賭場賭賭錢,就要總統向全宇宙道歉,還要總統下台,這樣有道理嗎?這只有不愛台灣的人才會這麼沒良心啦。



  同樣一張照片,每個人因為立場不同,就會有不同的解讀。就像每次選舉,總有不少人從風水堪輿學的角度來看各個候選人,到底那個會當選。有些人會說:『嗯,XXX因為祖先陵寢剛好處於龍脈之上,其氣極旺,一定可以順利當選。』另外一個人,就會從競選總部的風水來討論。最後一個人,可能又會從面相學來看,不同的人從不同的角度來看,可能又會有完全不同的推論。

  大多數時候,當我們在估計一個從來沒做過的專案時,其實就像是看著一個候選人的長相,就得要猜出他會不會當選一樣地困難。

  要知道答案,最準確的方法當然是等到選舉完了以後,就一翻兩瞪眼。這就跟當你案子做完之後,就很清楚到底會花多少錢,會花多少時間一樣。

  不過,我們沒有辦法在樂透還沒開獎之前,就事先知道得獎的號碼,專案管理也是一樣。所以通常只能憑著有限的資訊,開始瞎猜。我們有一個比較專業的說法,叫做估計。如果你用estimation,看起來就更優了。


  通常,在一開始的時候,你會有一些以前的經驗,還有客戶大概要做什麼的想法。這就跟我們在猜樂透號碼時,最少還可以知道以往開過什麼樂透的號碼一樣,你可以有一些讓你下判斷的依據。不過,這就已經是你所擁有的全部資訊了。

  話雖如此,可是這世上還是會有人猜中樂透頭獎號碼。所以只要你運氣夠好,也有可能會讓你猜中到底會需要做多少天才有辦法把這個案子結掉。

  然而當客戶要問你,你這個schedule是怎麼估出來的,那也不能隨口瞎掰。總要說一副看來可以交代得過去的理論。想想看,如果光看一個候選人的臉,就要你猜出他得票數會有多少,你會怎麼辦?光報票數嗎?這好像不夠,你還得告訴他,為什麼你會這樣推論。

  以軟體專案來說,通常管理階層會想要知道的,就是一個案子大概需要多少人,做幾個月,要花多少錢。有太多的老闆,唯一關心的就是:『你這個案子要做多久?要多少人?要花多少錢?』

  要回答這種問題,就必須要有一個方法可以定義,到底一個案子有多大。如果我們可以知道一個案子的大小,感覺起來就可以猜出來,大概會要多少人,要做多久,要花多少錢。就軟體工程來說,這就叫做估計專案的大小。


  既然要估計,第一件事,當然就是找看得到的部份,然後開始推論。這就跟風水老師,要解釋你的命運前,會先描述一下你的長相是一樣的道理。


布魯斯經過某廟前地下道,經過一位算命老師的攤子前。但見招牌上寫著『正宗唐朝欽天監袁天罡傳人布衣神相袁鐵缸』。 這位老師看到布魯斯經過,便說: 『年輕人,看你神色匆忙,想必是為了專案纏身。要到廟裡求香拜拜。』

布魯斯大驚: 『先生真是神機妙算,我最近要接一個案子,這個案子很大,我覺得風險很高,雖然寫好了專案計畫,還是覺得很心虛。這是來請神明保佑。沒想到遇到先生神算,還請先生指點迷津。』

布衣神相袁大師: 『嗯,我看你,天庭飽滿,一生衣祿無虧,地額方圓,晚歲定是榮華富貴;骨骼清奇,自然是貴相:且劍眉鳳眼;稟性豪強,神急眼圓,志高心狂;不過…』說完若有所思。

布魯斯: 『先生但說無妨。弟子必有重謝。』說完馬上掏出千元大鈔。

布衣神相袁大師沉吟了一會兒:
『嗯,我看你,印堂發黑,雙眼煥散無神,分明是多日加班,心力交瘁。按照你印堂發黑的程度來判斷,你的project最少會比你現在的預估要多花上一倍的時間,花費最少會高出現在預估的三倍。』

布魯斯聞言又驚: 『先生,難道沒有化解之道嗎?我要是估出這樣的數字,會被fire呀。』

布衣神相袁大師: 『相由心生,命隨運轉。如果你們的專案團隊可以每天準時下班,不要使用過多無聊的政治手法進行干預,或許尚有一線生機。不過你還是估的太唬爛,delay也是沒辦法的事情。要改schedule我看也不可能,因為你的競爭對手個個比你所報的時間更誇張。這樣吧,你每天回家後把這本獨孤寶典拿回家好好念念,應該可以幫上一點忙。』


  照算命老師的說法,專案的schedule基本上就跟你印堂發黑的程度有關。因為當他沒有太多資訊可以判斷的時候,就只好找一個參考的指標。就跟坊間傳說男人的性能力,可以從觀察鼻子大小與形狀就推斷出來是一樣的道理。所以我們在估計專案大小時,通常就會先找一個指標,例如可能就有人會用鼻子長度來代表猛男指標。只要他的鼻子又大又長,這就表示他的能力十分勇猛。


  這種理論非常直覺,所以不難理解,在軟體行業的歷史上,第一個被想到的方法就是如此。一開始的時候,其實大家的想法也蠻簡單的。我們就先估計看看做完這個系統,到底要寫少行的程式。寫越多程式就應該要花越久,這樣不是就很簡單?我們只要看看程式設計師一天平均可以寫多少行程式,而系統大概總共要寫出多少行的程式,算一算就可以算出來系統要做多久了嘛。

  這就好像上菜市場買豬肉一樣,先搞清楚一斤多少錢,接下來就稱重,稱完重就可以知道到底要付多少錢給老闆。你先估計你要把這個系統完成,把原始碼印出來,到底會有幾斤重,而一個programmer一個月寫出來的原始碼又有幾斤重,除一除就知道大概需要多少個人月才能做完。所以只要可以唬爛出總共要寫多少行程式,就可以拿以前的生產力數據,來編出專案到底要開發多久,到底要做多久的時間。

  所以在資訊界裡面,最剛開始被選來當做指標的東西,就叫做KLOC( loc指的是line of code,而K在電腦裡面通常指的是一千,所以這就表示一千行的程式碼。)也就是說,我們只要估計到底一個系統要寫多少行程式,就可以計算出到底要花多少個人月才可以把系統做出來。


  問題是,程式設計師的生產力並沒有辦法直接用程式到底寫了幾行來衡量。我印象比較深刻的例子出現在以往微軟與IBM的工程師彼此合作,共同開發作業系統的年代。那時候IBM的人全部用KLOC來計算生產力,而微軟的員工,有不少人為了讓程式執行的速度提昇,還改寫別人的程式,把它給縮短,所以有了負的生產力。

  可是經過實驗證明,微軟工程師所寫的程式雖然短,可是跑起來就是比較快。實驗歸實驗,IBM的工程師,還是做著投影片,來證明微軟工程師的生產力是負的。(作者註:請參考智庫出版憂鬱巨人-IBM一書。P 124)

  所以KLOC,如果照這樣的看法看來,還得要照不同的族群去做調整。超人飛得就是比較快,所以凡是克卜頓星球過來的居民,他的速度就要乘上一萬倍。

  不過同一個東西給不同的人去執行時,會有不同的速度,這也就表示我們在進行估計時,其實你做出來這樣的估計就沒有什麼用。因為實務上你很難看得出來,這個人是超人化裝扮演的記者克拉克,還是他就純粹是個凡人克拉克。


  所以當我們在實際生活中發現反證後,就會開始有一票人主張,性能力,跟鼻子長度沒有直接的關連。另外一群人會告訴你,你搞錯了,KLOC指的是一個人嘴巴的長度,而不是鼻子的長度。所以你當然會猜錯。

  不管怎麼說,就有人改用另外的一套方法,去估計專案的大小。這種估計方法,我們稱它為function point(功能點)。對於這些相信function point的信徒來說,他們找到了另外一種可以在專案還沒全部做完之前,就估計出專案大小的指標。

  提到Function point,讓我想起我在看電視轉播奧運比賽的高空跳水。如果你在空中可以滾個三圈半再轉體個360度,然後入水,這種的就是難度4還是多少,基本上只要沒有把脖子跌斷,又可以順利完成動作的話,就會有9.5分。

  Function point的概念也很像。他先做了系統的初步分析,大致上了解系統到底有多少功能需要完成。功能越多,基本上系統就越大。主要的算法,是配合系統分析所使用的方法來統計,計算的方式就是照系統應該要接收的輸入有多少畫面,輸出有多少畫面,儲存的資料檔又有多少個…


  計算完之後,再依據系統的複雜程度去加權計算。最後再乘以一個風險因子,就可以算出一個分數,這個數字,就叫做function point。

  簡單的說,就是先算算有多少功能,再依據系統的特性,乘以一個加權的分數,再乘以風險評估的分數(risk factor),就是function point。

  為什麼需要乘以一個加權的分數呢?理由很簡單。從高台上跳個一百圈再入水,跟直接頭上腳下一圈都不轉就入水,如果得分還採用相同的標準,鄉親啊,你說這樣還有天理嗎?又不是韓國來的裁判,當然不能這樣子搞。所以按照功能算完了之後,就要依據系統的特性,來乘一個數字。

  那風險因子又是什麼東西?這就牽涉到系統的開發,跟什麼有關了。

  除了系統本身的特性之外,另一個就跟開發的人有關。如果開發的人沒有相關的經驗,這樣出錯的機率就會提高。如果給了一個很不合理的schedule,那麼delay的可能性也會提高。

  就是因為可能影響project schedule的因素很多,所以除了專案本身的特點之外,就應該做個風險評估,這樣一來,我們在估計時,就會比較準確。


  要特別注意的是,這裡就已經乘了兩個數字。一個是跟專案本身特性有關的數字,另一個是跟要做的team,跟當時所處的環境有關的數字。如果兩個同時都估錯了,乘起來可是很嚇人的。

  如果採用了科學的方法,就真的會有比較準確的估計嗎?採用function point,就真的會比使用KLOC好嗎?其實未必。人的因素有可能會大過於一切。


吉娜: 我覺得你抓的的risk factor太高。

布魯斯: 怎麼會!你可以仔細看看我的風險評估報告。

吉娜: 報告也是你寫的嘛。你現在把它設成2,這樣我們等於加了100% 的buffer上去。總價給你一乘就成了三千萬。這怎麼有可能標得到?

布魯斯: 我是很實際的在做風險評估呀。

吉娜: 你回去再看看有沒有什麼可以降低風險的方法。既然你自己可以進行事前的風險評估,就表示我們可以做一些事情來預防風險發生的機率。我們報價最好是可以低於兩千萬,你risk factor不能超過1.3。

布魯斯想,我講不過你。不過這樣子一來,還做什麼風險評估呀?根本一點意義都沒有。



  即使你可以把人的因素給去除掉,這也不表示你的預估是萬無一失的狀況。在專案管理的世界裡面,有很多理論,其實只具有統計上的意義。你硬要把它套上科學的外衣,其實不見得合用。

  這是什麼意思呢?如果連續五期樂透,都沒有人中大獎,那是不是這一期就會開出頭獎來呢?按照機率來說,這種可能性會比較低。可是機率比較低,並不代表這一期就會有人簽中大獎。

  不管你用的方法再怎麼科學,這個人的鼻子雖然碩大無比,可是當你跟他到了賓館才發現,他只是巨鼻症的患者,實際試用起來,還真是讓人失望透頂,那也是莫可奈何的事情。

  在專案管理的世界裡面,不管你再怎麼樣地科學化進行客觀的分析,這個案子原本估計是一年,拖到三年才做完,那也是沒有辦法的事情。況且,你沒料到的事,都會比你意料中的多很多。

  更不要提以台灣的專案市場來說,在你進行估計之前,大多數時候,根本就沒有進行系統分析的機會,這就好像一個人只能拿著望遠鏡,看看三公里外的一群人,從每個人的鼻子大小,去猜測他到底有多勇猛。這能夠有多準?還不要提鼻子大小會不會一定跟小弟弟有關咧。


  當然啦,現在物件導向的分析與設計很紅,所以有一些人,就會從物件導向的分析方法這方面來進行專案大小的估計。因為物件導向的分析,通常都跟一種叫做使用案例(use case)的東西有關,所以就有個新名詞,就叫做use case point。基本上,就是另外一種判斷專案大小的指標。

  那這樣說起來,這些方法不就是都是沒用的?這倒也不盡然。如果你專注在於開發某種特定類型的系統,或是擁有相當有默契的團隊,數據化後的指標,還是可以幫你估計專案的大小。而這樣的準確度,也確實有可能會比較高。不過這樣的作法,只是讓你擁有一個看起來很繁複,並且很有可能可以降低誤差的作法。算是提高你猜中答案的機率。跟你是否真的可以猜中答案,並沒有絕對的關係。

  估計完專案的大小,事情就了結了嗎?

  如果你真的這樣想,那就真的是太過天真了。

  因為我們估計出專案的大小之後,其實並沒有隨之提出任何關於專案的時程,以及專案花費的數字呀。老闆問你時,你光跟他講說,這個案子會需要1350點的function points,一點意義也沒有。你需要回答他,這個案子需要10個人來做,然後要做一年半。


  所以這裡就湧現了另外一個問題,你估計出專案的大小了,接著你也從業界的參考數字算出要多少人月了,可是這要怎麼對應到schedule?沒有schedule,光從人月的預估,就可以猜出專案的成本嗎?

  沒有錯,這裡又開始不科學了起來,就像一個預言家仔細看著天象圖,跟你解釋了半天滿天星斗的位置,接下來卻跟你說,因為你人太胖,肚子太大,所以很有可能會有高血壓。最後還加了一句,這是從天象中觀察出來的喔。

  你會相信他嗎?我不知道,最少他在講解九大行星各自代表什麼含義的時候,看來很有說服力。

  很多人覺得這樣不好,我們應該要科學一點。所以會開始想要收集一些統計數據。也就是說,你得要在專案開發的過程裡面,收集各式各樣的數據。這樣以後才有辦法做統計上的分析。不過,這就又是另外一個主題了。


(下)(全文完)
(本文共分上中下三期)

內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|