網路城邦
上一篇 回創作列表 下一篇   字體:
我們要的是解釋!不是解法!
2011/02/19 06:10:36瀏覽466|回應0|推薦0

"We want explanation, not solution!"

如果出現問題的時候,你要的是解釋?還是解法?

小軟體公司跟大公司合作時,最怕碰上產品測試,尤其是大規模的壓力測試(large-scale stress test)。

我們的軟體在市場已經被操了十年以上了,大大小小、稀奇古怪、匪夷所思的使用狀況碰見太多了,真的是在日光之下無鮮事。既然有世界級的超大公司居然找上門來下戰帖,我就想了想,好吧!就接受挑戰唄!(最近忙到無法寫作,這也是原因之一。)

我是個不會輕易上舞台表演的人,因為我看過太多太多創業家,一逮到演出機會就拼死拼活上台賣力演出,結果被噓下台的例子,所以過去十年來,我一直對外宣稱我們的系統只能承受同時500人的線上會議(online meeting),因此有些超大案子,我連碰都不敢碰。另外,也有許許多多的合作案,聽起來真的是氣勢磅礡,我卻擔心成功之後帶來的人潮可能會壓垮我們的系統,如此的多慮往往得罪合作夥伴。我猜想,過去這十多年來,應該有些大咖心裡對我嘀咕過:給機會上台還不要,真是不知好歹!

事實上,任何軟體的壓力測試都牽扯到硬體與網路,例如硬體的CPU速度夠不夠快啦?記憶體(memory)夠不夠多啦?網路的頻寬夠夠不夠大啦?另外,選定的作業系統OS的效能管理如何?(譬如說,有些OS會因為軟體跑得太過火了,就會停止軟體的運作,也就是把它給殺了的意思。) 這些因素都會直接影響壓力測試的結果。當然啦,不同的壓力測試的方式也會造成不同的結果。所以,一但出了問題,不是隨隨便便就可以斷定是哪個環節出了問題。可是...硬體、網路、作業系統這三個大咖一定先將問題丟給軟體小弟,壓力測試的方式更是不能被挑戰。到後來,所有的責任必定落在最弱的一環,就是所謂的weakest link,而小軟體公司就是理所當然的weakest link。

Why? 因為軟體是"軟"的,也因此最能逆來順受,說改就改,即使是硬體、網路、作業系統的問題,軟體就是得避重就輕、像個小媳婦般地遶道而行。像這樣缺乏立場跟原則的妥協解法,雖然我是無法接受,可是只要能找到一丁點的理由可以讓我們的軟體活得更強壯,就算只是一點點,我也只好認了,改就改唄!可是,我心裡真的覺得對不起我們家的軟體,就好像是在健康的人身上動手術一般地心裡歉疚。所以,我不喜歡讓我們家的軟體接受大型的演出邀約,除非我們能夠保護它,不讓它被任意地打成weakest link。

這次敢接受世界級超大公司的戰帖,是因為我對我們的系統有信心,畢竟已經在江湖上打滾十載,這應該就是所謂「十載磨劍,一朝出鞘」的決心吧!

結果........出狀況了!我們的系統掛了!

細節我就不詳述了,我只想說,從測試單位送過來的報告就超過500 MB,光是打開檔案就夠慢了,更何況要在24小時內從相當於五億個字的資料裡來找出疑點!就算我們用線上會議來跟海外的測試單位了解過程的細節,說實在地,我們很難在當下確認問題發生的原因。所以只好憑藉我們對自家軟體的熟悉,用想像的方式來模擬種種的可能,然後提出可能的解法來嘗試看看。我們就用這樣的方式趕緊在24小時內完成報告。

結果........出狀況了!我們的報告被退回了!

細節我就不詳述了,我只想說,大公司要的是按部就班的報告:有幾分證據就說幾分的話。並且要有系統性以及全面性的過濾與排除,找出所有原因之後再徹底提出問題的解決方法,直到解決方法被徹底地檢視之後,才可以被執行,如此方能保證問題是被解決了!嘿... ...聽起來很對喔!這種話我以前在股票上市公司當主管的時候,也都經常掛在嘴上,標準的八股思考方式。這樣的解決方式,可不是放諸四海皆準的喲!也有可能是非常推卸責任或於事無補的做法喲!

這幾年來,每次遇到問題,我的工程師都會先找解法,如果測了不行,那就再找另外一個解法,這就是 trial and error 的方式。就大公司的主管看來,這簡直是亂槍打鳥。即使當下的問題被解決了,也許只解決了部分的問題,甚至會引起別的問題也說不定!因為他們認為trial and error 的解法,缺乏系統思考。問題是:當軟體系統一直處於在更新、改善的狀態之下的時候,這時候就很難有系統思考,因為必須馬上做決定,時間是不能浪費的,因為小公司的生存法則就是創新求變。

這讓我想起台灣跟美國的急診差異。如果遇到緊急病患,台灣的診所醫生多半會憑經驗立即醫治,但美國的醫生被醫療糾紛告怕了,非得拿到檢驗報告之後,才為有幾分證據就做幾分的醫治。如果你是病患,請問你要先看報告?還是先被醫治?我想大部分人的回答一定是:看狀況。這是很安全的回答,但是 ... 缺乏個性。

因為我們對我們家的軟體太熟了,幾乎到了觀微知一的境界,所以我們知道的解法極有可能是最好的解法。可是測試單位送過來的報告,內容有限,想根據它來提出解法,真的是強人所難,除非我們要他們提出更具體的報告,問題是,所謂更具體的報告往往曠日費時,有時候甚至不知道甚麼才是更具體的報告。

當我們提出的解法缺乏事實的根據時,大公司的主管是很難認同滴,所以才會大聲地教訓我們說:

我們要的是解釋!不是解法!(We want explanation, not solution!)

這讓我想起有關愛因斯坦的一個笑話。愛因斯坦在研究報告上寫下 E=MC^2 之後,被老師打了個大鴨蛋,老師還寫下評語:

Albert,這公式看起來不錯,但缺乏根據以及證明。



( 知識學習商業管理 )
回應 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=franktmc&aid=4900428