一次買好、未必挺好

ATI Rage Pro

時間拉回到1997年間。

3D加速卡這東西在那時候剛問世。

當時,我要買一台新電腦,在猶豫著是否該順便買張3D顯示卡。 猶豫的原因,在於當時手邊根本沒有能用到3D功能的遊戲。 甚至那時候根本連DirectX都還沒出現,OS是完全不支援3D顯卡的。 但另一方面呢,則又想說:之後這樣的遊戲一定會出現,3D顯示卡需求也一定會普及的! 既然要買新電腦了,怎麼能不順便考慮日後這些遊戲的支援呢?

想了半天,最後選擇買了一張ATI的顯示卡。 型號是甚麼我是有點不確定,隱約記得好像是Rage Pro。 ATI在網頁上宣稱這款顯示卡日後將可支援Direct X,而且2D功能也很強。 所以看來看去,似乎是完美選擇。 不過呢,在支援3D下,那張卡免不了比當時主流規格多了好些錢。 但當時我的想法是:「既然為了日後的支援性,那多花些錢應該也是值得的!」

十年後再來回顧,當時對於3D會成為主流的判斷是正確的,確實目前每一台電腦的顯示晶片應都能支援3D加速了。 不過很遺憾的是,當時前衛式的決定,最後卻沒讓我得到甚麼好下場就是。


因為當第一款支援DirectX的遊戲出現時,我發現一個殘酷的事實。 這款顯示卡雖然「號稱」支援,但畢竟是DirectX規格確定前的設計。 等實際規格確認且真有遊戲出來時,狀況已經有變化啦。 硬體加速其實不全面,遊戲雖是可以跑,但performance實在很差,幾乎等於是跳格在跑,完全無法玩。 後來Voodoo陣營的Glide規格反變成主流。 為了要「真正能」玩3D遊戲,我後來又多花了幾乎原本那張卡一半的錢再去買了張Voodoo卡。

後來算了算。 要是一開始我只買張主流的2D顯卡,之後再加買一張Voodoo,花的錢其實跟直接衝Rage Pro的總開支將是一樣的。

你說廠商騙我嗎? 其實ATI沒騙我,因為3D遊戲確實可跑,只是一開始DirectX不成熟,硬體加速後遊戲也跑不動。 加上市場後來並不看好微軟的DirectX,而是讓Voodoo竄紅,造成後續遊戲都先支援Voodoo。 不過這些都是後見之明,沒發生之前誰會知道呢? 所以恐怕也不能完全怪廠商;真要怪,也只能怪自己買的太急太早。


後來幾次經驗下,我開始在電腦採購上發現一件事情:「也就是硬體這類東西啊,其實只要買目前主流規格或最多比目前主流規格稍微好一點點就好」。 去想「之後或許會怎麼」、或是「將來搞不好需要甚麼功能」,其實全都是庸人自擾。

那些想法除了讓自己墊高採購成本外,幾乎沒有好處。 因為等好不容易熬到能用上那硬體時,往往會愕然發現當時的主流規格其實更便宜,支援的更完整。 在情勢未明前買的,常常最後都是浪費。 (若沒能跟上3D顯示卡剛發售時代的朋友,也可以想像一下如平板電腦VS iPad、電漿電視、或是3D電視都是上演著類似的情境。)

不過,我要談的倒不是電腦硬體採購。 而是類似心態與狀況在專案上也常常發生。 很多時候大家會認為:「既然我們現在要花錢,那若我們把日後可能的用途都考慮進去,一次到位才能避免浪費。」 但這心理其實不一定是對的。 很多時候,人們為了這樣的執著,常常會把一個小專案中加入過多的附加要素。 不可收拾下,最後可能花費更巨,甚至兩頭不著。

我想說的是 : 在情勢未明下的過度投資,很多時候都是不完全值得的。

天下沒有白吃的午餐,「順便」這檔事情很多時候是不成立的。 當需求(期望價值)越過某個「臨界點」之後,成本有時候將以指數性的狀態增加。 買還不是主流的電腦硬體就是很好的例子,當過某個臨界點後,效能的提升跟付出的成本將不成正比。 如果畫成圖形示意,很可能像這樣 :

不呈線性的成本與價值關係圖

專案也是如此,「未來擴充性」若想得太過頭,很容易會掉入這陷阱。 就如前面我買3D顯示卡的例子一樣,很可能將來情勢變動下,多做(多買)的東西根本用不到。 卻可能因為這些增加,立刻得面對案子執行上技術難度增加、風險提高、成本爆量、與時間拉長等議題。

最常碰到的,是軟體開發的案子。 平常不太會未雨綢繆的人,在軟體開發時突然都會變得想的超遠。 比方說:「雖然某某事情目前我們是這樣做的,但是總覺得之後很可能會有這一百種變形。 所以,這些是否能都保留進去呢? 讓系統彈性大一些吧!」

我手邊一下找不到因為「彈性考量」造成成本增加的真實數據,但根據「人月神話」這本書的描述:一個用來解決單一問題的程式若成本是1,一旦要把它變成富有彈性的軟體產品時(由左上角往下移動)時,成本很可能將是原本的3倍。

人月神話 程式系統產品的演進

(上圖,人月神話第一章。 Sorry手邊一下只有簡體版的圖)

為何會有這麼大的差異呢? 單純加些彈性,成本不是只該多個5%-10%吧?怎麼會直接爆量3倍呢? 這是因為一個解決單純問題的程式可以把參數寫死,可以不考慮不同硬體或是User習慣的支援。 可是若要考慮「未來擴張」或「未來彈性」時,要考慮的變數就多、文件多、測試也繁瑣、考慮與其他系統橋接、可能還要考慮相容性以及使用者介面的設計。 最後將不是只多做一點點事情,而是要做很多事情。

如果日後真的確定要擴充或是大量使用(甚至販賣),那一次多投3倍或許還無可厚非。 但很多時候「未來」其實跟我當年買電腦的狀況一樣,只是個模糊的期待,那這投資通常就是該好好斟酌的了。 甚至有時候呢,若等到日後需求明確時整個重寫,成本搞不好都還比一次到位低得多。


前段時間,剛好有個朋友跟我聊他案子上的困境,也是一樣的故事。 他目前要做個POC (Proof of Concept)的案子。 可是他老闆卻交代說:「既然我們都花錢做POC了,那最好要讓結果能直接用在後面階段上」。 這不也明擺著是個表面上是從想節省成本,但最後卻必然增加成本的矛盾需求嗎~

為何我會說矛盾?

因為既然要做POC,表示目前方案的可行性是大有疑問的,有很高的可能性最後根本不實用或不能用。 就是因為有這樣的風險,所以「才要在最小成本下先測試一次。」 這是POC的原意,不是嗎?

但若又要POC,卻又堅持POC的結果得在後面能直接套用,可不就表示POC不但非成不可,而且還要讓結果夠成熟。 多了這「附帶要求」後,原本簡單的方法恐怕就將不能用了,因為簡單證明方法,通常無法把結果直接拿來後面使用。 於是呢,要不是POC的時間會拉很長,要不是投入的工作會增加很多。

但最後真的會用上嗎? 這就又是弔詭的問題了。 因為後面有太高的不確定性,之後真開案時搞不好規格又改,這些也根本用不上。 那這投資不是很不合算嗎? 徒然只是增加POC的複雜度,提升出錯的機率,造成團隊混亂,並肯定的墊高整個開發成本。


所以我這篇是要告訴大家不要未雨綢繆嗎? 那倒也不是。 做事情都不未雨綢繆,這絕對是不對的;但想太遠、過分在意「能重複使用」、「充滿彈性」、「支援未來」、「順便多加這個那個」、「甚至要百年可用」也未必就一定健康。

對未來不確定時,比目標稍微多一點點的彈性,很可能是成本最穩當的解答。

找到下圖的平衡點才是真正有價值的:

臨界點

超過這個點的彈性,常常是不具意義的。 這不管是在買電腦,或是做專案都是一樣的。 除非我們很確定目標,不然在太多不確定下想一次衝到好、可未必真的是好事喔。

 

若有轉貼需求,請來信討論。 轉貼時禁止修改內容及標題、須保持所有連結、禁止商業使用,並且必須註明原文標題、連結、及作者訊息。
覺得這篇文章好嗎? 請分享給您的朋友
歡迎「讚」一下我們的粉絲專頁,接收最新文章!
張國洋 Joe Chang

現為識博管理顧問執行長,也在台灣百大上市櫃公司擔任管理講師與專案顧問。歷年客戶包含工研院、台積電、廣達、富智康、光寶集團、台灣大哥大、遠傳電信、中鼎工程、建國工程、台橡公司、大同公司、三陽工業、TVBS、特力屋集團、城邦集團、誠品集團等。 為了對抗雙魚座的感性,一直在努力強化理性思維與邏輯思考。 相信邏輯發展能解構任何事物,並讓我們找到合宜的人生策略與方向。

Joe G+ ICON Joe LInkin ICON

5 則讀友回應

  1. freefishc88 2011-09-27 11:03:54 第 5 則

    嘿!嘿!我就是那個Playing God的PM,
    那時剛從Software Engineer升PM,
    一個新手PM,求好心切, Paying God 後果...一場灾難
    所以現在在做計劃時,總會做"Playing God"的檢查

    • Joe Chang 2011-09-27 17:22:12

      這是個不錯的方法
      我自己還有個更極端的方法
      就是當自己做出一個計畫後
      假裝自己變成自己的敵人,從裏頭找出一個可以整整這個計畫作者的漏洞
      當你把自己抽離成敵人時
      你往往會發現更多原始計劃的問題 :D

  2. freefishc88 2011-09-26 16:34:21 第 4 則

    當PM準備計劃時,實際上是在預測要做的工作,但這預測的工作是可實施,也可以實現的,但是如果預測未來太超過,PM想要"Playing God"時,風險將會太太的提高.

    第一次在這裡寫東西,請多多指教...

    • Joe Chang 2011-09-26 21:21:34

      不過我是很少碰過有PM自己想playing god
      大部分是別人想,但PM沒意識到或是沒阻止
      然後悲劇就發生了 XD

  3. Brenda Chiu 2011-06-02 13:29:39 第 3 則

    我個人一直覺得,
    能夠找出原文中指出的臨界點、
    能夠很快將概念實作並快速推廣出去的
    將是未來市場上的明星產品/企業
    那代表的並不是深入研發不重要
    而是,越快能把概念實際化,越能快速佔領市場
    深入研發,則是市場持續佔有、並且創造別人難以進入門檻的絕招!

    我喜歡的比喻是,打怪不會最先把絕招盡出囉~

    最近接觸了Kincet這樣的遊戲週邊
    回憶起多年前,wii推出時的那種狂潮,孰勝孰敗呢?
    我沒有研究這兩個發明各別為兩家公司帶來多少收益
    但科技業的喜(or悲),就是不斷求新求變吧~

    p.s.冒昧問一下,Prove of Concept = Proof of Concept?

    • Joe Chang 2011-06-02 14:06:48

      深入研發當然重要
      我的意思並非說深入研發不重要
      而是要知道自己的目標是甚麼,而非盲目得甚麼都要兼顧

      你糾正的沒錯 應該是Proof of concept才是 :P

  4. Jill(吉兒) 2011-05-27 11:14:24 第 2 則

    最近公司的事,剛好遇到一樣的情況!
    因最近跟我的上司想做一個產品,原因就出在要採用那顆IC,以我們兩個人目前所規劃的功能,新舊IC都做的到,但因舊IC還有庫存,所以在提出時,就有人說要用舊IC,但因舊IC上的OS已很久沒維護,要做到目前新IC的基本功能,就需要再花3個月的時間(還不含封裝製程),這還不包括我們新規劃的部分。有可能會碰到想消耗庫存但遇上市場時機問題…
    之前是建議大老闆,先用新IC做sample,待日後有量之後,再看要不要花時間改OS用舊IC,不過,大老闆現在還未同意。
    另外,OS一直覺得我們不能提出"完整"的功能規劃,所以OS一直要我們全都規劃完了(包含細部)再來改寫,不過,因客戶的需求一定會改變,市場也會改變,我認為SAMPLE只需規劃基礎的請他們進行,爾後再看市場和客戶需求狀況再調整。
    講了很多次說不可能一次做到好,但也許立場不同,執行單位不願意一改再改,這方面就必須還要再教育了!

    • Joe Chang 2011-05-27 13:21:42

      這也是我跟Bryan常常會寫說"交換"跟"目標"的議題
      大部分人不願意,也不能夠訂出"最優先目標"是甚麼
      大多幻想著我最好甚麼都能要
      又達成目標、又賺錢、又消耗庫存、又便宜、而且還很有彈性

      當然,誰不希望這樣呢?
      但若沒有一個很明確的目標在那裏
      一旦卡住時,大家就爭論不休並無法前進了

      就拿你的例子來說
      如果大家清楚知道這案子消耗庫存最重要
      那有辦法處理
      如果要搶市場最重要,那也有辦法處理
      最怕的是團隊各執一詞,那就傷腦筋了

  5. Jemmy 2011-05-26 20:26:49 第 1 則

    哈!跟現在我想採購Android demo用平板很像,Google號稱未來手機版本2.x和平板版本的3.0未來會於3.1匯整,但何時釋出?號稱在下半年,就算釋出了,3.0問題不少,能在3.1一次獲得解決也很難講。可是開發還是要進行,測試也是要設備,「在情勢未明下的過度投資,很多時候都是不完全值得的。」但有時不得不投資。甚至要採購市面上主流機種進行測試,才能個別了解app在那一款的機器會有什麼問題>“<

    • Joe Chang 2011-05-27 13:17:19

      你是要開發要賺錢,那這當然無可厚非
      如果是為了自用,而且還買個規格很高幻想之後版本都能支援或跑得動
      那可能就該三思而後行了....