2007年12月24日 星期一

I08 廚師改行設計程式應是好主意

廚師是利用各式各樣的食材組成佳餚的重要角色,一名出色的廚師必須先知道要做的菜是什麼,還要明白每道食材的意義與可能造成的影響,才能選擇出最適當的食材並參考其影響來制訂出最理想的步驟以完成該道美食。

現在暫時把要做的菜視為需求、把烹煮的流程控管視為Controller、把烹煮的步驟視為Action、食材視為Component,我們可以改寫第一段的最後一個句子:一名出色的廚師必須先知道要做的菜(功能需求)是什麼,還要明白每道食材(Component)的意義與可能造成的影響,才能選擇出最適當的食材(Component)並參考其影響來制訂出最理想的步驟(Controller & Action)以完成該道美食(功能需求)。

在調理的時候,廚師還要視臨場狀況來決定是否增減某種食材或調味料,或者些微調整作法等等,就等同於系統設計時的狀況判斷與例外處理。由以上的觀察可以推知廚師除了重視需求的達成外,還會注意到使用元件的效果與影響,進而研擬出正確的進行步驟與方法;相信對具有程式設計思維的廚師加以基礎的訓練後,可以適用於開發系統的工作。反之,程式設計師也適合去當廚師。

雖然有位同事同樣具有烹調美食的能力,但是如果有人在專案缺人時找一群廚師加以訓練後就開始開發,我絕對不會擔負任何責任的;反之,如果聚會時直接把食譜與食材丟給程式設計師,最後搞到大家沒東西可吃時,我也同樣不會擔負任何責任喔。

沒有留言:

張貼留言