家人在南部經營一家「西點麵包店」。用雞蛋、麵粉、奶油、牛奶、砂糖可以做出來的任何東西,我們都會自己做來賣,這包括了蛋糕和布丁。我哥哥大我11歲,是麵包師傅。十多年前的某一天,我正在店內當櫃臺人員幫忙(當時大學放假,忘了是寒假還是暑假),有一個小姐來訂生日蛋糕。

「我要訂一個生日蛋糕,布丁蛋糕」她說。

「幾吋的?」我哥哥問道。

「十二吋的…」

「布丁蛋糕是嗎?」

「對呀!」

「全部都是布丁?」小姐心想,這位師傅的意思大概是「蛋糕內夾許多布丁餡料」,於是她說「好呀!布丁越多越好」。

「整個都是布丁,你確定要這樣的生日蛋糕?」

小姐心想:這個師傅幹嘛一直強調他們的布丁餡料很多,遍布蛋糕內。她堅決地說「沒錯!」

後來確定交貨日期,付了錢之後她就離開了。一直在旁邊聽他們對話的我,這時候忍不住告訴哥哥說:「哥,她說的應該不是一個超級大布丁,而是蛋糕內夾許多布丁碎片。我們在大學慶生時,同學買的也是布丁蛋糕,其實就是一般的鮮奶油蛋糕,夾層裡面有布丁塊。」

「你是囝仔人,不懂啦!」哥哥不屑地怒斥著我。

後來這個超級大布丁的布丁蛋糕交貨時,碰巧我還是在現場。訂貨的小姐沒來,來領貨的是另一個小姐,當她看到我哥哥把「布丁蛋糕」端出來時,她瞠目結舌,這個「布丁蛋糕」完全不是她想像的樣子,從她的眼神,我可以得知,她嚇壞了。

而我哥哥居然還很盡責地在布丁上面用奶油擠了一些花朵,並寫著「生日快樂」。由於布丁表面相當滑溜,所以這些奶油花朵和「生日快樂」字樣一點都不牢固,會漂來漂去。加上布丁的含水量接近百分之百,所以很重。更糟的是,這麼大的布丁,受到重量擠壓,容易出水,流出黃色湯汁。

她必須負責把這個史上最大、重量超重、正在出水、生日快樂字樣漂來漂去的布丁扛回家。她哭喪著臉,費力地端著這個「布丁蛋糕」,緩緩地走出店門口,這樣落寞的背影,我只有在朱自清的「背影」一文中看過。

我不知道他們是怎麼度過這個生日的,我只能想像一群人淚眼婆娑地圍著這個超大布丁,哽咽地唱著生日快樂歌。我想他們應該無法在又軟又滑溜的布丁上面插上蠟燭,有可能是拿保麗龍碗倒過來,插上蠟燭。他們應該無法拿著盤子和叉子來享用這個布丁蛋糕,很可能是拿著碗和湯匙。這樣悲慘的生日,這樣的布丁蛋糕滋味,必定讓他們終生難忘。…光憑想像,我也終生難忘。…不,我們家不是喜憨兒烘焙屋的加盟店,他們才沒這麼遜啦!

這不是虛構的寓言,這是一則真實的故事,這個故事告訴我們,「需求分析」的重要。

不管你是蓋房子、裝潢房屋、建立軟體系統、還是做生日蛋糕,都需要仔細地做需求(requirement)分析。對客戶需求認知的錯誤,會導致最後的產品和客戶的實際需求有很大的落差。

一開始的需求都是由顧客所提供。對於軟體開發而言,如果想具有好的需求分析,可以利用Use Case(使用案例),每個使用案例都詳細描述系統應該做什麼,都具有「單一目的」(但可能有很多種作法)。系統所欲達到的每一個目標,都必須具有「至少一個」使用案例。

當你完成使用案例之後,可以把它去蕪存菁,然後加到「需求清單」中。最終的目的,是要讓需求清單能包含所有使用案例的狀況。需求分析也必須考慮到現實世界的狀況,否則會造成後續實踐時的困難。

訂定完善的需求清單,這不是軟體廠商(或商家)單方面的事,顧客也要積極參與。在廠商與顧客兩方面頻繁溝通之下,認知的誤差才可以降到最低。

為了幫助和顧客溝通,甚至可以建立prototype(雛形系統)。所以建商在銷售預售屋的時候,會做出栩栩如生的大樓模型,甚至電腦動畫。警方想要抓歹徒時,會先請目擊者或受害者口述歹徒的特徵,然後繪製外貌。百貨公司地下美食街的每個攤位,都會請人製作栩栩如生的商品(海鮮麵、定食…)以向顧客展示。這些都可以算是雛形,有助於顧客理解商品最終的樣子。

十多年前,當時布丁蛋糕開始在都市流行,我們家的糕餅店是在鄉下(資訊比較慢),加上沒有進行需求分析,才會發生這樣的慘案。不過,不經一事,不長一智。在這件事發生之後,至少我可以放心,如果有人要訂「巧克力生日蛋糕」,我哥哥是不會做出一大塊史上最大的實心巧克力交給顧客的。

蔡學鏞-專職作家
清華大學資訊工程碩士,曾任華碩集團軟體工程師、元智大學資訊系講師、美商歐萊禮出版社技術編輯、臺灣微軟特約專欄作家。

熱門新聞

Advertisement