Scrum - 快速上手

30 November 2011 — Written by Sky Chang
#Scrum#TFS

因為小弟無論是TFS或是Team Foundation Service都是使用Scrum為基礎,所以會有非常多的相關名詞,為了讓看文章的人不會糊煞煞,所以這篇初略的介紹一下Scrum,當然Scrum也是很精深的,所以如果有興趣的人可以更深入的了解,網路上有很多資源可以去探索。

這篇主要偏向介紹整個Scrum的生命週期,也希望能帶給大家一個快速的認知。

以下是Scrum的流程圖,下面會開始針對此圖來做說明。

image

Product backlog

通常一個專案裡面,會有許多的Product backlog,Product backlog你可以想像成是客戶、老闆、主管的需求,基本上Product backlog會用需求者看得懂的語言,例如說:學習Team Foundation Service、使用者可以透過Study4網站來報名活動、能讓使用者選擇座位之類的…此外每個Product backlog所需要的開發時間,由團隊成員來訂定。

image

Sprint

通常需求者是很有想像力的,所以討論下來後,就會有一堆的Product backlog了,而且他們都認為可以在最短的時間內把這些事情做完;但實際上這是不太可能的事情,所以接下來我們要探討的名詞就是Sprint,也就是衝刺的意思;Scrum一詞是來自於橄欖球的術語,而Sprint的意思就是要在這段時間內,衝刺到某個地方 ( 橄欖球只要衝到對方陣地,就算得分,有興趣的可以去看光速蒙面俠21 XDD ),所以依據此開發法的角度來說,就是請需求者去判斷,到底哪一個功能比較重要,然後排入這次的Sprint階段( 排進去的Product backlog稱為Sprint backlog ),也因為Product backlog的時間是開發團隊訂定,而功能優先順序由需求者訂定,所以相對的,也代表要為各自的承諾負責;所以開發團隊也要在Sprint時間裡面內,來衝刺完成,通常Sprint的時間是兩到四週,下圖代表著需求者提出了一堆的Product backlog。

image

Sprint backlog & Task

前面說到每一個Product backlog都是需求者提出來的需求,而實際有排入這次Sprint的就稱為Sprint backlog,而進入Sprint的Sprint backlog我們會將之細分,也就是Sprint task ( 簡稱 Task )Task的意思是指開發團隊實際上要做的事情,假設以前面的使用者可以透過Study4網站來報名活動這個Product backlog來看,如果排入進Sprint,我們就會細分,建立資料表、報名程式邏輯、驗證功能、測試程式等等等Task,來讓開發團隊的每個人認領,所以一個Sprint backlog裡面會有許多的Task,而每個Task的時間場短約為4到16個小時,但實際上Scrum的文檔建議,如果超過12個小時,就拆成兩個Task;下圖代表著被排入進來的Srpint backlog和Task。

image

而每次兩到四週的Sprint時間裡,每天都會有個Team的回顧與確認。

image

最後,4週到了以後,就會進行第一次的交付。

image

接下來,就繼續挑選下次要做的東西,然後進入下一次的循環。

這樣就是一個Scrum的生命週期,其實Scrum就是敏捷( Agile )的一種,其他的還有類似XP ( 極致編成 )等等之類的,敏捷開發法能很快地去回饋需求者所要的,並且即時修正,也是目前非常流行的一種開發方式,而非以前那種全部都談完,然後拚老命去寫,寫完再給客戶看,然後客戶很生氣的和你說,不對,完全不是這樣!!的情形。

當然,看完這些,並不是代表Scrum就已經學透了,這些只是Scrum的初略介紹而已,如果大家有興趣,也可以去參考一些書籍喔。

參考資料

Sky & Study4.TW