蛋糕這種食物,在物質條件如此富裕的寶島台灣,相信沒吃過的人應該很少。就算沒吃過,也應該看過,如果沒看過,請到 8X度C 的櫥窗看一下。
假設鄉民們買了一個生日蛋糕,除非你是買來砸人的,否則吃之前應該都要先切一下蛋糕。蛋糕有兩種切法,水平切法與垂直切法。一般正常人類,採用的是垂直切法,所以切出來的每塊蛋糕,包含了整個蛋糕的每一層,一口咬下去,可以吃到最上層的鮮奶油,第二層的香草或巧克力夾層,第三層的布丁,第四層的水果...依此類推,真是太好吃了。
至於打從火星來的鄉民們,則是採用水平切法,切出來每塊蛋糕,就只包含某一層的餡料。一口咬下去,噁...吃到滿口的鮮奶油,或是布丁,水果...。這算是在吃蛋糕嗎,還是在吃 N 種不同的食物?
******************************************
軟體開發活動中的需求撰寫,無論是寫成 use cases,scenarios,或是 stories,認真一點的鄉民們,應該還記得教科書上一定會提到,要寫成 end-to-end [use cases, scenarios, stories]。想當年 Teddy 在當 OOAD 助教的時候,也不時提醒學生們:『你這個 use case 不是 end-to-end』不過說真的,在當下聽進去的人可能不多。
寫出非 end-to-end [use cases, scenarios, stories],就好像切蛋糕沒切好,吃的人(你的客戶)可能吃到整片的鮮奶油。你告訴他,這就是蛋糕...不可分割的一部分,先把這個啃掉,下次給你蛋糕的另外一層....N 個月後你就可以獲得一塊完整的蛋糕了。
所以,為了讓客戶在你切下每塊蛋糕的同時,就可以立即享用,你應該把一大塊蛋糕(某個需求),垂直切成很多塊的小蛋糕(很多較小的 stories)。每切完一塊蛋糕(每做完一個 story),客戶都可以吃到一整塊的蛋糕(得到一個對客位而言有價值的功能)。吃到一整塊蛋糕,即使很小一片,還是有算吃到蛋糕。吃到一整塊鮮奶油,即使很大一片,還是很噁...不算吃到蛋糕。
如果以後還有人問你:什麼是 end-to-end [use cases, scenarios, stories],如果是好朋友,就買塊蛋糕請他吃,如果是路人甲,就請他自己去看一下8X度C 的櫥窗。
沒有留言:
張貼留言