這個故事的教訓是修正一個1%的問題可能會用掉500%的工夫。這種狀況並不只軟體業會發生。敢這樣講是因為我現在就在管理這些建築工程。上星期我們的包商終於完成Fog Creek新辦公室的最後修飾工程。內容包括在前門安裝閃亮的藍色壓克力,旁邊圍著鋁框,鋁框上每20公分就鑲有一顆螺絲。如果你仔細看照片,會發現每片門都會被鋁框整個包住,當門關起來時,兩片直框會併排在一起。雖然圖上看不出來,不過中間鋁條上的螺絲幾乎但沒有確實對齊。差了大概有2公釐。負責這件事的木匠很小心的測量,不過裝鋁框時門是放在地上,並不是等好門裝好再當場裝的。所以等到要把門裝上去時,才發現螺絲並沒有對齊。
這或許並不罕見;;我們辦公室裡很多門的螺絲都沒有對的很好。問題是當洞鑽好之後,要重新修正的代價貴得離譜。由於正確的螺絲位置離原來的洞只有幾公釐,所以不能直接在門上再鑽一個,可能得把整個門換掉才能解決。這實在是很不值得。這正是另一個修正1%的問題會用掉500%工夫的例子,而且這也解釋了為何這世上很多人造物都是99%好而非100%完美。(不過建築師倒是不斷吹噓,說某些亞歷桑那州的高貴金屋裡每根螺絲都排得很整齊。)
這點出了軟體的一項特性,一項大部份人都視為工匠技藝的特性。當軟體是由真正的工匠製作時,所有螺絲都會對得整整齊齊..當你做些很罕見的事時,應用程式會表現得很聰明。作者會投入更多的工夫去正確處理特的狀況,而不光是讓主要的程式會動。即使要額外再花500%的力氣去處理1%的狀況也在所不惜。
工匠技藝當然是非常昂貴的。唯一負擔得起的方法就是針對大量的客戶開發軟體。很抱歉,不過保險公司開發的內部人事管理程式絕對不可能達到這種工藝的境界,因為就是沒有足夠的使用者來分散額外的成本。不過就套裝軟體公司而言,這種工藝境界可以讓使用者高興並提供長期的競爭優勢,所以我願意花時間並正確地執行。請容忍我吧。
沒有留言:
張貼留言