l

2012年7月24日 星期二

Scrum框架下的跨界開發(6):UX設計師是屬於哪一國的?

July 23 20:31~21:38

螢幕快照 2012-07-23 下午8.44.59

 

昨天談到「PO(Product Owner)與UX設計師在sprint N-1的時候,一起合作將sprint N所需要的story與操作流程先設計出來,然後在sprint N時,UX設計師一方面協助開發人員把story實做出來,另一方面繼續與PO開發sprint N+1的story內容。」這樣講可能太抽象了,舉個例子,請參考上圖。假設在專案剛開始時,團隊採用sprint 0的策略來啟動這個專案(請參考《Iteration 0 要幹麼?》這一篇),此時PO與UX設計師專注撰寫與設計sprint 1所準備開發的story的內容與操作流程。而Developer則是準備日後的開發環境,例如設定版本控管系統、持續整合系統、安裝開發與測試環境等。

當正式進入sprint 1之後,由於PO與UX設計師已經將這個sprint所準備實作的story的內容準備得很充分了,例如包含story的敘述、如何驗收每一個story、story的操作流程、甚至於畫面的prototype都畫好了。因此,在sprint planning meeting的時候,Developer便可比較容易的來估算story point以及每一個task所需的工時。在sprint進行時,PO與UX協助Developer完成該sprint的story。例如,如果Developer對於需求不清楚,或是對於原先UX設計師所設計的介面與操作流程有實作上的疑慮,隨時都可請求PO與UX設計師的協助。在此同時,當PO與UX設計時有空的時候,便一起規劃sprint 2的story。

***

上面的例子應該說明的夠清楚了,所以理論上看到這邊鄉民們應該要問一個問題,那就是:UX設計師的工時要如何分配?如果鄉民們有看過《如何估算 story point?》這一篇,應該會知道Teddy建議以5小時來估算每位Developer每天可真正投入工作的時間。所以假設團隊有6位Developer,採取兩週長度的sprint,則每個sprint實際可工作的時間為:

6 (人)* 5 (小時)* 8 (天,扣掉第一天sprint planning meeting與最後一天sprint review與retrospective meeting)= 240(小時)

現在假設把1個UX設計師放到團隊中,請問該團隊每個sprint有多少工時可用?

方法一:將UX設計師視為開發人員

很簡單啊,團隊增加了一個人,因此。

7(人)* 5 (小時)* 8 (天)= 280(小時)

但是,這個方法有一個問題,那就是UX設計師的工作,在每個sprint當中其實被分成兩個track(軌道),其中一個track是協助PO開發下一個sprint的story,另一個track是協助開發人員完成當下這個sprint的story。換句話說,UX設計師的責任,從這個角度看起來,是比較類似PO的角色,或是說UX設計師是PO的小幫手或是智囊團。請問一下鄉民,PO的時間用來做什麼,在Scrum有規範嗎?答案是:沒有。事實上sprint planning meeting只計算Developer的時間來決定這個sprint可以做多少事,至於PO與Scrum Master的時間是沒有規範的。所以,如果把UX設計師看成是PO「這一國的人」,那麼用這種方法就不是那麼合適。

但是,對於某些團隊,UX設計師可能同時還需要扮演「實作使用者介面」的工作,因此,UX設計師同時也是Developer。此時,還是可以將UX設計師所能投入的開發時間計算到Developer的工時當中,但是考量到UX設計師還要擔負開發下個sprint的story工作,因此可以只將UX設計師的一定比例的工時(例如50%)算入開發團隊的時間。

6(人)* 5 (小時)* 8 (天)+ 1(人)* 2.5 (小時)* 8 (天) = 260(小時)

方法二:將UX設計師視為PO團隊

每個Scrum專案都必須要有一位PO,但是並沒有規定PO不能有小幫手來幫忙一起開發需求。Teddy剛剛已經提到,如果將UX設計師視為PO團隊的一員,就不應該將UX設計師的工時計算到Developer的工時之中。往好的方面想,Developer獲得自於UX設計師的「undocumented work hours」協助(從天而降多出來的工時XD),無形之中可以將工作做得更快。

***

看到這裡鄉民們又要問:那方法一跟方法二哪一種比較好?這個答案要依據團隊特性來決定。如果開發人員裡面具備有能力可以將UX設計師所設計的使用者介面或操作流程實做出來的人,那麼讓UX設計師與PO專心去耕耘story也許對整個專案與團隊是比較好的做法。但是如果開發人員中就是缺少實作使用者介面的人才,那麼可能還是需要仰賴UX設計師參與開發活動(前提是UX設計師也必須要有能力可以參與開發活動,因為並不是所有的UX設計師都具備實作使用者介面的能力XD)。

講了這麼多,結論還是回歸到Scrum的cross-functional team的精神。無論是上述的方法一或是方法二,UX設計師必須都是Scrum團隊的一員,如此看起來才符合「敏捷跨界開發」的精神。

***

友藏內心獨白:對於跨界開發有沒有一種越來越清楚的感覺呢?

沒有留言:

張貼留言