對軟體專案的形容
January 5th, 2005
最近和鄰居吃飯,他們夫婦都是藥師,我試著用一個比喻向他們解釋為何寫一個大的軟體是很困難的事情,以下是我說的比喻。
做一套很大的軟體,就好像在一塊像道奇棒球場那麼大的畫布上做畫。你只有三個月的時間,五個畫家,而且不可能有詳細的藍圖。為何不可能?因為你畫的畫要不就是為某人量身訂做的 (如某個有錢大闊佬要你把他肥胖臃腫噁心的尊容畫成玉樹臨風少女殺手級的肖像),要不就是得畫一張公開展示的作品,在掛出來的那一天才能知道大眾對它的評語是「哇!」還是「去~~」
也許有人會說三個月太誇張了,通常不是都有長一點的時間嗎?別忘了,師程工必須花至少三個月的時間等待英明的上級定出方向,用比較專業的詞來形容的話這就叫「策略規畫」。某些廢柴花了九個月的時間做「規畫」,接下來還很寬容地留下三個月的時間讓師程工們寫程式、測試加包裝。嘿,您瞧,產品週期一年,不賴嘛 …
Ok 冷靜冷靜,趕快拉回比喻裡。為了要讓這幅畫看起來對勁,這五個畫家就必須達成某種程度上的和諧,如此一來當觀眾看到這幅畫時他們才知道這是「一」幅畫而不是五幅。當然,五個畫家也必須對整體畫面的結構心裡有個底,畫出來的作品才能看。
現在有三個大問題來了。
問題一:某些畫家根本不配稱為畫家,他們除了吃喝玩樂吹牛拍馬在行之外,本職學能一塌糊塗,這種人來畫簡直是個災難。
問題二:天才畫家不爽遵守規則,要知道他們的座右銘 — 規則就是用來打破的。
*問題三:(這問題太黯然太銷魂了所以必須打個星號以示對星爺的尊重) 除了畫家之外,還有一群專職「管理」這五個畫家的經理。為了維持人類社會的安定,每三個畫家至少要配兩個或兩個以上的經理才行。眾所周知的是,「為了這幅畫好」,這些經理對於畫裡頭的光線明暗、線條顏色這些東西是非常挑剔的,畫家們最好乖乖地聽從經理的意見來畫,否則就等著被炒魷魚吧!然後呢,經理們的強烈意見可能是來自專業的眼光,也可能只是胡搞瞎掰政治至上的和稀泥。但是,若有一位英明神武的大老闆發現這幅畫的某一塊地方的光線明暗或線條顏色不對,我敢向您打包票九成九九的機會是畫這個部份的畫家被開除,不管這是不是他的錯。
在聽完這個比喻之後,我的鄰居們深深地體會到原來藥局是個十分良好的工作場所,他們也非常地慶幸他們當初沒有填錯志願選擇軟體產業。