獨孤木專欄:報價階段預估專案時程與成本密技 (轉)

amyz發表於2007-11-12
獨孤木專欄:報價階段預估專案時程與成本密技 (轉)[@more@]獨孤木專欄報價階段預估專案時程與成本密技

關於如何預估專案的時程與成本,比起許多做研究的人來說,我應該可以算得上是個權威。因為我曾經看過業務人員如何進行報價,也曾經在我的手上,估計出不少專案的時程。許多提供各式各樣數學模型的人,從來沒有實際地做過任何與報價有關的工作。
對於一個沒有的人來說,專案的成本,大概可以用這樣的一句話來表示:
  專案的成本 = 客戶打算花在這個案子上的預算

當然,專案的時程就複雜的多了,否則怎么會有辦法估計出絕大多數都會落後的時程呢?所以這需要非常繁複的計算。原則上,需要等到專案的成本經過上述公式估計出來以後,再透過詳細的分析與計算,才可以估算出正確的時程。這種繁複的,經過最佳化之後,可以透過下列的方法計算出來:
  專案所需耗費的人月 = 專案的成本 / 每個人月的平均成本
  專案的時程 = 專案所需耗費的人月 / 要排在這個專案裡的人頭數量

當然,對於一個專家來說,這簡直是太過低估這項工作的困難程度,也忽略了軟體工程學中,針對這個問題所寫出數以萬計的論文。根據我非凡的智力以及超高的經驗值所得到的結論,我覺得預估專案的預算與時程最少還包含下面幾項困難度超高的工作專案:
  在客戶的部門中,建立良好的內線,以掌握客戶的預算以及實際競爭廠商的報價
  依據實際競爭廠商的報價,調整報價或是替內線建立一套為何要把專案給我們時,可以在內部自圓其說的說辭

推薦適合的陪榜廠商,以及建議適當的規格標以進行綁標,其實是在爭取專案進來之前就應該要做的功課。在透過資格審查之前,就應該在客戶的部門中,建立起適當的內線;不管是透過同學的同學,朋友的朋友,還是透過酒店小姐的幫忙,都得要與承辦人員或是客戶部門具有影響力的主管建立起一種休慼與共的關係。

然而在透過資格審查之後,業務人員最重要的工作,就是要幫辛辛苦苦建立起來的內線,準備一套說辭,以證明把專案交給我們來做,是最合理的解釋。這件事實在是太重要了,所以在此我大概列舉幾個常用的思考方向:

  首先是要確定,要怎么樣導引客戶的想法。當你具有合約總價上的優勢時,就建議客戶從成本的觀念來考量;如果你的金額比競爭對手高時,你可以先把專案的單價降低,然後把維護部分的成本提高,接著在合約裡面藏著一些陷阱,讓客戶一定要買你的維護服務,接著再建議客戶從成本的觀念來考量;或是把維護合約的成本降得非常非常低,建議客戶從總持有成本的觀念來思考,然後在合約中暗藏幾個陷阱,讓維護合約適用的範圍變得非常非常小,以降低會受到的傷害。

  當你的客戶擁有非常精明的老闆,以至於你根本不敢在金額方面玩花樣時,或是當金額上可以做的手腳都做完了,總價還是高人一等時,這時候應該強調你的科技、品質、相關領域的經驗與知識…任何你覺得可以贏過競爭廠商的地方。

  如果你在金額上毫無競爭力,各個領域又與競爭廠商沒有辦法相比時,這時候整個說帖的重心,則在於訴諸形而上的東西,例如我們比較用心,我們比較腳踏實地、我們擁有比較高的服務熱忱…這種沒有辦法評量的東西。

  如果你在導引客戶想法的部分失敗的話,最後一招就是散佈不實的謠言,這時候的重點,就從如何引導客戶的想法,轉而變成要怎么樣才能把客戶騙死。幾個比較常見的說法是,聽說XX公司目前面臨很嚴重的財務危機,公司可能會面臨倒閉、聽說XX公司目前人力資源嚴重不足,所有的人手都被調去支援更重要的案子、聽說XX公司先前做過的OO專案,速度超級慢、聽說先前做過的OO專案,delay了快要兩年,到現在還沒有結案…

當你絞盡腦汁再也想不出什么說帖來的時候,這個時候,就需要比較建設性的方法,例如下面的做法:
白爛公司想要建立一個Enterprise Portal,經過了漫長的資格審查,目前只剩下兩家廠商,目前正在進行商議價格的階段。本田與威爾剛好是分屬兩家不同公司的業務員,只是白爛公司不知道的是,本田的高中同學,剛好是威爾的大學同學。在雙方共同朋友的籤線之下,本田安排了一個秘密的會面。

本田:聽說你們正在標白爛公司的Enterprise Portal。
威爾:嗯哼。
本田:我知道你們最少已經花了三十萬去巴結他們課長,老實說,我們也花了五十萬在他們部經理上。不過我知道我們的報價會比你高,我們技術能力又比你們差…
威爾:所以呢?我們會得標啊。
本田:我知道他們的預算是一千五百萬,他們現在收了我們的錢,卻想玩兩手策略,把總價壓下去;他們一方面,拿你們的價錢,來壓我們的價錢;一方面,又拿我們的價錢,來壓你們的價錢。
威爾:你們可以不要降價啊?
本田:現在景氣這么差,實在是賠本也想做。我知道他們的課長想這樣搞下去,他想要用七百萬成交,老實說,這對你們來說沒有賺頭;我們也沒賺頭。
威爾:你有什么建議?
本田:你們先前報價一千三百萬,我們現在則是報出了一千兩百萬,我看他們還想繼續玩下去。花了那么多錢買關係,結果兩家公司鬥下去,卻都賺不了什么錢,這一點意義也沒有。我今天找你,是想建議我們兩家公司合作。要嘛,我們不降價,這個案子給你們,然後你們付我們一百五十萬顧問費還是諮詢費,名目我們可以再商量,我們找合作的公司開發票給你們;不然就是我們用九百萬當你們的下包商;再不然這個案子我們來做,看你們要抽多少。你覺得怎么樣?
……

與競爭廠商商量好,大家把合約價格拉高之後,就會有可以操作的地方。當然前提是要能夠一網打盡全部進入名單中的廠商,以及客戶擁有不做不行的壓力。箇中運用之巧妙,就存乎一心了。

關於如何為專案進行報價,有些人會傾向於採用將工作先進行詳細的切割,將每項工作的人月列出來以後,加上一定的緩衝,再加上一定的毛利,才進行報價。這種成本毛利定價法,已經被新一代的行銷觀念改變了,這也算一種典範轉移(paradigm shift)。也就是說,我們應該針對客戶對於產品價值的認知,而非成本來進行報價,如果客戶對於產品價值毫無概念,那就應該想盡辦法把客戶騙死。如果客戶有三千萬的預算,只報一千萬根本就是一種罪惡,這會降低資本社會財富重分配的速度。

當然,當專案真正要發包時,還會有許多場面話得要交代。也就是說,要從客戶願意支付的價格,來反向推匯出運用成本毛利法的各項工作。因為所有的客戶都只想付你每個人工作的工錢,不虛報人月,根本沒賺頭。
客戶的資訊人員通常會要求提供更詳細的專案規劃,例如會要求提供工作說明書(Statement of Work, SOW),還是要求細部的專案時程規劃,總會有還沒有被收買的使用者,會想了解估價的基礎與方法…
這就是專案經理可以發揮效用的地方了。通常他有兩個選擇:
  依據科學的方法與先前專案統計資料的分析,以數學模型提供一個較為精確的預測。
  隨他高興,隨便亂估。

在臺灣做專案,關於專案範圍的敘述,通常都十分模糊。要拿著這么模糊的說明預測未來是不可能的事情。如果能夠精確預測未來的人就會去買股票,當華倫巴菲特第二就好了,不用當專案經理。依據統計,本書讀者剛好可以預測未來的機率應該是趨近於零,所以第一種方法可以不用考慮。
更不用提大部分的公司根本就沒有收集任何專案統計資料,以及要以數學預測未來,得要做多少苦工了。

真正的聰明人會採取第二種方法。只是要唬爛,還是得要有唬爛的技巧,以便在被老闆質問時,可以找到一個適當的替死鬼。以下我會針對專案經理在估計的過程裡,常用的流程進行細部的介紹。

民意調查

民意調查的重點,在於專案經理需要把所有的工作先區分出來。也就是說,專案經理得要知道要完成一個專案,所有的工作專案應該是什么。原則上如果連工作專案也不清楚,抄抄前人的智慧也就差不多了。
等到每個工作都區分出來了,接著就是要幫每項工作找個替死鬼,要他們提供時程的預估。接著把民意調查的結果紀錄下來。這裡需要特別注意的是,要確定每項工作都要最少找到一個人願意提供估計的資料。下面這個例子就是一個不好的例子:

布魯斯:萊西,你認為這個案子的分析要花幾個月?
靈犬萊西:汪汪汪。
布魯斯記錄了,系統分析:三個月…
十個月後:
吉娜:布魯斯,為什么你們預估系統分析要花三個月,可是光系統分析,就花了十個月?這到底是誰估的?怎么會差這么多?
布魯斯:…(這個萊西,我要把你烤成肉乾來吃…)這個嘛…
正確的做法是:
布魯斯:賽門,你認為這個案子的系統分析要花幾個月?
賽門:嗯…我想,最少要三個月…五個月好了。
布魯斯記錄了,系統分析:六個月…
三天後:
吉娜:為什么你們預估系統分析要花六個月,怎么會要這么多的時間?
布魯斯:這個是賽門估計出來的,為了怕出現什么狀況,我再加上一些buffer。如果你覺得不妥,你要不要跟賽門談談…
十個月後:
吉娜:為什么你們預估系統分析要花六個月,最後卻花了十個月現在還看不到一個影?
布魯斯:這個是賽門估計出來的,他一開始預估五個月,我還已經加了一個月的buffer,可是現在看起來,還是不夠,當然,這不是賽門不努力,也不是我們沒有好好掌握,實在是一開始就太樂觀了…
吉娜:賽門,你這個數字到底是怎么估出來的?…

透過民意調查法,一方面可以讓專案成員享受參與專案的樂趣。如果工作順利完成,這當然是你領導有方才可以順利達成任務;如果工作延遲了,最少你還有一個替死鬼可以推卸責任。當然,這個替死鬼再預估時間時,多半也是自由心證抓出來的。

加權計算

民意調查完了以後,其實有兩個動作要做,第一個就是加權計算。
所有的預估都會有誤差,根據科學的統計,誤差的大小,跟你一輩子會踩到多少次狗屎成反比。原則上狗屎運越好的人,誤差就越小。只是這些誤差,是隨機地分佈在不同專案之中。

也就是因為這個原因,讓專案的估計非常的不準確。這也就是我們為什么要加權計算的原因。因為事情總是有出乎意料的可能,所以通常我們會為每個工作專案,預估一定的buffer。再加上我們對於專案成員的瞭解,就會加上一定的權重,例如:Steven所估出來的時間,需要乘以2倍;Andy所估出來的時間,需要乘以3倍;Joyce所估出來的時間,則是要乘以0.8倍…
除此之外,我們通常會針對技術上的難度,以及各種風險係數,定出一定的權重,再加上使用者可能變更的專案,再乘以一個權重。
這個方法的重點,在於所有的權數是你自由心證,隨便高興就自行判斷出來的。也就是說全部都是依據你個人的經驗,以及上天賜予的靈感,加上奇怪的政策規定形成的公式所計算出來的。

在經過專案成員自由心證的預估,再乘上一個自由心證的權重之後,通常這時候你會得到一個被放大許多倍的時程。這就是為什么通常我們會需要討價還價的原因。不過在進一步探討市場買賣的喊價法之前,我們應該先看看綜合現在這兩種方法的變形:超人估計法。

超人估計法

原則上這個方法就是綜合了民意調查法與加權計算的特性。民主的國家中,凡是有投票權的人,都覺得他參與了改變世界的過程。使用民意調查法,可以讓被問到的人有參與感。問題是公司通常不是一個民主的世界,從老闆通常不是透過選舉選出來的就知道了。老闆通常會有特別信賴的人,就跟政府首長特別喜歡徵詢專家學者的意見一樣,這些人通常是老闆下決定時的資訊來源。這些人通常具有超人一等的能力,可以用超光速繞著地球飛行,由於頭髮無法承受這么高速飛行摩擦,所以頭通常會變得禿禿的。我們可以簡單地將這些人歸類為『超人』。

對於超人來說,估計時程這個問題,可以從他們超凡的X光眼睛中,洞察宇宙的奧秘,所以可以預知未來。(不要問我X光跟預測未來有什么關係。)只是專案經理通常會由於經驗的驅使,將超人與平凡人的能力差異列入考量。這時候的爭論,通常在於超人的力氣到底等於幾個凡夫俗子加起來的結果。

超人:因為我是超人,我會使用光速飛行,所以我想這個專案,如果我來做應該只要三個月就可以做完了。
布魯斯:超人,這是因為你的力氣太大了,所以我覺得你不可以用你的標準來看這個平凡的世界。我想我們最少應該要乘以四倍,我會預估十二個月才可以完工。
吉娜:布魯斯,你還是高估了一般凡人的能力,我覺得乘以五倍差不多。
這時候的問題,通常在於到底一個超人等於多少個凡人這樣無用的爭論上。實際上,超人通常只是提出一個根本不可能的下限,讓大家自己往上加碼。此外,通常因為超人忙著拯救世界,所以通常不會有空來參與這個專案的開發。所以專案還是會如預期地delay。

討價還價

所有預估的時程,都會需要經歷這個過程。典型的例子如下:
布魯斯:系統分析需要六個月?
吉娜:可是客戶要在十個月內上線啊,六個月的系統分析根本不可能。布魯斯,為什么你們預估系統分析要花六個月,怎么會要這么多的時間?
布魯斯:這是賽門估出來的啊,我不可能不保留一點buffer?
吉娜:我多給你半個人,我請史壯花百分之五十的時間幫忙你,四個月內做完。
布魯斯:不可能,最少需要五個月。
吉娜:我請史壯這段時間全力幫忙你,可是你要確定把他的時間盯好。不要讓他去忙其它的事情。現在你有兩個全職的人了,我想這樣應該可以在三個月內做完。
布魯斯:還是不可能,史壯這么忙,我絕對不相信他可以full time support。為了保險,我覺得最少還是需要四個半月。
吉娜:你要給他們壓力啊,一定要把他們的生產力都擠出來。無論如何,一定要在四個月內完成。
布魯斯:好吧。我試試看。
這種事情做多了,其實也就明白了。通常在一開始預估schedule時,就會先保留一部份的buffer,等著讓老闆來砍。這種討價還價的行為一旦形成習慣,就會變得是每次估計時程,都要上演的戲碼。其實就跟臺灣人在夜市買賣東西差不多。

最後調整

不管先前怎么討價還價,最後還是得要依據客戶的預算,進行最後的調整。例如專案的報價,依據計算,要花七百五十萬;可是客戶只有五百萬的預算。該怎么辦?
一個方法是改變專案的範圍。這種事情大部分的業務員通常是不會去做的,因為良好的客戶關係,是維繫在業務員退讓的多寡之上;另一個好方法,則是運用政治上的壓力,逼迫專案經理,修改預測,就可以完成最後的調整。

比起要與客戶唇槍舌戰,還要冒著破壞顧客關係的危險,幫專案經理戴頂高帽,要求他調整權重是否容易多了呢?
這就得要回歸到剛才的步驟了。只是這一次,就是真刀實槍的廝殺了。
本田:我覺得這個案子的risk factor不應該這么高。
布魯斯:怎么可能!我們從沒做過的案子。
本田:我知道你們一定可以的,你們技術能力這么強,一定沒問題的。
布魯斯(接了一頂高帽,有苦在心裡口難開,嘗試最後的):依照公司的規定,這個風險係數得要標到2。
吉娜:這樣吧,布魯斯,你可以先派一個師去接受Sun的訓練啊。等他回來時,再教其它的人嘛。這樣你覺得是否就可以接受本田的建議。
布魯斯(好啊,本田你已經把老闆這一票給騙走了,我幹嘛做壞人。):我個人是覺得不妥,不過如果本田堅持的話,我覺得風險係數可以調到1。
吉娜:這樣還差多少?
本田:這樣我們的報價是六百萬。
吉娜:本田,六百萬應該可以去試試看了。
本田:承辦人跟我打包票,他們部門今年就只編五百萬的預算。聽說他們公司最近可能會有縮減預算的方案。現在不搶下來,可能就沒機會了。
吉娜:本田,我覺得你還是要試試看。Anyway,布魯斯,測試真的要這么久嗎?可不可以用2個人,半個月就做完了?
布魯斯(又要討價還價了。這些笨蛋,每次都砍測試的時間):我覺得這樣風險很高…
吉娜:你們可以把工作好好規劃一下啊,要work smart,不是要work hard。我想依照你們這個team的能力,應該沒問題。
布魯斯(又收了一頂高帽,這些人到底知不知道他們在講什么?):我覺得還是不妥。
本田:吉娜,這樣我們會接不到這個案子喔。布魯斯,可不可以再考慮還有沒有什么可以精簡的地方?
布魯斯:唉,測試一個月已經不夠了,不然就把implementation的時間再縮兩個禮拜好了。不過我要事先宣告喔,這一點,我還要跟programmer談談看。
本田:這樣應該可以去談談看了。
吉娜:大家可以達成共識,這樣子是最好不過了。本田,如果需要的話,我去跟他們部門協理談一談。我真的覺得應該可以以六百萬成交。

基本上在這樣的會議裡,業務抱持的基本理念是:
  如果降低售價,就可以順利成交
專案經理抱持的理念則是:
  反對到底,任何讓步都要有老闆背書
高階主管抱持的理念則是:
  如果可以提高售價,降低開發成本,我手上的股票選擇權就會更值錢。
三方角力的結果,通常就是一個莫名其妙,沒什么道理的金額與時間。所以報給客戶以後,通常還需要進行下一個步驟:『議價』。

議價

原則上要解讀一份報價單與要找算命先生解釋你的面相差不多,通常需要有專業人士的說明,才能看的出裡面的玄機;然而你永遠不知道這些專業人士,什么時候是在唬你,只是想從你的口袋裡面,多賺一些鈔票。除非你自己也是專業人士,可以看得出來。然而依據機率來說,這樣的可能性蠻低的。所以客戶通常能做的,就是順著你的話,找出語病,隨便亂砍一通。

然而由於專案經理也是透過民意調查法,估計出專案的時程與成本。可是在與客戶溝通時,通常提供原始估計的team member並不會出席。畢竟議價這是僅限高階主管所從事的休閒娛樂,所以通常就得要想盡辦法交叉運用下面幾種方法,唬爛到底。

廢話連篇法:

運用這個方法,通常是為了將故事從某一階段,過渡到另外一個階段時,所需要的發語詞。通常不具任何意義,可是可以拖延時間,製造膀胱的壓力,進而促成共識的達成。典型的廢話包含:
  一天工作八個小時
  一個禮拜休息兩天
  (複述報價單,彷彿客戶看不懂中文)一個人月是20萬,所以六個人月是120萬…
  品質是非常重要的…

莫名其妙推論法:

我看過運用這個方法最神奇的一個案子,專案經理將所需要花費的成本,與某個很荒謬的指標結合在一起。原則上就是不知所云,完全悖離我們所認知的邏輯而言。這個方法的強大之處,在於客戶的思路會完全的短路,就可以重新設定任意宰割了。
客戶:我有看到你們依照每項功能,整理出一個功能的單價出來,可不可以請你解釋一下,每個功能的單價是怎么計算出來的。
天才經理:原則上呢,我是依據RFQ上每個功能敘述的字數,乘以一個我特有的數字計算出來的。所以你看,這個功能總共有30個字,一個字一萬,所以要做這個功能總共要花30萬。
客戶(陷入極度的震驚與混淆,看著天才經理認真的表情,認為他不是開玩笑的):嗯……這個理論有沒有什么根據?
天才經理:這是經過長久的統計與計算,整理出來的結果。
客戶(他不會是講真的吧?):嗯…我想請問一下,如果我們修改RFQ上的文字,演算法還是一樣嗎?
天才經理:這就要用change request的方法來計算了。原則上就是改一字或刪一字都是一個字會影響總價一萬。因為這表示你的需求不明確,專案開始後有可能會再趕過。頭一次採用這種強大的方法,我想我們可以針對change request的部分特別打個折扣。
客戶(我真的遇到一個瘋子!):嗯…嗯…我再跟你。

真理法:

當客戶有任何疑問時,重複說明一次自己的解釋,然後強調一次這就是真理。真理,是不辯自明的。
客戶:我有看到你們依照每項功能,整理出一個功能的單價出來,可不可以請你解釋一下,每個功能的單價是怎么計算出來的。
天才經理:這是經過專家學者,審慎的評估研究之後,整理出來的結果。
客戶:我想我講的不夠明確,我可不可以知道你們到底是怎么樣進行評估的?
天才經理:我想我講的不夠清楚,這是經過專家學者,依據我們公司多年資料的統計分析,幫我們計算出非常複雜的公式之後,再經過審慎的評估研究,所整理出來的結果。
客戶:我只是想知道他們到底是依據什么標準,是怎么樣來進行評估的?
天才經理:我想她們就是依據我們公司多年資料的統計分析,幫我們整理出非常複雜的公式之後,再把相關的數字代進去,所計算出來的結果。
真理法與廢話連篇法的差異在於廢話連篇法所用的字句,通常還會有些不同,只是一堆陳腔濫調就是了;真理法則是同樣的冷飯,一路炒到底。直到客戶完全放棄抵抗為止。

公式法:

公式法跟莫名其妙推論法的差異在於,公式法所引用的公式,是確實存在的。可是由於實際上的估計,根本不是建立在數學模型上的結果。所以若不是依據結果編一個假的模型出來,就是根本只要聲稱採用這個模型即可。
客戶:我有看到你們依照每項功能,整理出一個功能的單價出來,可不可以請你解釋一下,每個功能的單價是怎么計算出來的。
天才經理:這是透過function point計算出來的結果。當然,每個計算的過程我沒有列在這裡。如果你有需要,我可以列出來給你。(你要真的要,我回家編一份給你就是了。)
客戶(終於遇到一個專家):不用了。不用了。你還需要我們提供進一步的澄清嗎?
這個方法的好處,在於大部分客戶只要聽到一個理論上的名詞,就會興起一股崇敬之意。通常不會有人想要了解,數字是怎么樣推論出來的。況且如果客戶真正需要你提供詳細數字的時候,隨便編也可以編出唬爛的數字來。
這個方法的另外一個好處是,在於一般人對於科學的信仰。越是信仰科學的人,越不知道怎么樣去與科學爭辯。所以採取這個方法,通常會遇到比較小的阻力。

小結:
通常這幾種方法交叉運用以後,客戶的腦袋也被混淆的差不多了。所以通常就會往下一步推進。客戶通常在此時會施出撒手鐗,不管三七二十一,直接砍掉報價的一定百分比。通常會留一些給承辦人做業績,留一些給採購做業績。

結語

經歷了這么複雜的過程以後,難怪大部份的專案,都難以逃脫預算超出規劃,還是時程嚴重落後的命運。當然啦,一開始的估計錯誤,通常還不足以這么嚴重的拖延進度與消化預算,一定要與更多的錯誤的決策結合在一起,才能夠達成這么強而有力的效果。在把這本書的篇幅耗光之前,我會努力地找尋各式各樣的偏見與答案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-981918/,如需轉載,請註明出處,否則將追究法律責任。

相關文章