2014年6月26日 星期四

[經驗分享]如何用VS Online及Scrum帶領兩岸三地團隊進行專案開發與管理 - (四) 開始使用VS Online與Scrum Template

請留意這篇文章是我配合2014年六月底的研討會所撰寫的連續幾篇關於介紹如何透過VS Online以Scrum方式帶領專案團隊進行開發的其中一篇(其餘的會陸續發表),因此並不完整,閱讀時請務必參考相關的VS Online標籤以閱讀更完整的前後文。
 
隨著專案的kick-off,我們會正式讓整個team開始使用VS online進行所有的工作與控管。
我大致說明一下我們在kick-off的前後所進行的工作。

(請讀者再次留意,我所分享的是我們自己在實務上的經驗和處理方式,所以不要留言來問我怎麼沒有依照某本書上說的Scrum方式來進行,因為我說過了,實務上我們必須依專案依團隊因時制宜,但你可以留言問我為何選擇這麼做而非那麼做,這部分則是很有討論和交換意見的價值)

首先,PO(Product Owner)是整個專案的負責人,我讓PO選擇自己的SM(Scrum Master),並且讓PO和SM選擇自己的team member。理由很簡單,PO負責案子的成敗,因此PO當然有人事權,PO和SM可以選擇自己喜歡的team member,身分就如同教練和領隊一樣。要打好球賽,有時候選擇的球員並非是能力高超的,而是跟我有默契的,或是配合度高的。有時候能力超強的高手,並不一定會是個好合作的team member。

因此,我讓 PO/SM決定自己要的球員是誰,而最後不論結果如何,PO都負責整個案子的成敗。畢竟,人是你選的,失敗了也不用有太多藉口。

順帶一題,有沒有一個team member太受歡迎必須同時軋很多team的情況? 有,如果是這樣,由PO自己決定接不接受,接受了,就必須承擔風險。有沒有team member找不到歸宿,沒有PO選他??? 也有...這表示...如果有天真要裁員,你大概知道可以從誰下手了。

OK,團隊成員決定後,我讓SM在VS Online開立一個Project。
如果你完全不曾使用過VS Online,你必須先建立一個VS Online站台,細節請參考這邊

VS Online站台建立好之後,你可以在上面建立無數個專案,建立一個專案的動作也請參考上述的文章,請注意在選專案類型時,請選擇Scrum Template(因為我們的專案整個走Scrum架構):

可以成功進入專案首頁之後,第一步,你必須做幾件事情,分別是:
  • 添加專案的成員(Developers、PM、PO、SM...etc)
  • 安排與設定專案的Iterations
  • 安排與設定專案的Team或Area
上述的每一個動作都有著各自的重要意義。底下分別說明如下,並且說明如何實際操作。

Step 1. 添加專案成員
  • 由於未來我們的Source code control、Work Items整個都在VS Online當中,包含bug tracking、document、unit test...等全都透過VS Online。因此,理論上所有與開發相關的人員,都必須添加進去成為專案的Member,我們可以提供這些人員basic類型的帳號。
  • 對於PO(PM)/SM,我則會建立Advanced類型的帳號。主要的原因是PO/SM必須要檢視Features,針對Stackholders傳送Feedback Request,查看各樣的圖表案工作項。
一般來說,在專案中添加人員只需要從該專案的主管理畫面上進行即可,請點選下圖中的Manage:

您會看到可以點選後出現底下畫面,接著按下Add:

你會發現可以新增一個User或Group:
 
請點選 Add user,接著請輸入任何一個Microsoft Account:
 
按下 Save Changes後,即可完成用戶的新增。
 
但需要留意的是,這樣新增的帳號,並未明確的指派該帳號的種類(Advanced? Basic? VS Online會很貼心的自動幫你用權限比較大,也就是比較貴的帳號 ^_^ ),因此,請點選左上角的VS Online Logo(這樣會回到站台主畫面):
 
 您會在主畫面看到 users 選項,點選後會進入帳戶管理畫面,您可以在這個畫面中,將每一個剛才加入的用戶配置成basic或advanced:

這樣,您就可以妥善的安排每一個用戶的權限,並且依照購買的數量來增減用戶以控制預算了。

備註: 至於您有多少個basic or advanced帳號可以配置,則是看你在Azure管理站台購買的數量(還記得這邊的介紹嗎?),一買最低就是一個月為單位,請留意。

Step 2. 安排與設定專案的Iterations

當專案啟動後,我們會用VS Online來管理專案中的每一個Features/work items,以及source code。

Source code管理的部分我們就暫且先不說了(如果以後有機會我再補齊),主要是因為有用過TFS的開發人員肯定知道怎麼用,而VS Online在版控上的操作完全相同,因此不需贅言。

這一系列文章我們先focus在work items和Features的處理。

回顧先前所提過的,敏捷開發的核心精神之一,就是把開發周期縮短成多個iterations,在Scrum中我們叫做Sprint。(其實想一想,我覺得不管是不是敏捷開發,只是要近代開發,都應該縮短週期)

前面曾經說過,這個Sprint可能是 1-4 周,一般來說我自己喜歡用2周。但這個長度完全取決於你希望專案有多透明,這個衝刺有多密集。

經驗上來說,2周是一個比較舒服愉快的周期,1周多半意味著開發人員和PO, Stakeholders都得要上緊發條;但 3 or 4周我自己覺得有些鬆散了,比較適合人數比較多的開發團隊。

要在VS Online當中設置iterations,請在專案(注意,不是整個站台,因為一個站台可以建立多個專案)畫面的右上角,找到設定的圖示:

點選設定圖示後,你會看到底下的畫面:

再次請注意,是從專案的首頁點選設定,才會看到上面的環境,才有iterations可以點選,如果是從VS Online的站台點進來,就只剩下兩個頁標籤,沒有上面的iterations了。

請點選iterations頁標籤,你會發現預設狀況下是Release包著Sprint,你可以設置每一個Sprint的週期,如同我們前面說的,可以是1-4周,而VS Online也很聰明,你設置完第一個之後,後面的Sprint在設置時,只需要設置開始時間就會幫你算出結束時間。

如同畫面上所看到的,我們未來在一個Sprint當中,會經歷Scrum的一個循環,包含Planning Meeting, Daily Scrum, Demo(review) Meeting...等。而連續幾個Sprint之後,我們會有產品(專案)的一個minor release。

因此,你可以透過上圖中的功能,來設置每一個Release與Sprint的時間,我自己喜歡至少每一個季就有一個Release,甚至每一個月就有一個Release,這完全依照你有多愛現(也就是你的產品有多喜歡曝光、或是頻繁更新對產品來說有多重要)來決定。一般來說,用戶熱愛新鮮感的行動裝置App的更新週期,比起用戶喜歡穩定的商業軟體更新周期來的高很多,這部分就看你自己的規畫了。

設置好了之後,回到專案(再一次,不是站台,是專案)主畫面之後,可以點選主選單的work,你會發現我們規劃好的Sprint已經出現在畫面當中了,接著我們就可以新增Backlog囉。

Step 3. 安排與設定專案的Team或Area

一般來說,如果開發團隊的人數不是很多,且Features蠻單一的,是不太需要理會team或area這個功能的。

該功能一樣是從專案的管理畫面進去,可以看到頁標籤中有一個Aresa頁簽,不過你可以先不要理他,因為直接建立一個team,系統也會幫你建立一個對應的Area:


主要原因是這樣的,當一個系統比較大時,我們常常會切割成兩三個team同時一起開發,但Source code版控的部分,還是統籌在一起管理(因為總是有共用模塊或是組件)。這時候,你只需要建立一個主專案,接著依照實際開發的團隊來切出子專案即可。

舉例來說,一套ERP可能會同時切出財物模塊、銷售模塊、庫存模塊...等,前面說過每一個模塊由不同的團隊來開發,但程式碼版控當然是放在一起。這時候,你就開一個ERP Project,然後為每一個模塊建立一個Area分開管理即可,例如finance、POS、HR...etc。

還有一個常用的情境是這樣...我們要開發一個APP,但這個APP有Win8, WP8, Android, iOS...等不同版本,也可以為這些不同的Client端各自建立一個Area。

當區分出Area之後,不同的Area底下,Features、Backlogs等Work Items是切分開來的,但source code和Sprint卻可以共用,這樣可以讓我們在專案管理上更加方便且符合實際情境。

OK,瞭解了概念之後,我們繼續。

剛才說到,Area部分可以不用理他,是因為其實你可以在Overview頁簽下,直接建立一個Team,在上圖中,按下『 New team』連結,即可建立:

您會發現,當您建立一個Team之後,VS Online預設會幫這個Team建立一個同名的Area:

建立好之後,要怎麼移到這個Area呢? 你可以先回到站台主(注意,不是專案,是站台)畫面,然後點選 Browse ,在出現的視窗中,展開你的專案名稱,會發現Area/Team出現在這個專案的下面:

點選它之後,按下右下角的Navigate按鈕,畫面就移動到這個Area中囉,您會發現,在原本的Project後面,多了Area(Team)的名稱,接著,請點選主選單中的Work:

您會看到,Backlog和Features也依照Area(Team)被分開顯示與管理了。但,Sprint的時間區段則是共用的。這樣,其實非常符合我們日常進行開發工作的習慣。

好啦,開始的準備動作做得差不多了,接下來,我們要開始進行專案開發了。

進行專案開發工作前,當然是清楚的掌握Features,也就是要完成(實現)的功能,下一篇,我們要來介紹如何撰寫 Features與Backlog...

底下的影片是在VS Online當中,建立專案以及規劃Iterations和Team的操作步驟,請自行參考:
 
本篇收錄自 - 『敏捷開發專案管理與架構設計實務
 

沒有留言: