2007年12月19日 星期三

I03 設計常見問題(1)──物件範圍沒有對應

有一種心理測驗是這樣的:在紙張印上一團不規則的黑色區塊,要人說出自己連想到的第一種物品,藉著幾種可能的答案來推測受試者心裡的想法。在設計Data Model時也有點像這樣;每個人都知道要根據Domain設計出系統專用的Data Model,可是同樣是專案的成員設計出來卻風格迥異。

舉個生活上的實例來看。客戶描述他們需要的是“椅子”,藉由椅子可以提供他們靠著坐或可以站在上面拿高處的東西;需求講得很單純,於是A廠商想的椅子是一體成型的木椅(一個Class),B廠商想的是有滾輪與腳座的辦公椅(一個Class內含三個Class)。

當然兩種椅子都能符合客戶“目前的需求”,不過客戶可能視臨時的需要而改變需求的內容;例如:客戶希望椅子是不能推動的,而且椅面距離地面的高度增加五公分等等。我們常去抱怨客戶亂改需求,但我們必須知道客戶大多是根據實際需要來改變小地方的;當然,要求改成按摩椅的類型真的就太過份,因為設計理念已經完全不同,怎麼改都會很淒慘。

回頭看合理的兩個小變更,A廠商的椅子本來就沒有輪子所以不用改(同時也慶幸不是改成加上輪子,不然真不能看),但是高度少的五公分該怎麼辦?要換掉四隻椅腳再釘回去好,還是在椅腳下加釘五公分木條好?要是長度再改變的話該怎麼辦?相對起來廠商B就好辦多了,要不要輪子,要多高的腳座都可以拆卸下來換成符合需求的物件;不過在需求沒改變時就相對地多花了不少功夫。

設計是為了應付未來可能的改變,所以我選擇的是廠商B的作法,儘可能地把一個物件拆成多個可抽換的組件,以期望符合更大規模的變更。使用廠商A的作法雖然比較快,但是一旦面對臨時的改變就會顯現出規格訂死的痛苦。

沒有留言:

張貼留言