Mar. 24 15:55~17:08
上禮拜(4/20)在北科上「軟體生命週期管理(SLM)」課程的時候,Teddy問了學生一個問題:「請問在物件導向分析與設計(OOAD)課程中所教的需求分析方法,和Teddy在SLM所教的Agile Experience Design(ED)方法有何不同?」按照慣例這種「無俚頭」的問題學生通常一下子反應不過來。
先跟鄉民們解釋一下,北科資工系研究所的OOAD課程使用的教科書是Craig Larman寫的《Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development》。在這本書裡面,分析需求的步驟大概有:
- 寫出問題敘述(problem statement):用一段話來說明準備進行的專案要解決什麼問題。
- 劃出context diagram:畫一張圖來說明準備開發的系統與其有關的其他系統之間的關係。
- 寫出use case:利用problem statement、和領域專家討論、參考相關系統等方法,寫出use case。這些use case就是主要的需求。
***
為了讓學生可以比較OOAD與Agile ED的方法,現在把問題先縮小一下,把兩種方法的不同名詞做一下對應。對應OOAD的方法,problem statement有點類似Teddy教學生的Agile ED裡面的「老闆/客戶一句話的需求」,這一點比較沒爭議。接下來這個問題就比較難了一點:
Teddy在介紹Agile ED的時候提到Alexander的pattern方法,談到「設計是決定context與form的boundary(界線)」。請問Alexander的context和OOAD的context diagram所提到的context,兩者是一樣的東西嗎?
為了鼓勵學生回答,Teddy要求大家要對這個問題表態。全班20幾個學生,只有一個人認為這兩者是一樣的,有些人覺得context diagram是Alexander的form;也有人覺得是form和context的界線(不包含form)或是form界線外面哪一圈;還有人說就是form;最後有人說是form表面的東西。
OOAD所說的context diagram裡面的context,其實就是Alexander所說的context,這兩者的觀念是一樣的。差別在於OOAD的context diagram用方塊圖的方式來表達form(準備開發的系統)和context(和form有關係,但卻不屬於form的其他系統),而Alexander用pattern來表達context和form。
在Agile ED中,Erica和Teddy借用Alexander的框架把context再進一步細分。此時關注的焦點是「體驗設計」,所以原本OOAD的context diagram只分析form與context的關係就不足以支援「體驗設計」。於是Erica和Teddy用People、Environment、Activity這三個元素,從「人在環境中執行某項活動」的體驗觀點來描述context,並從中觀察人在執行活動中所遭遇到的force,來思考form(solution,這裡的solution是體驗設計需求,不是實作層次的那種solution)。
最後,有了體驗設計的solution,就可以產生user story。對應到OOAD,就是use case。
***
Teddy會問這個問題,是因為觀察到資工系的學生對於「找需求」的態度大多屬於OOAD課程所教導的觀念:「如何找到完整的需求」,至於需求是否「好用」,使用者用起來的「感覺」、「體驗」如何,就不是他們關心的重點。
路人甲:我東西都已經做出來了啊不然你是還要怎樣啦!
這也是Teddy在〈你有在體驗嗎?〉所要強調的,光有方法其實不能強迫或保證使用這個方法的人真的有在「動腦筋」,師傅只能領進門,修行還是要靠個人啊。
迷之音:做出form領到22K,加上測試可以領到44K,最後加上UX可以變成88K。
***
友藏內心獨白:一個context各自表述。
沒有留言:
張貼留言