Sept. 20 03:40~04:25
討論pattern內容中。
***
禮拜二(9月18日)晚上,在「模式入門第一堂課:30 分鐘寫出一個模式」課程中,有一個30分鐘的練習,讓每一個小組合作寫出一個pattern。其中有一個小組選擇了以下這個題目:
Context: 在學校實驗室或是辦公大樓中,由於是開放的空間,而且天花板上有著輕鋼架結構,只要環境中有食物、廚餘或垃圾,很容易吸引老鼠。
Problem: 要如何防止老鼠將垃圾撕咬並到處拖曳?
Solution: 撤掉所有工作環境中的個人垃圾桶,統一規定將垃圾丟棄到公共空間的大垃圾桶內。
鄉民們,上面這個pattern有沒有什麼問題?
先姑且不論這個pattern所描述的「問題」是否是一個有意義或是值得探討的問題,當Teddy聽到組員們分享這個pattern的內容時,第一個反應就是:
Teddy:這個solution好像怪怪的耶?
組員:哪裡怪?
Teddy:感覺這個solution好像不太合理,因為即使把個人使用的垃圾桶都撤掉,但是工作環境中還是可能會有員工留在座位上的食物,所以老鼠的問題還是沒有解決。
組員:我們並沒有要解決老鼠的問題啊,我們這個pattern所要解決的問題是「要如何防止老鼠將垃圾撕咬並到處拖曳?」
Teddy:可是如果老鼠的問題不解決,只是讓老鼠「沒有垃圾桶可以咬」,這樣子老鼠還是會繼續住在工作環境中,可能會在你的座位上大小便,這樣子似乎…
討論到這邊組員YA先生突然說話了。
YA先生:Teddy你的意思是不是說,套了這個pattern之後,雖然可以解決我們原本自己設定的「problem」(要如何防止老鼠將垃圾撕咬並到處拖曳),但是「套用之後的Context」(也就是Resulting Context)可能變成了---
Resulting Context:
- 在工作環境中沒有個人垃圾桶,雖然解決老鼠亂咬垃圾的問題,但是可能造成員工因為懶得或是忘記把垃圾拿到公共區域的大垃圾桶,而把垃圾放置在座位上,反而造成環境髒亂。
- 由於老鼠的問題並沒有解決(老鼠還是住在你家啊 ),所以雖然老鼠沒有垃圾可以撕咬,但還是可能會破壞其他的設備,或是在工作環境中大小便,造成環境髒亂。
除非我們可以接受這個Resulting Context,否則套用這個pattern,甚至是這個pattern本身的存在,就沒有意義了,是嗎?
Teddy:Yes,就是這個意思。
***
Teddy之前介紹過一個pattern最重要的六大元素:
- Pattern Name:模式名稱,增加開發者的設計字彙。
- Context:描述問題發生的地形地物。
- Problem:描述問題本身。
- Force:問題的限制或特性。
- Solution:解決問題的方法。
- Resulting Context:套用解決方案之後的結果。
要寫出一個在形式上(格式上)滿足pattern要求,讓它看起來很像pattern的pattern,這是很容易的事情。但是要如何寫出一個「好pattern」,就必須要了解pattern六大元素之間的關係,才能夠去評斷、檢討、改進一個pattern。具備寫作pattern的能力,也就具備了以下這幾種能力:
- 紀錄知識/經驗的方法
- 思考與分析問題的工具,培養觀察與內省的能力
- 判斷解決問題方法的品質
- 溝通與教育的媒介
***
當天上課的投影片重點,Teddy已經發布在http://www.slideshare.net/teddysoft/30-14340071,投影片pdf檔案也可以在「搞笑談軟工Facebook社團」下載。
***
友藏內心獨白:不是還少了Pattern Name和Force ?
沒有留言:
張貼留言