【引自青峰的博客】編者按:本文是一個系列文章,共分為基礎、應用和比較三篇。本文較全面地探討了有關把Visual Studio 2005 Team System和MS PROJECT聯合起來進行協同開發的實現過程及相關注意事項。另兩篇請見文章末的相關文章。
(七)從一個工程計劃中刪除工作項
一旦創建一個工作項,你就不能從TFS中刪除它。因此,當一個用戶從一個工程計劃中刪除一個工作項記錄時,該工作項僅能從該工程計劃的副本中被刪除,但這個工作項仍存在于TFS中,并且可以通過點擊"Get Work Items"按鈕再把它導回到工程計劃中。
(八)出版錯誤問題
工作項中一切定義在WIT中的域都有自己的數據類型和規則,例如,域“Rank”是integer類型的,因此僅可以有數字型值,而域“Assigned To”僅能以有效的工程成員之一作為命名。MS PROJECT插件通過提供一個僅包含有效值的下拉列表框來強制實施這其中的大部分規則。例如,“Assigned To”欄相應的下拉列表框將僅顯示有效的用戶,而相應于“Discipline”欄的下拉列表框則僅顯示相應于該域的在WIT定義中定義的值。
但是也存在一些MS PROJECT插件無法強制實施的規則。例如,一個用戶可以在“Rank”欄中輸入一個字符串值,盡管它在WIT中被定義為一個integer類型。當一個用戶要出版的一個工程計劃中存在一些欄包含無效的工作項值時,具有無效值的工作項不會被出版;代之的是,該插件將在“Work Item Publishing Errors”對話框中報告它們,如圖8所示。
從圖8中的對話框中可以看出,用戶可以選擇一個工作項并點擊“Edit Work Item”按鈕來觀察和修改錯誤。點擊該按鈕后將顯示一個如圖9所示的對話框。
|
圖9:工作項編輯器-這個對話框讓你編輯并修改由于錯誤而未被出版的工作項 |
這個對話框顯示所有關于工作項的信息,它甚至還展示那些并不是工程計劃的一部分的域。引起出版錯誤的域從外觀上看起來具有一個黃色的背景(圖9中的“Assigned To”域展示了一個這樣的示例)。點擊“Close”按鈕可以關閉這個對話框并再次顯示圖8中的“Publishing Errors”對話框。這一次由于已經改正了錯誤的工作項,所以你可以使用“Publish”按鈕了。點擊這個按鈕將會把該工作項出版到TFS中。
(九)出版時的數據沖突問題
有時,被出版的工作項中的數據可以與TFS中對應那些工作項的相關數據不匹配。這種情況在多個人從不同的客戶端更新工作項時經常發生。當發生這樣的沖突時,MS PROJECT將顯示一個如圖10所示的對話框,該對話框中顯示出本地的以及服務器版本的數據。
|
圖10:Conflict Resolution-當從一個本地的副本出版數據時將會引發一個 與TFS中數據的沖突,你可以使用這個對話框來決定保留哪一個版本 |
點擊“View Database Version…”按鈕將會以只讀方式在一個類似于圖9中所示的對話框中顯示服務器端工作項。你可以選擇針對每種沖突想保留的版本并出版這些工作項。
(十) 保存工程計劃
因為一個連接的工程計劃中的大多數數據是存儲于TFS中的,所以,你不必再保存一個本地副本。但是也存在一些情況,此時連接的工程計劃可能包含僅存在于本地的數據,并且不被出版到TFS中,例如:
◆Summary任務或那些“Publish and Refresh”欄被標記為“No”的任務(如前面所述);
◆其它的MS PROJECT欄。
在這種情況下,你應該保存工程計劃的一個本地的副本。當你打開一個本地保存的工程時,該計劃自動地連接到相關聯的團隊工程中并且實現自身與TFS的同步。
(十一) 工程計劃欄的映射問題
前面圖4中的工程計劃中展示了一個工程計劃(此時,它被連接到通過“MSF for Agile Software Development Process”模板創建的一個團隊工程中)中缺省欄的集合。注意,在此并非所有顯示出來的欄在任何工作項中都有相應的域。一些欄僅能作為MS PROJECT欄單獨存在,而不被出版到TFS中,例如“Duration”和“Row No”欄。同樣,在連接的工程計劃中的一些欄并沒有被顯示于缺省的視圖中,但是在工作項中的確存在相應的域。例如,域“Priority”和“Discipline”在缺省的視圖中就沒有顯示,但是在出版或刷新時它們能夠與工作項保持同步。表格1列出了所有的用于保持在MS PROJECT和工作項之間同步的欄。這些欄可以是下列三種類型任何一種:
◆適合于在“MSF Agile”過程模板中所有可用的WIT的欄。例如:Task,QoS,Risk,Scenario,Bug,Work Item ID,Area Path,等;這些欄的“Work Item Type”值在表格1中都為“All”。
◆僅適合于特定工作項類型的欄。例如,“Completed Work”欄僅應用于“Task WIT”。這些欄在表格1中的工作項類型值對應于每一欄適用的工作項的名字。
◆不適合于任何WIT的欄。這些欄存儲了僅與MS PROJECT內部相關的信息,例如,“Publish”和“Refresh”,它們在表格1中對應的工作項類型值為“None”。
注意,還存在適合于多個WIT的欄,并且可以擁有在WIT定義中從一個預先定義的列表內指定的值。如果這些列表中具有與可用WIT定義不同的值,那么這些欄相應的下拉列表框將顯示來自于所有的WIT中的組合值的列表。例如,針對一個任務WIT的“State”域可能是“Active”或“Closed”,但是對于其它三種WIT,則有可能是“Active”,“Closed”或“Resolved”。在工程計劃中對應“State”欄的下拉列表框中將展示所有這三個值。
表格1-所有用于實現一個本地的MS PROJECT副本和存儲于TFS中的工作項集之間同步的欄
clearcase/" target="_blank" >ccff; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #ece9d8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #ece9d8" vAlign=top>
MILY: 宋體; mso-bidi-font-family: 宋體; mso-font-kerning: 0pt">MS PROJECT欄 |
描述 |
工作項類型 |
Work Item ID |
工作項對應的唯一ID。 |
All |
Title |
標題提供了對要完成的工作項的一個簡明的概述。 |
All |
Area Path |
用于把工作項分組成一個適當的特征或團隊區域。該區域必須是工程層次中的一個有效結點。 |
All |
Iteration Path |
工作項隸屬的迭代。 |
All |
Publish and Refresh |
指定某個選項之一:Yes,No,Refresh Only。 |
None |
Work Item Type |
工作項的類型。 |
All |
Discipline |
顯示該任務是一個開發任務,測試任務,或是一個普通任務。 |
Task |
Assigned To |
該工作項當前被分配到的人。 |
All |
Completed Work |
在當前任務上已經完成的工作量。 |
Task |
Remaining Work |
在當前任務上尚未完成的工作量。 |
Task |
Baseline work |
從最初的計劃算起,已經工作的小時數。 |
Task |
State |
工作項的工作流狀態。例如,相應于一個工作項應該是“Active”或“Closed”。 |
All |
Reason |
一個工作項處于當前狀態的原因。例如,一項任務可以是“Closed”,因為它已經被完成,被推遲,被刪除或過時。 |
All |
Rank |
這個等級域代表了一種主觀上重要性評價。 |
QoS,Scenario and Task |
Issue |
對應一個Yes或No值,指示是否該工作項被以某種方式阻止。如果這個域被設置為Yes,該工作項將出現在工程經理的問題報告中。 |
All |
ExitCriteria |
這個域指示當前工作項對于啟動或完成一個迭代是否是關鍵性的。如果這個域被設置為“Yes”,那么,此工作項將出現在工程經理的工程清單中。 |
QoS,Scenario and Task |
QualityOfServiceType |
服務質量的類型,它可以是:Performance, Security,Stress,Load,Platform或者Other。 |
QoS |
Priority |
業務優先權。 |
Bug |
Rev |
指示工作項的修訂版本號。 |
All |
Links and Attachments |
指示是否工作項擁有任何鏈接或附件,其值為Yes或No。 |
None |
表格1中的每一欄與其在VSTS中的等價的工作項域都是一一對應的。你可以通過點擊“View Column Mappings”菜單項來觀察這些映射,如圖11中的對話框所示。
![]() |
圖11:欄映射 |
圖11展示了缺省的欄映射,但是你可以通過定制過程模板來改變它們或添加新的映射。
(十二)通過Areas和Iterations進行組織
通過把工作項按層次分類,你可以把它們組織成一個團隊工程。VSTS支持兩種層次:
◆Iterations-描述生命周期迭代。此時,一個工程將被劃分為Planning,Envisioning,Development等組成部分。
◆Areas-描述一個邏輯的工程劃分(區域和組件)。例如,你可以把你的工程任務劃分為每一種邏輯架構:用戶接口層,業務層和數據存取層。
你可以分別通過“Iteration Path”和“Area Path”欄把工作項與這兩個層次加以關聯。這些欄都有一個下拉列表框,它們以一個樹結構形式進行層次顯示,如圖12所示。
![]() |
圖12:該圖展示了選擇一個工作項的迭代路徑的過程 |
你還可以使用這些層次來創建MS PROJECT視圖-它們把工作項分組為各個層次。上面這兩類層次結構都可以在MS PROJECT中通過“Areas and Iterations”對話框(通過點擊“Edit Areas and Iterations”菜單項中顯示,見圖13)進行修改。
![]() |
圖13:此對話框展示了樹結構形式的Area和Iteration層次, 你可以從中添加、刪除、移動或改變結點縮進 |
七、MS PROJECT SERVER和VSTS比較
MS PROJECT SERVER 2003是一個企業工程管理產品,它實現了工程調度和管理,資源利用和項目清單,時間表等功能,而且還允許多個成員共享數據-提供一個基于Web的接口來觀察和更新工程計劃任務。
MS PROJECT SERVER能夠與MS PROJECT(客戶端)進行全面集成-你可以把任務從MS PROJECT出版到MS PROJECT SERVER中,然后在MS PROJECT中觀察更新的任務。
由于VSTS在共享數據和MS PROJECT集成方面存在許多類似的特征,所以人們經常把它與MS PROJECT SERVER 2003進行比較。但是,這兩個產品是針對不同領域的兩個完全不同的產品。PROJECT SERVER主要針對企業工程管理領域,而VSTS則主要針對軟件開發生命周期領域。VSTS并不僅提供了作業(或任務),而且還提供可擴展的工作項基礎結構來創建每一項工程要求定制的工作項。而且,因為它與Visual Studio IDE緊密集成,所以,VSTS允許團隊成員從IDE內部更新它們的任務及其它工作項。
總之,這兩個產品各自提供互補的特征,而且也存在某些共同之處。正是我們所討論的這些特點使得人們覺得很有必要把這兩個產品集成到一起。盡管在VSTS 1.0版本中還不沒有實現這兩個產品之間的內置集成,但是微軟已經計劃在VSTS的2.0版本中提供這種緊密的集成。此外,已經出現一些社團組織,他們正在主動地開發PROJECT SERVER和VSTS之間的連接器。
八、小結
本文較全面地探討了有關把Visual Studio 2005 Team System和MS PROJECT聯合起來進行協同開發的實現過程及相關注意事項。其實,有關于Visual Studio 2005 Team System與其它產品的協同開發是一個極為復雜的話題-我們只是剛剛開了個頭而已。
【相關文章】
原文轉自:http://www.anti-gravitydesign.com