[經驗分享]如何用VS Online及Scrum帶領兩岸三地團隊進行專案開發與管理 - (九) 從Backlog展開Tasks

Task的建立與撰寫

Taskbacklog的子階,一般來說,我讓PO來建立Backlog,由Team MemberScrum Master來展開Backlog建立Task

Backlog代表著是要待完成的功能(任務),而Task則是具體展出來的開發工作。Backlog多半沒有技術的用詞,最好的寫法是以非技術的term來撰寫(stakeholders也能看懂),而Task則是該功能(任務)的拆解開來的具體工作了,所以有一些技術的term並無不可。

PO所撰寫好的Backlogs展開(或拆解)tasks,是在ScrumPlanning Meeting中發生的,所以一開始專案Kick-off前後,可能根本只有Backlogs而沒有tasks
 
還記得嗎? Backlogs中有一個effort欄位,寫的是預估時間。

在台灣,專案成案前,往往必須告訴客戶預估金額和時間,但Tasks都還沒有展開,能算出100%準確的預估時間嗎? 我不認為可能。依照Backlogs所估出的時程也僅僅為估算而已。專案團隊最好不要讓POSales以為這是時程上的『承諾』。

而真正到了專案開始進行,把Backlogs展成Tasks之後,POteam才會慢慢了解(認清)專案的真相,一些被隱藏的工時才會慢慢出現,特別是3-5Sprint之後,就可以清楚的知道自己的預估是否準確,從而進行修正。

也因此,落實到合約的簽訂,如果可以,最好在總時程和總金額尚保留一點空間。(我承認在台灣很難)

在操作的實務上,Sale依舊可以依照過去的報價方式(把預估膨脹個幾倍)來報價,但對於POScrum MasterTeam(甚至客戶)來說,在運行Scrum之後,專案的透明度無疑地提高了。

(關於專案報價與成案問題,可以參考飛機上的27A - 談敏捷開發的成案問題)

如何建立Task


Work分類項目下,你可以看到Backlog Items,請留意當滑鼠移動到下圖Backlog Items的藍色長條圖示右方後,會看到其實右方有一個比較淡色的灰色長條,你可以點選它:




點選之後,會發現該長條變成黃色了,如此一來可以展開Task




 
如果你的Backlog尚未建立任何Task,可能會跟上圖一樣,只看到階層狀(如果有階層的話)Backlogs但你可以按下左方的『+ 』符號,則可以在該Backlogs底下建立一個新的Task


建立Task的畫面與建立Backlogs差不多,除了都可以Assign給特定的Team Member之外,也可以描述Description,一般來說,我讓team members在這裡寫下該工作的規格與進行的狀況(也可以寫在右邊的History),便於開發也便於事後追蹤。
 
由於剩餘工時的欄位內容(數值)會在該task被check in為done時清空為0,因此,如果你想保留每一個Task所花費的工時(實際花費工時),則必須要特別將該數值(實際工時)寫在另一個欄位中(我們是寫在Task的Backlog Priority欄位中,因為該欄位具體用途不大,在Backlog中已經有Priority了)。
 

剩餘時數 與 燃盡圖

 
而effort欄位在Task這邊變成了remaining work(剩餘工時),這個欄位是讓開發人員隨時(一般來說是每天)更新該工作預估還要多少時間才能全部做完。基本上這部分是用來產生燃盡圖(Burndown Chart):
 

從燃盡圖上,PO/PM可以看的出來工作目前進行的狀況(完成度),圖中的黑線是平均理想線(也就是假設在Sprint結束前,工作都會被如期完成),如果圖形顯示出來,顏色區塊是低於黑色直線(像是上圖中的2/8, 2/9),表示工作進行得很順利,甚至可能提早完成,反之,如果顏色區塊都高於黑色直線(像是上圖中的2/14),表示順利如期完成的機會恐怕不高。

當然,燃盡圖要有意義,前提是team member必須天天更新remaining work時數,且數值必須真實。不過需要強調一下,實務上,我們看燃盡圖也只是為了得知專案真實的狀況,並非要壓迫(壓榨)哪一個developer,逼著team在期限內完成工作。

指派工作負責人員


你可以在建立Task的時候就指派該Task的負責人員,但這比較不符合Scrum的精神(後面我們會提原因)。在指派人員的介面操作上,也有兩種不同的方式,例如在底下新增畫面中,選擇Assigned To欄位中的team member:



但用這樣的方式來設定,如果你沒有在一開始建立task的時候就指派負責人,那日後指派時得要把每一個task都Double Click點開,非常辛苦&麻煩,也不方便調整或一次指派多個task。

 因此,有另外一個更好的方式。

 你可以在Sprint當中作tasks的指派,請參考下圖:


當某一個Backlog被分派到某個Sprint當中之後,你可以在左方點選該Sprint的黃色Bar,接著會出現上圖右方的畫面,請注意其中有一個Capacity選項:

你點選之後,可以設置團隊每一位成員的每天可用工時。別忘記設定完成之後要按下 鈕。
接著,請切回Backlog,並且將Work Details要設為On,接著你就可以透過拖曳的方式,將某一個task指派給特定的Member了:




從上圖右下方的圖表中你也可以看的出來,每一位team member的工作量是否爆表,或是還有餘裕可以接收更多的task,工作量爆表的Member會以紅色顯示,而綠色則表示尚有餘裕: 



 
本篇收錄自 - 『敏捷開發專案管理與架構設計實務

留言

這個網誌中的熱門文章

使用 Airtable 在小型需求上取代傳統資料庫

精彩(且驚人)的Semantic Kernel入門範例

使用Semantic Kernel 建立自然語言請假系統

在 LINE Bot 開發中使用Semantic Kernel建立自然語言請假系統

專業的價值...