寫軟件的眼光看裝修

我那年輕妻子充滿想象力,是個追求完美的人,最近被裝修弄得痛苦不堪(注:我也是)。

她設計了傢俱的顏色,木地板的顏色,客廳的顏色,主臥的顏色,兒童房的顏色,廚房的顏色,洗手間的顏色。她精心將陽臺設計成一個地板爲榻榻米的書房,在大客廳也設計了整整一面牆的書架,讓我的書有安身立命之所。她還設計了4個衣櫃,請一家公司(所謂的櫃子專家)定做了上述的衣櫃、榻榻米和書架。

 

問題就出在這個櫃子專家上。他們做的榻榻米有很大的縫隙,某些衣櫃的顏色也不是那種純白,甚至邊沿的踏板也太高了。她越看越不順眼,甚至問我,能不能重做?

 

重做當然可以,那是和錢過不去。工期也會延誤,爲了裝修我們高價租房,延誤的時間也是錢。

而且,我們又怎麼能保證新做的就能達到理想的效果呢,萬一更糟,又重新做?
(做軟件的你可能會說盡早測試,單元測試,軟件可以,裝修怎麼儘早測試,願行家教我)

 

任何設計,包括我們的軟件設計,其實都會受到限制。一個是資源限制,如資金預算,人力,空間,材料(我們軟件就是電腦內存、網絡帶寬,可獲得的工具等限制)。另外一個是時間的限制,裝修不可能沒完沒了,軟件總有個交付期限。
因爲有限制,我們就要進行取捨折衷,要根據重要程度排優先級,保證最重要的功能(或裝修效果)按時交付,次要功能或修飾性的功能放棄或延遲實現。

 

因此過度設計真成了一個問題:微波爐除了能熱飯,要是能看電視,還能上網、還能打電話那真是太酷了。

 

我們應該感謝限制,要沒有限制我們什麼也幹不了。限制是數學題中的初始條件,沒有初始條件,方程無解。
很多偉大的軟件和工程是在極其困難的條件下誕生的,阿波羅工程的電腦運算速度連我們現在用的計算器都不如,卻把人送上了月球。
Lotus 1-2-3,Dos時代的殺手級軟件,1983誕生,當時的可用內存只有640KB,就是這640K,還要被操作系統視、頻驅動等佔去不少,可用的也就是0.5M,想想現在我們的內存,隨便都有2G、4G吧,是那時候的8000倍。

 

裝修出了問題,就像軟件出了Bug,辦法有兩種,修復它或者徹底重寫,如果有時間,小的軟件模塊也許可以重寫,但裝修卻可能沒辦法立即推倒重來。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章