2014年6月26日 星期四

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

請留意這篇文章是我配合2014年六月底的研討會所撰寫的連續幾篇關於介紹如何透過VS Online以Scrum方式帶領專案團隊進行開發的其中一篇(其餘的會陸續發表),因此並不完整,閱讀時請務必參考相關的VS Online標籤以閱讀更完整的前後文。

這一篇是先談談整件事情的緣起...

過去,Scrum並不是我主要的興趣,ALM一開始也和我沒有太密切的關聯,這麼多年來,我一向是務實主義者,工作上有用到的技術我才會多少涉獵一下。而過去這十幾年,我專注的大多都是.NET的軟體開發技術,而非ALM或是專案管理(雖然我小時候對管理就有著濃厚的興趣)。

因此,接觸Agile/Scrum,最早要說是因為李智樺(Ruddy)老師的關係。

其實Ruddy老師專研敏捷開發多年,但我一直沒有機會好好跟他聊聊這部分。然而有一次,在海外參與一場大型技術盛會,講的是架構設計,有幸我和Ruddy老師都是講員。

還記得,講完第一堂課之後,Ruddy老師中午吃飯時跟我說:『David,你整場內容都講的非常好...』聽到前輩的肯定,我正準備油然自得,但沒想到...Ruddy老師繼續說了:『但...中間有個地方我覺得不太對,不過你別擔心,我下午場會幫你跟學員說你哪裡講錯...』

OOXXOOXX...這怎麼得了,難得來海外上一次課,就要被Ruddy老師拆台?

因此,我當下就激起奮發之心,由於中午時間已經來不及,當晚拉就著Ruddy老師討論他覺得有爭議的部分...

OK,原來核心問題是對於專案管理和開發流程上的差異,我用傳統的開發流程和管理方法,來闡述架構設計,但Ruddy老師覺得,依照Agile敏捷開發的精神, 則應該是如何如何如何...

有台灣首屈一指的Scrum大師在旁,果然不同,當下如同醍醐灌頂,強灌了20年功力ㄧ般,真氣運行於腦幹與突觸之間,喜悅之情實在是無從言喻。

但,這都還只是別人的經驗,要能夠把別人的功力內化成自己的功力,得要實作才行。

當下我就覺得,接下來我要搞個案子來玩玩。

不玩還好,一玩下去不得了!!! 接下來我們公司所有的項目(專案),都被我從傳統的waterfall形式,整個改成了Scrum的架構。

累積了信心和經驗之後,接著,我就在我能夠掌握的相關團隊中,將整個流程比較有計畫的實施了起來。一實施下去,確實也發現,果然在台灣/大陸對於專案管理的實務操作上,會與國外的案子和教科書上所描述的略有不同。過程中,我們面對到不少的問題,當然也累積了些許的經驗。

由於我們和微軟一直以來都有著固定的合作,再加上我們的團隊分散於整個大中華區(包含台灣、大陸、和新加坡),因此我們需要的Scrum工具是一個可以讓遠端工作人員自由的協同運作、且足夠安全又穩定的工具。也因此,毫無疑問的,我們是透過大家熟悉的 Visual Studio Online(VS Online)來進行版控、需求與工作項管理、bug tracking與測試。

過程中VS Online也持續的在改版,從免費試用的測試階段,一路走向正式上市。隨著VS Online完整度越來越高,我們在項目的管理與Scrum的操作上也越趨便利與成熟。

如今,我們終於可以釐清,為何Scrum在這幾年一反常態的異軍突起,透過敏捷開發如何提高開發的質量,更重要的是,提升客戶的滿意度與信任,解決過去台灣(乃至於兩岸華人圈)軟體專案常常收不到尾款、虎頭蛇尾、或是失敗收場的悲劇。

所以,我想把這一年多以來的經驗順手記錄下來。由於網路上關於Scrum的分享已經太多了,所以我盡可能聚焦在透過VS Online的Scrum template來處理團隊開發的經驗以及搭配Microsoft Azure進行雲端開發與架構設計的部分。

不過,既然是經驗,就不一定是100%正確。你知道,鄉民常說:我的菜不一定是你的菜。同樣的,我的情境不可能完全等同於你的情境,我的團隊也不同於你的團隊。所以,您看了之後,在你的環境中,能夠使用多少,就存乎一心了。

為了降低大家閱讀的困難,也減少我打字的時間,因此我盡可能地將這一系列分享簡短,如果讀者有疑問,我再補充,目前規劃的內容大致上如下:

  1. 緣起 - 就是這篇
  2. 幾句話說說Scrum的精神 -  來聊聊我心裡的 Scrum
  3. 帶領團隊走第一步 - Scrum中的角色與做法
  4. 如何使用VS Online的Scrum Template來運行你的專案
    1. 如何建立帳號、專案、以及專案的參與成員(費用如何計費?)
    2. 專案的環境設定(Sprint, 日期, 團隊規劃...etc)
    3. 從feature開始(如何建立Feature? 注意事項?)
    4. 決定Backlog(如何建立Backlog? 注意事項?)
    5. 從Backlog到Task
  5. 關於工作進度、Backlog的life Cycel 與 cumulative flow
  6. 我最在乎的幾個Scrum週期性活動
    1. Planning Meeting
    2. Daily Scrum
    3. Demo Meeting
  7. 如何取得Stakeholders的Feedback
  8. 關於時程預估
  9. 如何面對專案型客戶傳統思維的衝突?
我會先寫上面這些,如果有時間或有需要,我再補其他的部分。

既然是經驗分享,就非常歡迎大家一起討論。你知道,每一種技術、方法,都不可能是放諸四海皆準,隨著應用情境和參與在其中的人,都必須適度的調整。所以你可能無法從這一系列的文章中學習到很標準的專案管理(我也不知道是不是真的有所謂的標準的專案管理技巧),但你可以參考我們實際發生的經驗,相信或多或少對你會有所幫助。

hope it helps.

沒有留言: