關於如何預估軟體專案的時程與成本,比起許多做研究的人來說,我應該可以算得上是個權威。因為我曾經看過業務人員如何進行報價,也曾經在我的手上,估計出不少專案的時程。許多提供各式各樣數學模型的人,從來沒有實際地做過任何與報價有關的工作。
對於一個沒有經驗的人來說,專案的成本,大概可以用這樣的一句話來表示:
* 專案的成本 = 客戶打算花在這個案子上的預算
當然,專案的時程就複雜的多了,否則怎麼會有辦法估計出絕大多數都會落後的時程呢?所以這需要非常繁複的計算。原則上,需要等到專案的成本經過上述公式估計出來以後,再透過詳細的分析與計算,才可以估算出正確的時程。這種繁複的程式,經過最佳化之後,可以透過下列的方法計算出來:
* 專案所需耗費的人月 = 專案的成本 / 每個人月的平均成本
* 專案的時程 = 專案所需耗費的人月 / 要排在這個專案裡的人頭數量
當然,對於一個專家來說,這簡直是太過低估這項工作的困難程度,也忽略了軟體工程學中,針對這個問題所寫出數以萬計的論文。根據我非凡的智力以及超高的經驗值所得到的結論,我覺得預估專案的預算與時程最少還包含下面幾項困難度超高的工作項目:
* 在客戶的部門中,建立良好的內線,以掌握客戶的預算以及實際競爭廠商的報價
* 依據實際競爭廠商的報價,調整報價或是替內線建立一套為何要把專案給我們時,可以在內部自圓其說的說辭
推薦適合的陪榜廠商,以及建議適當的規格標以進行綁標,其實是在爭取專案進來之前就應該要做的功課。在通過資格審查之前,就應該在客戶的部門中,建立起適當的內線;不管是透過同學的同學,朋友的朋友,還是透過酒店小姐的幫忙,都得要與承辦人員或是客戶部門具有影響力的主管建立起一種休戚與共的關係。
然而在通過資格審查之後,業務人員最重要的工作,就是要幫辛辛苦苦建立起來的內線,準備一套說辭,以證明把專案交給我們來做,是最合理的解釋。這件事實在是太重要了,所以在此我大概列舉幾個常用的思考方向:
* 首先是要確定,要怎麼樣導引客戶的想法。當你具有合約總價上的優勢時,就建議客戶從成本的觀念來考量;否則,你可以把專案的單價降低,把維護部分的成本提高,再建議客戶從成本的觀念來考量;或是把維護合約的成本降得非常非常低,建議客戶從總持有成本的觀念來思考,然後在合約中暗藏幾個陷阱,讓維護合約適用的範圍變得非常非常小,以降低會受到的傷害。
* 當你的客戶擁有非常精明的老闆,以至於你根本不敢在金額方面玩花樣時,或是當金額上可以做的手腳都做完了,總價還是高人一等時,這時候應該強調你的科技、品質、相關領域的經驗與知識…任何你覺得可以贏過競爭廠商的地方。
* 如果你在金額上毫無競爭力,各個領域又與競爭廠商沒有辦法相比時,這時候整個說帖的重心,則在於訴諸形而上的東西,例如我們比較用心,我們比較腳踏實地、我們擁有比較高的服務熱忱…這種沒有辦法評量的東西。
* 如果你在導引客戶想法的部分失敗的話,最後一招就是散佈不實的謠言,這時候的重點,就從如何引導客戶的想法,轉而變成要怎麼樣才能把客戶騙死。幾個比較常見的說法是,聽說XX公司目前面臨很嚴重的財務危機,公司可能會面臨倒閉、聽說XX公司目前人力資源嚴重不足,所有的人手都被調去支援更重要的案子、聽說XX公司先前做過的OO專案,速度超級慢、聽說先前做過的OO專案,delay了快要兩年,到現在還沒有結案…
當你絞盡腦汁再也想不出什麼說帖來的時候,這個時候,就需要比較建設性的方法,例如下面的做法:
白爛公司想要建立一個Enterprise Portal,經過了漫長的資格審查,目前只剩下兩家廠商,目前正在進行商議價格的階段。本田與威爾剛好是分屬兩家不同公司的業務員,只是白爛公司不知道的是,本田的高中同學,剛好是威爾的大學同學。在雙方共同朋友的簽線之下,本田安排了一個秘密的會面。
本田:聽說你們正在標白爛公司的Enterprise Portal。
威爾:嗯哼。
本田:我知道你們最少已經花了三十萬去巴結他們課長,老實說,我
們也花了五十萬在他們部經理上。不過我知道我們的報價會比
你高,我們技術能力又比你們差…
威爾:所以呢?我們會得標啊。
本田:我知道他們的預算是一千五百萬,他們現在收了我們的錢,卻
想玩兩手策略,把總價壓下去;他們一方面,拿你們的價錢,
來壓我們的價錢;一方面,又拿我們的價錢,來壓你們的價錢。
威爾:你們可以不要降價啊?
本田:現在景氣這麼差,實在是賠本也想做。我知道他們的課長想這樣
搞下去,他想要用七百萬成交,老實說,這對你們來說沒有賺頭
;我們也沒賺頭。
威爾:你有什麼建議?
本田:你們先前報價一千三百萬,我們現在則是報出了一千兩百萬,我
看他們還想繼續玩下去。花了那麼多錢買關係,結果兩家公司鬥
下去,卻都賺不了什麼錢,這一點意義也沒有。我今天找你,是
想建議我們兩家公司合作。要嘛,我們不降價,這個案子給你們
。要嘛,你們付我們一百五十萬顧問費還是諮詢費,名目我們可
以再商量,我們找合作的公司開發票給你們;不然就是我們用九
百萬當你們的下包商;再不然就是你們從中間賺一手,這個案子
我們來做。你覺得怎麼樣?
……
與競爭廠商商量好,大家把合約價格拉高之後,就會有可以操作的地方。當然前提是要能夠一網打盡全部進入安全名單中的廠商,以及客戶擁有不做不行的壓力。箇中運用之巧妙,就存乎一心了。
關於如何為專案進行報價,有些人會傾向於採用將工作先進行詳細的切割,將每項工作的人月列出來以後,加上一定的緩衝,再加上一定的毛利,才進行報價。這種成本毛利定價法,已經被新一代的行銷觀念改變了,這也算一種典範轉移(paradigm shift)。也就是說,我們應該針對客戶對於產品價值的認知,而非成本來進行報價,如果客戶對於產品價值毫無概念,那就應該想盡辦法把客戶騙死。如果客戶有三千萬的預算,只報一千萬根本就是一種罪惡,這會降低資本社會財富重分配的速度。
當然,當專案真正要發包時,還會有許多場面話得要交代。也就是說,要從客戶願意支付的價格,來反向推導出運用成本毛利法的各項工作。因為所有的客戶都只想付你每個人工作的工錢,不虛報人月,根本沒賺頭。
客戶的資訊人員通常會要求提供更詳細的專案規劃,例如會要求提供工作說明書(Statement of Work, SOW),還是要求細部的專案時程規劃,總會有還沒有被收買的使用者,會想了解估價的基礎與方法…
這就是專案經理可以發揮效用的地方了。通常他有兩個選擇:
* 依據科學的方法與先前專案統計資料的分析,以數學模型提供一個較
為精確的預測。
* 隨他高興,隨便亂估。
在台灣做專案,關於專案範圍的敘述,通常都十分模糊。要拿著這麼模糊的說明預測未來是不可能的事情。如果能夠精確預測未來的人就會去買股票,當華倫巴菲特第二就好了,不用當專案經理。依據統計,本書讀者剛好可以預測未來的機率應該是趨近於零,所以第一種方法可以不用考慮。
更不用提大部分的公司根本就沒有收集任何專案統計資料,以及要以數學模式預測未來,得要做多少苦工了。
真正的聰明人會採取第二種方法。只是要唬爛,還是得要有唬爛的技巧,以便在被老闆質問時,可以找到一個適當的替死鬼。以下我會針對專案經理在估計的過程裡,常用的流程進行細部的介紹。
(待續)
|