Agile Portfolio 管理:使用 TFS 支援跨多個小組的待處理項目
在 Team Foundation Server (TFS) 2012 中,您在待處理項目 (Backlog) 中管理小組的工作。 在 Team Foundation Server 2013 中,您可以在 Portfolio 待處理項目 (Backlog) 中管理工作,讓管理小組深入了解跨多個敏捷式軟體開發團隊的工作。 管理小組定義高層級目標並跨多個敏捷式軟體開發團隊追蹤工作。 敏捷式軟體開發團隊是工作執行者,會將項目細分為工作、修正 Bug,以及完成整體工作。 所有小組將擁有自己的待處理項目 (Backlog) 和面板,也會有其工作支援的客戶經驗的彙總檢視。 當您完成時,您將可以根據待處理項目 (Backlog) 層級,將項目組成群組以管理專案組合,並了解如何跨多個小組成功。
每個小組都會處理其待處理項目 (Backlog),而待處理項目 (Backlog) 工作項目類型的階層架構可讓管理員檢視更高層級的進度彙總。 在此白皮書中,我們將依循處理整體專案特定區域之 Phone Saver 管理小組及敏捷式軟體開發團隊的假設範例,逐步引導您設定這種結構。
Phone Saver 管理小組將工作定義為高階開發案,並加以細分為客戶的重要功能。 此時,會將工作指派給敏捷式軟體開發團隊,進一步分割和定義要完成的工作。 隨著專案進行,管理小組會向下切入,以偏好的任何詳細層級查看進度。 例如,可以檢視與 Scrum 專案中每個功能項目相關聯的待處理項目 (Backlog)。
在此螢幕擷取畫面中,您可以看到管理小組的功能待處理項目 (Backlog) 檢視,同時也顯示支援這些項目的產品待處理項目 (Backlog)。 管理小組未擁有這些產品待處理項目 (Backlog),這些項目是指派給其中一個敏捷式軟體開發團隊。 不過,因為它們是這些項目的子系,所以篩選器會顯示它們。 以這種方式,管理小組可以追蹤進度。
資訊性圖形說明上述螢幕擷取畫面中顯示的資訊概念層級。
每個敏捷式軟體開發團隊 (例如客戶小組) 都有自己的小組首頁、待處理項目 (Backlog)、看板和工作面板。 這些頁面只顯示與該小組相關的資訊。
在此螢幕擷取畫面中,您可以看到敏捷式軟體開發團隊的衝刺 (Sprint) 待處理項目 (Backlog) 檢視,顯示小組正在該衝刺上處理的產品待處理項目 (Backlog),以及他們所建立要細分和追蹤的相關聯工作。 在這個檢視中他們看不見工作支援的功能或開發案。 和以前一樣,資訊性圖形說明此螢幕擷取畫面中顯示的資訊概念層級。
設定小組和待處理項目 (Backlog) 層級
當您在 TFS 中建立 Team 專案時,會自動建立該專案的預設小組。 設定其他小組供敏捷式軟體開發團隊用來管理其日常工作,以及重新定義預設小組為管理小組將用來在其層級管理工作的小組,敏捷式軟體開發團隊可以自行管理工作負載和優先順序。 管理小組檢視將會顯示所有跨敏捷式軟體開發團隊之工作的進度。 設定小組和開始使用,只需進行非常少的組態設定。
除了使用敏捷式軟體開發團隊彙總進度之外,您還可以使用待處理項目 (Backlog) 層級來建立工作的階層式檢視。 在 TFS 2013 中,您可以立即存取兩個層級的待處理項目 (Backlog)。 但是,如果您需要增加另一個層級以支援組合管理,也可以這麼做。 這需要比建立敏捷式軟體開發團隊略多一點的組態設定,但仍然是相當簡單。 我們將逐步解說如何設定敏捷式軟體開發團隊和建立額外的待處理項目 (Backlog) 層級。
首先建立敏捷式軟體開發團隊和管理小組結構,如範例組織中所示。
建立敏捷式軟體開發團隊和設定管理小組
從預設小組的首頁,使用齒輪圖示 開啟管理頁面,並選擇 [新增小組] 建立敏捷式軟體開發團隊。
指定小組的名稱,並且務必選取 [用小組的名稱建立區域路徑]。
這就是管理小組的區域路徑子區域,但更重要的是,它提供跨敏捷式軟體開發團隊的工作分工,並將許多進度自動化彙總提供給管理小組。
為敏捷式軟體開發團隊設定衝刺 (Sprint)。
將成員加入至新的敏捷式軟體開發團隊,並從管理小組中移除不需要的成員。
基於最佳做法,管理小組中的成員資格應限制為經理以及負責開發案和功能的小組成員。 敏捷式軟體開發團隊的成員仍然可以查看管理小組的首頁和待處理項目 (Backlog),就像管理小組可以檢視敏捷式軟體開發團隊的首頁和待處理項目 (Backlog) 一樣。
變更管理小組的區域,讓其中不包含子區域。
視需要建立許多敏捷式軟體開發團隊。 當工作項目指派給敏捷式軟體開發團隊時,每個小組會在它的待處理項目 (Backlog) 上看到這些項目,並在其看板和 (或) 工作面板上管理項目,如同先前一樣。
顯示待處理項目 (Backlog) 和工作的敏捷式軟體開發團隊待處理項目 (Backlog)
管理小組將會在待處理項目 (Backlog)、看板和工作面板檢視中看到指派給所有敏捷式軟體開發團隊的所有工作項目,為進行中的工作以及尚未開始的工作提供主版檢視。
顯示功能和敏捷式軟體開發團隊待處理項目 (Backlog) 的管理小組待處理項目
現在您已經設定小組結構,我們繼續加入另一個層級的待處理項目 (Backlog)。
加入另一個待處理項目 (Backlog) 層級
加入另一個待處理項目 (Backlog) 層級需要一點時間,不過很容易進行。 讓我們逐步解說流程。 您必須是 Team 專案系統管理員群組的成員,才能執行這些步驟。 首先您將匯出現有工作項目類型並進行編輯,以建立新的工作項目類型,稱為 Initiatives。 然後您會加入開發案的分類。 最後,您會將開發案加入至 Portfolio 待處理項目 (Backlog)。
如果您是對加入 Initiative 待處理項目 (Backlog) 層級之後項目如何運作比較感興趣,按一下這裡往前跳。
建立 Initiative 工作項目類型
建立工作項目類型最簡單的方法是複製現有的工作項目類型,將它重新命名及編輯它。 在下面程序中,您將匯出 Feature 工作項目類型,並使用它做為 Initiative 工作項目類型的基礎。 在範例中,專案名稱為 Phone Saver,而伺服器名稱是 Fabrikam。 Team 專案集合名稱是預設名稱 DefaultCollection。
以系統管理員模式開啟 [命令提示字元] 視窗,並將目錄變更到安裝 Visual Studio (或 Team Explorer) 的位置。
cd %programfiles%\Microsoft Visual Studio 12.0\Common7\IDE
在 Windows 的 64 位元版本中,使用 %programfiles(x86)%。
使用 witadmin 工具下載 Feature 工作項目類型定義並將它儲存為 Initiative.xml。
witadmin exportwitd /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /n:Feature /f:%userprofile%\documents\Initiative.xml
開啟 Initiative.xml 檔案,將 <WORKITEMTYPE name="Feature"> 取代為 <WORKITEMTYPE name="Initiative">,並更新描述。
<witd:WITD application="Work item type editor" version="1.0" xmlns:witd="https://schemas.microsoft.com/VisualStudio/2008/workitemtracking/typedef"> <WORKITEMTYPE name="Initiative"> <DESCRIPTION>Tracks an initiative that will be released with the product. </DESCRIPTION>
編輯標記為 Implementation 的 Tab 項目。 將 <Filter WorkItemType="Product Backlog Item" /> 取代為 <Filter WorkItemType="Feature" />。 這會將功能顯示為開發案的子工作項目。
<Tab Label="Implementation"> <Control Type="LinksControl" Name="Hierarchy" Label="" LabelPosition="Top"> <LinksControlOptions> <LinkColumns> <LinkColumn RefName="System.Id" /> <LinkColumn RefName="System.Title" /> <LinkColumn RefName="System.AssignedTo" /> <LinkColumn RefName="System.State" /> </LinkColumns> <WorkItemLinkFilters FilterType="include"> <Filter LinkType="System.LinkTypes.Hierarchy" FilterOn="forwardname" /> </WorkItemLinkFilters> <ExternalLinkFilters FilterType="excludeAll" /> <WorkItemTypeFilters FilterType="include"> <Filter WorkItemType="Feature" /> </WorkItemTypeFilters> </LinksControlOptions> </Control> </Tab>
匯入檔案。
witadmin importwitd /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /f:%userprofile%\documents\Initiative.xml
建立 Initiative 分類
現在已有 Initiative 工作項目類型,您會想要將開發案的分類加入至一組可見於 Team 專案的分類。
將分類定義匯出至 XML 檔案。
witadmin exportcategories /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /f:%userprofile%\documents\categories.xml
開啟檔案並加入 Initiative 分類。 在這個範例中,Initiative 分類會使用公司名稱將它識別為自訂:
<CATEGORY refname="Fabrikam.InitiativeCategory" name="InitiativeCategory"> <DEFAULTWORKITEMTYPE name="Initiative" />
正如之前所做的,將檔案匯入。
witadmin importcategories /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /f:%userprofile%\documents\categories.xml
將 Initiative 分類加入至 Portfolio 待處理項目 (Backlog) 階層
現在剩下要做的是將開發案加入至構成 Portfolio 待處理項目 (Backlog) 的工作項目階層。
將流程組態定義匯出至 XML 檔案。
witadmin exportprocessconfig /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /f:%userprofile%\documents\MyProcessConfiguration.xml
開啟檔案,並在 PortfolioBacklogs 區段中加入 Initiatives 的 PortfolioBacklog 區段。 同時,請修改 FeatureCategory 的 PortfolioBacklog 項目,讓 Initiatives 成為 Features 的父工作項目。
<PortfolioBacklogs> <PortfolioBacklog category="Fabrikam.InitiativeCategory" pluralName="Initiatives" singularName="Initiative"> <AddPanel> <Fields> <Field refname="System.Title" /> </Fields> </AddPanel> <Columns> <Column width="100" refname="System.WorkItemType" /> <Column width="400" refname="System.Title" /> <Column width="100" refname="System.State" /> <Column width="50" refname="Microsoft.VSTS.Common.BusinessValue" /> <Column width="100" refname="Microsoft.VSTS.Scheduling.TargetDate" /> <Column width="200" refname="System.Tags" /> </Columns> <States> <State type="Proposed" value="New" /> <State type="InProgress" value="In Progress" /> <State type="Complete" value="Done" /> </States> </PortfolioBacklog> <PortfolioBacklog category="Microsoft.FeatureCategory" parent="Fabrikam.InitiativeCategory" pluralName="Features" singularName="Feature">
將 Initiative 要使用的色彩加入至 WorkItemColors 區段。
<WorkItemColor primary="FFFF6600" secondary="FFFEB380" name="Initiative" />
這會指派亮橙色做為清單顯示使用的主色,並指派淡橙色用於工作面板和看板。
匯入檔案。
witadmin importprocessconfig /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /f:%userprofile%\documents\MyProcessConfiguration.xml
您完成了! 您已經加入第三個待處理項目 (Backlog) 層級,稱為 Initiatives。
定義 Initiatives
現在您已定義 Initiatives,應該開始建立一些項目。 管理小組成員可以直接從 Initiatives 待處理項目 (Backlog) 檢視快速加入一個項目。 這與加入待處理項目 (Backlog) 至任何待處理項目的經驗相同。
您可以透過在 [實作] 或 [連結] 索引標籤建立的新工作項目,直接從 Initiatives 工作項目建立新功能。 這會在您建立功能的同時加入建立父子關聯性的優點。
如果您已經有一些,您也可以選擇加入開發案做為現有功能工作項目的父代。 這會有自動將該功能與其支援之開發案產生關聯的優點。 此外,您可以利用這個功能建立待處理項目 (Backlog) 並將它們指派給個別的敏捷式軟體開發團隊。
如果有現有的待處理項目 (Backlog),請對應多個項目
如果您已經有現有的待處理項目 (Backlog),您會想要建立這些項目之間的父子關聯性,以便支援進度自動報告。 您會想要將待處理項目 (Backlog) 對應至功能,並將功能對應至開發案。 所幸對應窗格提供了簡單的方式。 首先開啟對應窗格。
現在將項目從待處理項目 (Backlog) 置放到您要當做父代建立關聯的對應窗格功能上。
在每個待處理項目 (Backlog) 層級重複此流程,直到建立了所要的階層架構為止。
您也可以在 Microsoft Excel 中大量編輯工作項目和管理其階層架構。
檢視進度
現在您已將工作項目與適當的父子式連結產生關聯,應該開始了解該進度檢視如何跨不同層級套用。
進度管理檢視
在管理中,Phone Saver 小組的 Initiatives 待處理項目 (Backlog) 會顯示 Phone Saver 專案中所有小組的開發案工作項目。
您可以切換檢視,顯示相關功能…
…或進一步向下切入,直到待處理項目 (Backlog) 或工作層級。
提示:加入 [區域路徑] 欄,查看哪個小組正在哪個項目上工作。
此外,您可以在看板中檢視進度。 管理小組可以看到哪些開發案和功能在進行中。
進度的小組檢視
個別敏捷式軟體開發團隊的檢視會非常不同。 以那些小組的成員身分瀏覽至 Initiatives 或 Features 待處理項目 (Backlog) 時,您不會看見任何內容。 這是因為敏捷式軟體開發團隊不會直接在該層級建立或使用項目。 敏捷式軟體開發團隊絕不會看到開發案或功能的完整清單。 不過,如果小組想要知道他們所支援的開發案和功能,可以從 [待處理項目] 的待處理項目 (Backlog) 開啟檢視,如此就會看到他們所處理項目所支援的功能和開發案。
至於其他項目,則與個別小組一般處理的業務十分相似。 他們可以使用看板、工作面板和其他功能如同以往,不過,現在他們的進度會顯示給其管理階層,而不必手動報告任何項目。 他們所做的動作會反映在管理檢視中。
關於作者
Gregg Boer 是 Microsoft 的首席程式經理。 Gregg 是 TFS 中敏捷式管理經驗的產品擁有者。
Susan Ferrell 是 Microsoft 的資深技術作家。
Kathryn Elliott 是 Microsoft 的資深技術作家。