圖片來源: 

崔啟文

首度在非洲舉辦的世界盃足球賽剛結束,由擅長全能攻守型的西班牙獲得冠軍,這些球員不見得是全世界技術最頂尖的人,但是他們的確是團隊合作最好的球隊,足球是最重視團隊合作的競賽,前鋒、中場、後衛,守門員各司其職才能打勝仗。

程式開發其實也是團隊合作的成果,不同角色的專案成員,從專案經理、系統分析、系統設計、程式開發、測試人員等各司其職,才能順利執行專案,尤其是複雜的大型專案,更是需要團隊的專業分工才能完成。

開發過程中有很多細節,開發團隊為了有效溝通,需要借助工具和方法,就像是足球教練必須擬定球員互相搭配的戰法,讓前鋒知道如何相互短傳搭配進攻,讓後衛懂得同步移動創造越位陷阱。專案開發也需要一套有效的利器。

不過,經常擔任開發專案顧問的微軟特約顧問胡百敬觀察,臺灣的.NET開發團隊大多只有進行程式碼版本控管,再搭配電話或電子郵件來討論工作和管理文件,並沒有發揮專案管理的功能。

胡百敬指出,電話難以記錄而電子郵件則版本控管不易,每次到開會時才發現,彼此手上的需求文件或功能文件版本不一,每個人看到的專案資訊不一致。而程式碼版本控制程式也無法記錄每個人的開發進度、測試結果或Bug處理狀況,導致專案無法有效管控而容易失敗,不只是開發效率不彰,程式品質也會容易不穩定。

為了控管開發專案的進度,有不少專案經理則是使用Project或Excel來管理,但集英信誠執行顧問陸雲中表示,用不同的工具分別控管程式碼版本以及專案進度,仍舊得透過人工作業來處理兩者的關連,相當麻煩。

微軟為了解決這些開發專案的團隊管理問題,打造了一套團隊開發的專屬工具,也就是Visual Studio和Team Foundation Server(簡稱TFS)。

陸雲中表示,「TFS可以管理和開發整合到同一套系統中,可以讓管理者更容易掌握開發狀況。」

Work Item能讓所有工作記錄相互勾稽

陸雲中說,在同一套系統中,開發文件集中在文件庫,所有專案工作項目記錄在Work Item,原始碼也集中控管,任何人都可以透過Visual Studio的Team Explorer、Office或瀏覽器看到開發專案的內容,「每一個人看到的資訊版本相同,而且有歷史紀錄,確保資訊一致是專案管理很重要的一環。」

除此之外,在TFS中,「每一個工作記錄都能夠互相勾稽,軟體開發流程中的每一個點,都可以串出其他行為,就像是一串粽子一樣,抓住任何一顆粽子,都可以拉出其他粽子。」胡百敬表示:「能夠達到這樣效果的關鍵就是Work Item,所有工作都記錄在Work Item上就可以相互勾稽。」

其實,TFS在2005年版中就提供了Work Item的機制,透過Work Item可以建立程式碼和工作項目的關聯。專案管理者先在TFS中依據工作項目建立Work Item,而開發人員寫完程式碼,簽入系統時,則要指定程式碼所完成的Work Item項目,就可以建立兩者的關聯,「Work Item正是將管理和開發串連的關鍵。」陸雲中說。

不過,VS 2005版本的Work Item功能不盡完善,每個Work Item是平行關係,必須展開到細部內容才能建立與其他Work Item的關聯,長期使用TFS管理開發專案的博暉科技研究開發處協理崔啟文認為,實際使用相當麻煩,而2008版的Work Item功能則和2005年版的差異不大,「直到最新的VS 2010版,Work Item功能才更成熟。」

Work Item不可刪除,確保專案紀錄可追蹤

在VS 2010中,專案經理可以建立樹狀結構的Work Item,可以依據工作性質建立Work Item之間的父子關係,甚至可有前置項關係,可以設定某一項工作完成後才能進行下一項Work Item。而且任何Work Item只能新增、修改,而無法刪除,因此,專案經理可以追蹤到開發專案中所發生的每一件事情。

除此之外, VS 2010也針對測試人員增加了額外的Work Item,例如測試計畫、測試案例等,都是以Work Item形式儲存,測試結果可以和其他Work Item,例如Task、Bug等連結,這些工作還能讓Test Manager在半夜透過Team Build進行編譯,部署到虛擬實驗室所管理的環境中,執行UI自動化測試,「從頭到尾把開發相關的角色都串接起來。」

順利安裝TFS的關鍵

導入TFS時,常遇到的第一個問題是安裝與設定,要建置TFS的執行環境,必須安裝完整的SQL Server,包括Reporter Server和Analysis Server來提供報表功能,另外要安裝SharePoint Server建立團隊入口網站來管理文件,再來就是安裝TFS 2010,另外在使用者端除了可以安裝VS 2010外,還需要Office軟體,如Excel或Project,作為設定和管理專案的另一套Client工具。以上是基本TFS的執行環境,若要進行Build功能則還要安裝Builder Server,或者是安裝Team Lab結合SCVMM來控制Hyper-V虛擬環境。

另外還要分別設定Report Server、SharePoint Server和TFS的授權,前兩者通常是企業現有服務,須由對應負責人另外設定。而編譯後檔案所存放的共享目錄也需要開放權限,否則很容易因無法寫入而編譯失敗。

6階段TFS導入策略

完成安裝與設定後,陸雲中建議,可以分成6個階段導入TFS,第一階段先集中程式碼,建立程式碼版本控制機制,並且讓所有成員開始使用TFS。第二階段則是訂定程式碼分支模式(Branch Model),程式碼的版本管理方法,到此是大多數企業常見的作法。第三階段則要開始加入Work Item,並且建立Work Item的流程,訂定Check-in政策,來結合Work Item和程式碼版本控制,同時可以開始導入Test Manager將測試納入開發專案的管理。「到此算是第一個里程碑,10~20個人的團隊,大約需要6~12個月時間導入。」他說。

第四階段則是導入Unit Test,第五階段是導入Team Build,最後則是進行報表客製化工作。後面這三個階段,大部分時間用來建立開發團隊撰寫Unit Test程式碼的習慣,陸雲中指出,初期開發者得多寫很多測試程式碼,會影響生產力,但是到了中後期,開發者可以不用擔心舊版程式碼會出現錯誤,搭配版本控制很容易找出問題,此外,Unit Test的程式碼也是最好的教科書,可以讓其他開發者快速了解程式。導入4~6階段大約需要半年時間。

不過,陸雲中建議企業,導入評估時就可以開始試用新功能,導入時要採取80分哲學。「不是將既有流程完整搬到TFS中,而是要改變流程配合系統。」而且要最後才進行客製功能,等到運作一段時間後再進行優化,逐步調整開發流程。「如果一開始就進行客製化,很容易因為短時間達不到預期效果而讓導入失敗。」他說。

導入TFS以後,開發團隊得先建立Work Item,才能發揮TFS各種開發專案管理的效果,接下來將用一個實際案例,告訴你如何善用Work Item來管理專案進度。

 

集英信誠執行顧問陸雲中建議:「導入TFS,不是將既有流程完整搬到TFS中,而是要改變流程配合系統。」

 


相關報導請參考「用VS 2010實踐團隊開發」

熱門新聞

Advertisement