Working with Agile in a Distributed Team Environment 2/2

(續上集)2012 年一月份的 MSDN 雜誌有一篇文章,標題是「Working with Agile in a Distributed Team Environment」,作者是 Sandeep Joshi。拜讀之餘,想想好久沒翻譯了,就順便練習一下。我僅取部分摘譯,分成兩篇發布。這是下集。

推動敏捷實務

基本上,敏捷方法包含一組相互支援的實務作法。當某個實務作法不適用於你的團隊,就該放棄它,或尋找替代方法。對分散式團隊來說,導入敏捷方法可能需要付出更多時間和心力。如果某個實務作法明顯無效,產品負責人與 scrum master 卻仍大力推動,就會被視為太樂觀或激進。

在分散的工作環境中推動敏捷實務,工具扮演著至關重要的角色。比如說,你可以透過設定 Team Foundation Server 的簽入原則來強制規範程式碼簽入時一定要輸入說明文字。或者,你可以規定團隊成員必須在例行的 scrum 會議之前先到問題追蹤系統中更新問題的狀態。你會發現,剛建立好這些程序之後的幾個星期,每個人都很遵守遊戲規則,可是隨著系統上線的日期逐漸逼近,能堅持下去的人卻越來越少。身為 scrum master,你有責任持續推動這些實務作法,確保專案朝正確的方向前進,並且盡量自動化,以減少開發人員的麻煩。

使用線上工具

你可以將敏捷流程的產出從實體環境(白板、便利貼等)轉移至線上工具。我用過微軟的 SharePoint、Visual Studio Team System 2008/2010 和其他線上工具(甚至包括 Google Docs 和 Live groups)來輔助團隊開發。Visual Studio 2010 有提供 Agile 與 scrum 的專案範本,可用來組織你的用戶需求(user stories)、產品工作清單(product backlogs)等等。它也提供了許多預先設計好的報表,例如燃盡圖(burn-down chart)和整體進度報表。SharePoint 2007/2010 可以讓你管理工作項目和 bugs,你也可以用它的 Document Library 功能來管理專案的文件。

使用 SharePoint 有個明顯的好處:無論在企業內部還是外部,都很容易跟使用者共享文件。若你所在的環境還在草創時期,尚未建立好 SharePoint 伺服器,此時 Google Docs 和 Live groups 也能幫不少忙。如果沒有什麼大事情,我也會用 Live groups 來和團隊成員互相傳遞即時訊息,以取代每日例行的 scrum 會議。如果團隊成員已透過 Live Messenger 傳遞文字訊息來更新個人的狀況,我們就把那天的會議取消。

了解時間差異

橫跨不同時區的團隊在溝通上有些特別麻煩的地方。雖然可以透過例行 scrum 會議和上班時間重疊來減少一些溝通上的問題,但有些工作還是會因為需要等對方釐清而進度落後,或者因為某人更改了某些東西而影響了另一個位於不同地區的人,以致於要重做一遍;或者是變更沒有完整從這一頭傳遞到另一頭。有時候,還是有必要讓開發人員經常互相交換資訊,以及在每日下班前更新整個團隊的工作進度。

我說的開發人員互相交換資訊,指的是開發團隊應該要主動向需要知情的成員回報自己改了哪些東西,嵌入了哪些程式碼。例如修改了類別或方法,檔案內容有變動,以及嵌入之後的建置動作是否成功等,這些都應該要告知相關人員。如果簽入程式碼時發生衝突,或者決定暫時不簽入某些程式碼,這些也都需要提出來。這種工作方式需要更有紀律的團隊成員才能持續下去。有些開發人員會假設別人都能夠發現哪些地方有變動,所以就不發 e-mail 通知。我看過許多團隊就是這樣,花了好幾天的時間,想辦法找出另一個團隊究竟改了哪些東西,因而拖延了上線時程。

在我先前服務的一個單位,每個人每天下班前都會分享自己的工作摘要,包括程式碼簽入的狀況、建置結果,以及任何待處理的問題。
碎碎念:跨時區就是難免有這些問題。團隊成員必須試著了解位於地球另一端的開發團隊需要知道哪些東西的變化,而且在有改動到這些東西時讓對方知道。三言兩語簡單交代了事的 e-mail,結果可能就是好幾次的信件往返,才能蒐集到完整資訊。如果雙方的時差有 12 小時,一次信件往返往往就要超過 16 小時才能收到回信(這邊剛上工,那邊早已經下班),不像集中式團隊,可能跑到隔壁辦公室或打個電話就能問個清楚。分散式團隊需要花更多心力在溝通上,可別嫌打字麻煩啊。
了解文化差異

(略)

為遠方團隊調整溝通方式

(略。與遠方團隊溝通時,可以找一些能夠分享桌面、以及多方通話的工具。Skype 和 TeamViewer 是很經濟的選擇。前者可多方通話,後者可遠端遙控、分享桌面。) 

結語

(略。感謝作者 Sandeep Joshi 的經驗分享!)

Post Comments

技術提供:Blogger.