【引自青峰的博客】編者按:本文是一個系列文章,共分為基礎、應用和比較三篇。本文較全面地探討了有關把Visual Studio 2005 Team System和MS PROJECT聯合起來進行協同開發的實現過程及相關注意事項。另兩篇請見文章末的相關文章。
一、簡介
Visual Studio 2005 Team System(VSTS)能夠為一個典型的軟件開發團隊中的每一種角色(架構師,工程經理,開發者和測試者)提供相應的工具。例如,它支持工程經理使用他們所熟知的工具(MS PROJECT和Microsoft Excel)把工程管理數據存儲于Team Foundation Server(以下簡稱“TFS”,是Visual Studio 2005 Team System的基本組成部件,提供協作服務器特征)內。
本文中,我們將共同探討如何聯合使用MS PROJECT與VSTS數據,并分析這樣做存在的優勢。
在軟件開發工程中,工程經理及工程領導人通常都面臨下列問題:
◆他們要花費大量的時間來跟蹤例如工程計劃,任務,問題,風險等工程管理數據。為此,他們需要與其他團隊成員舉行頻繁的狀態會晤以得到最新的數據。顯然,在這些會晤上花費的時間將極大地影響團隊的整體生產效率。
◆這些數據通常都是以MS PROJECT或Microsoft Excel形式存儲的,并且需要與其它團隊成員共享。這樣以來,需要創建該數據的多個備份,從而導致很難得到工程狀態的一個一致和同步的視圖。
◆因為工程數據存在于多個文件中,因而創建工程報告幾乎變成了一個以手工為主的而且是極耗費時間的過程。
如今,VSTS中的工程管理工具有助于幫助解決上面的問題。例如,工程經理可以使用MS PROJECT創建任務和其它工程管理項-例如問題和風險,并把它們保存于Team Foundation Server(TFS)中,而其他團隊成員就可以在他們自己的開發環境本身(即Visual Studio)內觀察和更新這些數據項了。
因為所有的這些工具都依賴于一個中央服務器上的數據,所以,通過一種工具所作的修改勢必影響到其它工具。集中式的工程數據使得捕獲、共享和報告更為容易,而且耗費時間相對減少。此外,MS PROJECT與VSTS的緊密集成允許兩者之間進行無縫的數據傳遞和同步;但是,在VSTS的當前版本下,這種內置的集成僅可用于MS PROJECT客戶端。如果你要求與MS PROJECT的服務器端(MS PROJECT SERVER)實現這樣的集成,那么你必須手工地通過PROJECT SERVER和VSTS提供的API來實現這一目的。不過,微軟計劃在一個未來發行版本中提供對VSTS和PROJECT SERVER的更好的集成。
在VSTS中創建一個工程計劃并與一個團隊共享它的過程不同于我們更為熟悉的操作一個獨立的MS PROJECT實例的過程。本文后面,我們將詳細描述實現這一過程所需要的步驟,例如創建一個計劃,更新和共享該計劃,以及修訂數據沖突等。此外,我們還將討論平時操作MS PROJECT和VSTS時并不經常遇到的一些內容和特征。而且,我們還將對VSTS和MS PROJECT SERVER加以比較,因為這兩者都允許MS PROJECT客戶端操作它們的數據。
缺省情況下,VSTS和MS PROJECT的集成會限制工程經理如他們平常那樣使用MS PROJECT的方式。但是,因為VSTS和MS PROJECT都提供了可擴展性特征,所以,你可以對它們進行擴展和定制以提供這些工程經理們以前比較習慣的行為。然而,這樣的定制內容已經超出本文的討論范圍。
【作者注】VSTS僅能與MS PROJECT 2003協同工作,而無法與更早一些的版本協同工作。因此,為了簡化起見,本文中我僅使用“MS PROJECT”來指代“MS PROJECT 2003”。
二、VSTS基本概念
為了充分地理解MS PROJECT與VSTS的集成,首先我們有必要熟悉一下VSTS的一些核心概念。
◆ Team Foundation Server(TFS)。為了支持在一個組織內部進行協作性開發,VSTS中提供了一個稱為“Team Foundation Server”的服務器端組件。
◆工作項(Work Item)。VSTS把任務,問題,風險等數據都作為工作項存儲于TFS中。其實,工作項就是一些工作單元,可以被分配給團隊成員并存儲有關該工作單元的完整信息。VSTS提供了一些預定義的工作項類型,例如任務,錯誤和場所。每一種工作項類型(Work Item Type,以下簡稱為“WIT”)都有一組特定的域和有效的狀態轉換。用戶可以定制這些WIT,也可以定義新的WIT。MS PROJECT可以操作任何類型的工作項,并且不僅僅限于任務。
◆團隊工程(Team Project)。因為一個軟件開發過程中的大多數活動都是在一個工程的上下文中進行的,所以,VSTS還把所有的數據(例如角色,成員,工作項和文件)存儲在工程上下文(稱為“Team Project”)中。一個團隊工程要求必須在VSTS內創建,用于存儲關于任何軟件開發工程的信息。
◆過程模板(Process Template)。團隊工程是基于過程模板創建的。一個過程模板是一組xml文件,用于指定WIT定義,工程角色,工程生命周期結構,工程門戶結構,源控件結構以及預定義的報告,等等。VSTS發行中提供了這樣兩個模板:①“MSF for Agile Software Development”;②“MSF for CMMI Process Improvement”。其中,Process模板也稱為Methodology模板。
【作者注】所有在本文中描述的WIT都是符合“MSF for Agile Software Development”過程模板的。
三、聯合VSTS以及單獨使用MS PROJECT
(一) 單獨使用MS PROJECT
當單獨使用MS PROJECT時,工程經理通常遵循下面的步驟:
1. 創建一個新的工程計劃并且使用進一步細化的結構填充它;
2. 通過電子郵件或其它方式與團隊成員共享該工程計劃;
3. 保存該工程計劃。
然而,借助于VSTS,還存在另外的方法來使用工程管理數據。下面,我們按時上面的步驟來解釋MS PROJECT和VSTS的集成特征。盡管這些步驟實質上都是相同的,但是,它們在執行上還是略微有些差別。
1. 工程經理通過MS PROJECT創建一個新的工程計劃;
2. 在填寫該工程計劃前,他們連接到VSTS中的一個團隊工程并且把團隊工程中現有的工作項導入到工程計劃中。然后,他們添加新的工作項或修改導入的工作項。
3. 最后,他們把所有的工作項出版到TFS中,以便團隊成員可以在Visual Studio內各自的工作項列表中觀察它們。
(二) 通過MS PROJECT插件支持VSTS集成
為了支持MS PROJECT與VSTS的集成,你需要安裝一個VSTS插件。當在一臺安裝有MS PROJECT的機器安裝任何一種VSTS團隊客戶端(Team Architect,Team Developer,Team Test或者Team Foundation Client)軟件時,這個插件都會自動地安裝。該插件將把一個新的菜單組-“Team”連同一個工具欄添加到MS PROJECT中,如圖1所示。
|
圖1:把VSTS插件安裝到MS PROJECT后出現的新的Team菜單組和工具欄 |
另外,該插件還添加了許多簡化操作VSTS數據的對話框。
【作者注】因為在“Team”菜單組下的工具欄按鈕和菜單項執行的是相同的動作,所以,我在后面干脆使用術語“按鈕”來代指工具欄按鈕和菜單項。不過,的確存在兩個菜單項沒有相應的按鈕,我會單獨描述它們。
四、創建一個工程計劃
有了VSTS,你就可以使用工作項(work item)來創建一個工程計劃。這種方式提供了下列優點:
◆工作項存儲于TFS中,這將有效地避免多個工程計劃副本所導致的不一致性。
◆團隊成員可以直接在Visual Studio中更新他們的工作項。這樣的改變也將自動地反映到工程計劃中,從而有助于減少狀態會晤的次數。
◆你可以為工作項域中允許的值指定復雜的規則。這些規則并非僅僅是靜態的約束;它們可以在任何時候根據一個工作項的狀態進行改變,從而使工程計劃的創建和維護更為一致和減少錯誤。
◆工作項支持復雜的查詢。工程經理可以使用這些查詢和MS PROJECT視圖來得到高度定制的工程計劃視圖。
注意,僅當使用基于工作項的工程計劃時才會有上面所描述的優點。當這些優點與VSTS的其它特征結合到一起時,工程管理過程將變得更為有效和簡單。有關VSTS的其它工程管理特征的詳細描述,請讀者參考MSDN文章“Visual Studio 2005 Team System:Software Project Management”。
【相關文章】
【責任編輯:火鳳凰 TEL:(010)68476606-8007】
原文轉自:http://www.anti-gravitydesign.com