Scaled Agile Framework: Using TFS to support epics, release trains, and multiple backlogs

Visual Studio 2013

企業客戶已見識過各個 Agile 小組的優勢。 不過,要調整這些做法並應用於多個小組,同時在企業層級實作靈活度,勢必需要面對數項挑戰。 Scaled Agile Framework® (SAFe™) 可提供完美藍圖,說明如何克服這些挑戰並適時調整靈活度。 此外,如果您已在公司內部部署 TFS 2013,則可以使用 SAFe。

您可以透過使用現成 TFS 流程範本建立的 Team 專案來追蹤 SAFe 準則。 本白皮書會提供逐步引導,說明如何將 SAFe 概念對應至 TFS、如何在 TFS 中規劃及追蹤 SAFe 專案,以及如何設定和自訂 TFS 以便支援 SAFe。

在 TFS 中啟用 SAFe 的步驟

如果您已熟悉 Scrum,但對 SAFe 仍感到陌生,可前往 Scaled Agile Framework Foundations 網站觀看由 Lean Samurai 人員 Inbar Oren 製作的這些影片,這會是不錯的入門方法。

將 SAFe 概念對應至 TFS 概念

SAFe 支援 Portfolio 檢視功能,可查看多個 Agile小組。 SAFe 會說明階層架構中各有特定目標的小組如何達成 Portfolio 願景。 此架構會將 Epic 細分成「功能」和「劇本」,由小組在衝刺期間著手執行,並透過 Program Increment (Pi) 和 Release Train 交付成果。 此外,Portfolio 待處理項目可以追蹤交付項目與「策略主題」及相關「預算」的對應情形。

SAFe 架構概觀 © D Leffing。

Leffingwell LLC 映像副本

本白皮書中的範例將說明如何新增 Epic WIT 和待處理項目、設定三層式小組階層架構,以及如何將小組對應至個別區域和反覆項目路徑。 這些範例是從 TFS Agile 流程範本建置而成。 不過,所做的變更可以套用至任何 TFS 流程範本。

支援 SAFe 的 TFS 結構

SAFe Portfolio、程式和小組對應至 TFS Team 專案和小組

由於 TFS 支援階層式小組結構,因此各小組都會擁有自己的工作檢視,而這些檢視會彙總至小組階層架構中的下一個層級。

TFS 小組的 SAFe 角色

若要支援 SAFe 小組,您必須將預設小組重新設定為 Portfolio 小組,如此才能管理您的 Epic。 接著您需要建立子小組,以便執行程式層級和小組層級的工作。 您可以跨小組和透過層級追蹤工作進度。

SAFe 待處理項目對應至 TFS 待處理項目

根據預設,TFS 會支援「劇本」和「功能」待處理項目層級。 您可以輕鬆新增第三個層級以便追蹤 Epic。 使用者劇本可以對應至「功能」,進而對應至 Epic。 待處理項目的階層式檢視可顯示「使用者劇本」的進度與 Epic 之間的關係。

階層式啟用安全: Epics、功能和劇本

SAFe 發行版本、反覆項目和衝刺對應至 TFS 反覆項目

SAFe Release Trains、發行版本、反覆項目、Program Increment (Pi) 和衝刺都可輕鬆對應至 TFS 反覆項目路徑。 您可以共用整個小組階層架構的反覆項目,以縝密一致的方式管理各個發行版本。

SAFe release train 對應至 TFS 反覆項目

Portfolio 小組追蹤 Epic 時可跨越多個 Release Train 或 PI。 Program 小組可追蹤隨附於 PI 的「功能」交付項目。 Feature 小組會利用衝刺期間完成數個劇本。 透過 TFS,各小組可選擇支援其追蹤小組交付項目的反覆項目。

小組會使用反覆項目追蹤可傳送作業

SAFe 策略主題和預算對應至 TFS 標籤和欄位

您可以使用標籤將 Epic 對應至策略主題或相關預算。

標記可以追蹤值的資料流或相關聯的預算

您可以在 TFS 中搜尋及查詢標籤,也可以利用標籤建立可重複使用的查詢和報表。

若要加強工作與策略主題和預算之間的對應,您可以在工作項目中新增欄位,追蹤各個 Epic、功能或劇本支援的主題或預算。

需求類型會追蹤商務或架構

SAFe 計量和 TFS 報表

您可以新增或自訂報表,藉以檢視 SAFe 計量。 例如,功能進度報表類似於劇本概觀報表,可顯示哪些功能即將完成,哪些才剛開始。 當小組著手處理連結至功能的劇本時,進度列就會隨即顯示。 進度列會顯示特定功能的完成百分比 (%)。 專案關係人擁有可化為行動的資料,以便管理範圍、資源和優先權。

功能進度報告

如需可下載的功能進度報表,請參閱調整 Agile 和 SAFe TFS 報表

在 TFS 中規劃/追蹤 SAFe 專案

只要將 TFS 設定為支援 SAFe,即可建立劇本乃至 Epic 的追蹤關係。 此外,您還可以從 Portfolio、Program 及 Feature 小組層級檢視工作進度。

將功能和劇本分別對應至 Epic 和功能

Program 小組可以使用對應窗格將功能對應至 Epic。 Feature 小組也可以如法炮製,將他們的劇本對應至功能。

將功能對應至 epics

Portfolio 小組的進度檢視

若要追蹤各個發行版本的 Epic 進度,Portfolio 小組的待處理項目可顯示 Epic。 每個 Epic 都可展開,顯示可支援 Epic 的功能和使用者劇本。

Epics、功能和劇本的階層架構

Portfolio 小組也可以在看板上檢視 Epic 的進度。

Epic 看板

Portfolio 小組的進度檢視

與 Release Train 關係最緊密的 Program 小組則可以從待處理項目中查看功能,以及與功能相關聯的 PI。

功能和劇本的計劃小組待處理項目

如同 Portfolio 小組一樣,Program 小組也可以切換檢視,查看功能所支援的 Epic 及/或支援其功能的使用者劇本。

Program 小組也可以採用另一種檢視方式,查看以查詢為基礎所製成的 Release Train 進度圖形、待處理項目或出貨衝刺期間正在執行的工作。 各小組都能使用可自訂首頁的檢視。

首頁,小組的最愛

由於 Program 小組的工作泰半必須仰賴 PI 和 Release Train,因此若能自訂報表,使其顯示排定出貨日期和特定 Train 上預計裝載的項目,將會是相當實用的設計。 此外,如果您的 TFS 部署項目包含與 SQL Server Reporting Services 或 Project Server 整合,您可以善加利用這些服務所提供的豐富報表選項和內建報表。

Feature 小組的進度檢視

各 Feature 小組的待處理項目檢視會顯示他們正在處理的劇本。

移轉劇本的功能小組待處理項目

由於 Epic 或功能都不屬於 Feature 小組所有,因此 Epic 和功能都不會出現在 Feature 小組的小組層級待處理項目檢視中。 不過,如果小組想知道其劇本所支援的 Epic 和功能,可以從待處理項目中開啟這些檢視。

將劇本的 eam 待處理項目移轉到 epics

他們也可以將工作細分成更多工作,並利用工作面板維持其於特定衝刺期間的進度。

移轉小組衝刺 3 工作面板

創新與規劃 (IP) 衝刺期間,當 Feature 小組密切合作以穩定某排定發行版本中的各項功能時,查詢的圖表檢視就會非常實用。

Bug 圖表

至於其他項目,則與個別 Feature 小組一般處理的業務十分相似。 各小組可以依循平常的步調衝刺。 他們可以使用看板和工作面板追蹤進度,將工作細分成容易管理的區塊。

不過,現在他們的 Program 和 Portfolio 管理小組已能查看他們在各劇本上的進度。 管理檢視會反映他們執行的工作。

設定 TFS 以支援 SAFe

在本節中,我們會先從一個名為「Fabrikam」的專案和一個同名小組談起,接著再說明三大層級的後續結構和九個小組。 區域路徑階層架構和各小組區域路徑的設定都可支援各小組的待處理項目檢視,並在階層架構中彙總所有檢視。

階層式區域支援三種等級的 9 個小組

TFS 中的每個專案都有預設小組。 您可以額外設定其他小組,以利程式層級和 Feature 小組層級的工作執行。 此外,您也可以將預設小組重新定義為管理 Epic 的 Portfolio 小組。

如此一來,所有小組都可以管理他們自己的工作負載和優先權,同時也能清楚了解其工作對於 Portfolio 小組待處理項目所管理之 Epic 的支援情形。 在此同時,Portfolio 小組可以從他們的看板上監視待處理項目的進度、排定待處理項目中各項目的優先權,以及檢視各 Release Train 的進度。

這一切聽起來可能有點複雜,但其實不需耗費什麼心力設定,即可建立小組並開始使用。

我們先以一個專案為例,搭配一個預設小組、區域和些許反覆項目加以說明。 首先,我們會設定區域,以支援我們想要的小組階層架構。 接著我們會確定,反覆項目路徑可支援我們想要的發行版本結構,以及我們準備使用的 Program 和 Feature 小組。 最後,我們會建立、設定及填入小組的成員資格。

您必須成為 Project Administrators 群組的成員,才能設定及自訂 TFS。

建立區域以支援您的小組階層架構

  1. 連線至您要設定為支援 SAFe 的 Team 專案,接著使用齒輪圖示 設定圖示 開啟預設小組的管理頁面。

  2. 在 [區域] 頁面上,在最上層區域路徑下建立子層級,並使用您將建立的其中一個 Program 小組名稱為其命名。

    建立子區域

  3. 接下來,在同一個子層級上建立第二個區域,並以第二個 Program 小組名稱為其命名。

  4. 在每個程式區域中,為即將支援各 Program 小組的每一個 Feature 小組建立子區域。 最後應該會有 3 個層級區域路徑階層架構。

    區域頁面,9 個定義的區域路徑

建立反覆項目以支援您的 Release Train 和衝刺

若要追蹤各發行版本的進度,請建立反覆項目路徑結構。 與區域路徑不同的是,多個小組可以共用相同的反覆項目路徑結構。 共用反覆項目結構可讓多個小組針對相同的 Release Train 採取相同的衝刺步調。

如果您的預設小組已具備反覆項目,您可以分別重新命名。 建議您建立足以支援整個小組結構的反覆項目結構,而非僅支援一個小組。

  1. 在使用與專案相同名稱的預設反覆項目下,建立子反覆項目,以代表您的第一個 Program Increment (PI)。 您也可以選擇新增 PI 的開始和結束日期,但是請記住,這樣會將反覆項目進一步細分成更多衝刺。

    建立反覆項目

  2. 接下來,為 PI 內的每個衝刺建立子反覆項目。 設定這些衝刺的日期,使其符合 Feature 小組的工作步調。

    反覆項目頁面,建立 IP 衝刺反覆項目

建立及設定您的小組

在本節中,我們將設定階層式小組結構,使其對應至我們先前建立的階層式區域路徑。

這個結構會將下列 SAFe 小組對應至 TFS 小組:

  • Portfolio 小組 -> 預設最上層小組,即 Fabrikam 小組

  • Program 小組 -> 次要層級小組,即 Fiber Suite 和 Service Suite

  • Feature 小組 -> Fiber Suite 和Service Suite 底下所定義的第三層級小組。

若需要更詳細的指引,請參閱 Agile Portfolio 管理:使用 TFS 支援跨多個小組的待處理項目

您必須是 TFS 的專案系統管理員才能執行這些步驟。

建立及設定各個 Program 小組

  1. 在 Team 專案的 [概觀] 頁面中建立新的小組。 確定您已清除 [用小組的名稱建立區域路徑] 核取方塊。

    建立小組

  2. 從清單中選擇小組,移至 [區域] 頁面,然後找到您先前為該小組建立的區域路徑並選取旁邊的核取方塊。

    區域頁面,計劃小組,設定 dfault 區域

  3. 使用內容功能表來排除子區域。 排除子區域後,小組的待處理項目中只會包含區域路徑與小組預設區域路徑相符的項目。

    計劃小組的區域頁面,排除子區域

  4. 接著,設定可供 Program 小組使用的反覆項目。 在此範例中,我們已設定三個 PI,每個 PI 都具有各為期兩週的五個衝刺。 其中四個衝刺只是一般衝刺,而最後一個衝刺則是創新與規劃 (IP) 衝刺。

    反覆項目頁面,計劃小組

      

    由於 Fiber Suite Program 小組涉及 Release Train,因此我們選擇 PI 1、PI 2 和 PI 3,但不選擇個別的衝刺。

  5. 選取供小組使用的反覆項目後,即可在新的小組中新增使用者。 理想情況下,您應在 Program 小組 (例如 Fiber Suite) 中新增各 Feature 小組的 Scrum Master、產品擁有者,以及 Release Train 工程師 (RTE)。

    ?撠??

  6. 如果您的程式層級具有多個小組,請對各個 Program 小組重複步驟 1 到步驟 5 的程序。

建立及設定各個 Feature 小組

接下來,我們要建立部分 Feature 小組,以完成小組階層架構第三層級的設定程序。 每個 Feature 小組將繼續衝刺工作,完成的工作會彙總至 PI。 您建立的小組數量必須視貴組織的規模而定。

  1. 從原始小組的管理頁面建立新的小組,並為小組命名。 如前所述,請確定您已清除 [用小組的名稱建立區域路徑] 旁的核取方塊。

    建立新的小組

  2. 從清單中選擇小組,移至 [區域] 頁面,然後找到您先前為該小組建立的區域路徑並選取旁邊的核取方塊。

    設定移轉功能小組的預設區域路徑

  3. 使用 PI 以及您稍早建立的衝刺來設定小組的反覆項目。 與 Program 小組不同的是,這次請選取個別的衝刺,做為 Feature 小組的工作反覆項目。

    移轉小組反覆項目

  4. 新增開發人員和測試人員帳戶以及供小組使用的 Scrum Master。 TFS 支援指派相同 Scrum Master 給多個小組。 Scrum Master 可以跨多個小組追蹤工作。

    移轉小組成員

  5. 為貴組織中的每個 Feature 小組重複執行步驟 1 到步驟 4。 請確定您為小組所設定的預設區域路徑是其所對應程式層級區域路徑底下的子區域路徑。 這可確保工作順利從 Feature 小組彙總至 Program 小組。

設定 Portfolio 小組

既然您的子小組結構已設定完成,接著必須將預設小組重新設定為 Portfolio 小組。 雖然這個小組將持續保有專案的名稱,但您對此最上層小組所做的變更,將有助於確保其在最高層級有效追蹤所有 PI 的 Epic。

  1. 在 Team 專案的 [區域] 頁面上變更設定,以便排除子區域。 請確定您選擇的是 Team 專案而非預設小組 Fabrikam。

    Portfolio 小組的區域頁面,排除子區域

  2. 在反覆項目頁面上,除了根層級的核取方塊無法清除之外,請清除所有反覆項目旁邊的核取方塊。 由於 Portfolio 小組只涉及跨 PI 的 Epic,因此只會使用根反覆項目而非 PI 或衝刺。 Portfolio 小組不在衝刺中工作。

    反覆項目頁面,Portfolio 小組

  3. 根據此層級的適用狀況,適度在 Portfolio 小組中新增及移除使用者。 從 [概觀] 頁面中選擇預設小組。

    概觀索引標籤,選擇預設小組

       

    考慮在此層級新增其他人物代表,例如產品組合經理、企業級架構設計人員以及 Release Train 工程師 (RTE),並且移除其他人。

    概觀頁面,Portfolio 小組成員

自訂 TFS 程序以支援 SAFe

在本節中,我們會將 Epic WIT 新增至 Portfolio 待處理項目階層架構。 我們也會在所有三個待處理項目 WIT 中 新增需求類型欄位。 同時,我們會建立一些 Epic 並將功能與 Epic 對應。

自訂 TFS 待處理項目物件

如果您更想了解新增 Epic 待處理項目層級後的運作方式,請立即前往了解詳情。 此外,如果您不希望親自執行本節概述的自訂步驟,ALM Ranger 上有部落格文章提供 PowerShell 指令碼範例,示範如何在您的專案上安裝這些自訂項目。

將 Epic 新增至 Portfolio 待處理項目

如前所述,您必須加入 Project Administrators 群組才能執行這些步驟。

首先,我們將匯出現有的 WIT 並用以建立新的 WIT,接著將其命名為 Epic。 我們也會新增需求類型欄位,以追蹤其 Epic 類型,亦即 Architecture 或 Business 等類型。 接下來,我們會新增 Epic 類別。 接著,我們會修改現有 WIT (亦即功能和使用者劇本,部分 WIT 可能並非如此命名),加入需求類型欄位。 需求類型欄位會追蹤每個工作項目支援的目標類型。 最後,我們會將 Epic 新增至 Portfolio 小組待處理項目。

新增 Epic WIT

建立 WIT 最簡單的方法是複製現有的工作項目類型,重新命名後加以編輯。

我們將匯出 Feature WIT,用以做為 Epic WIT 的基礎。

  1. 在系統管理員模式中,開啟命令提示字元視窗。 將目錄位置變更為您安裝 Visual Studio (或 Team Explorer) 的位置。

    cd %programfiles%\Microsoft Visual Studio 12.0\Common7\IDE

    在 64 位元版本的 Windows 上,使用 %programfiles(x86)%。

  2. 使用 witadmin 工具下載 Feature WIT 定義,並儲存為 Epic.xml 格式。

    witadmin exportwitd /collection:"http://ServerName:8080/tfs/CollectionName" /p:"ProjectName" /n:Feature /f:"DirectoryPath/Epic.xml"

  3. 開啟 Epic.xml 檔案,以 <WORKITEMTYPE name="Epic"> 取代 <WORKITEMTYPE name="Feature">,並更新說明內容。

    <witd:WITD application="Work item type editor" version="1.0" xmlns:witd="http://schemas.microsoft.com/VisualStudio/2008/workitemtracking/typedef">
    <WORKITEMTYPE name="Epic">
       <DESCRIPTION>Tracks an Epic that will span Releases. </DESCRIPTION>
    
  4. 編輯 <Tab Label="Implementation">,若是 CMMI 則改編輯 <Tab Label="Requirements"> 區段,以 <Filter WorkItemType="Feature" /> 取代下列幾行。

    • Agile:<Filter WorkItemType="User Story" />

    • Scrum:<Filter WorkItemType="Product Backlog Item" />

    • CMMI:<Filter WorkItemType="Requirement" />

      進行這項變更會限制連結控制,支援 Feature 做為 Epic 的子工作項目。

    <Tab Label="Implementation">
       <Control Type="LinksControl" Name="Hierarchy" Label="" LabelPosition="Top">
          <LinksControlOptions>
              <WorkItemLinkFilters FilterType="include">
                 <Filter LinkType="System.LinkTypes.Hierarchy" FilterOn="forwardname" />
              </WorkItemLinkFilters>
              <WorkItemTypeFilters FilterType="include">
                 <Filter WorkItemType="Feature" />
              </WorkItemTypeFilters>
              <ExternalLinkFilters FilterType="excludeAll" />
              <LinkColumns>
                 <LinkColumn RefName="System.ID" />
                 <LinkColumn RefName="System.Title" />
                 <LinkColumn RefName="System.AssignedTo" />
                 <LinkColumn RefName="System.State" />
                 <LinkColumn LinkAttribute="System.Links.Comment" />
              </LinkColumns>
           </LinksControlOptions>
    
  5. 將需求類型欄位新增至 Epic WIT 定義。 對此,我們將借用現有欄位 (原先為了支援 CMMI 專案所建立的欄位,但在這裡也一樣有用)Microsoft.VSTS.CMMI.RequirementType,將其新增至 Epic FIELDS 區段。

    找到 FIELDS 區段,並新增下列程式碼:

    <FIELD name="Requirement Type" refname="Microsoft.VSTS.CMMI.RequirementType" type="String" reportable="dimension">
       <REQUIRED />
       <ALLOWEDVALUES>
          <LISTITEM value="Architecture" />
          <LISTITEM value="Business" />
       </ALLOWEDVALUES>
       <DEFAULT from="value" value="Business" />
       <HELPTEXT>Indicates whether this supports business or architectural objectives.</HELPTEXT>
    </FIELD>
    
  6. 接著,將欄位新增至表單。 在 FORM 區段底下,新增任何您認為最適合貴公司使用的欄位。 在以下範例中,我們已在反覆項目欄位底下新增需要的欄位。

    <Group Label="Classification">
       <Column PercentWidth="100">
          <Control FieldName="System.AreaPath" Type="WorkItemClassificationControl" Label="&amp;Area" LabelPosition="Left" />
          <Control FieldName="System.IterationPath" Type="WorkItemClassificationControl" Label="Ite&amp;ration" LabelPosition="Left" />
          <Control FieldName="Microsoft.VSTS.CMMI.RequirementType" Type="FieldControl" Label="Type" LabelPosition="Left" />
    
  7. 儲存後匯入檔案。

    witadmin importwitd /collection:"http://ServerName:8080/tfs/CollectionName" /p:"ProjectName" /f:"DirectoryPath/Epic.xml"

新增 Epic 類別

現在我們已經擁有 Epic WIT,接著我們將新增 Epic 類別。 TFS 會根據類別管理待處理項目。

  1. 將分類定義匯出至 XML 檔案。

    witadmin exportcategories /collection:"http://ServerName:8080/tfs/CollectionName" /p:"ProjectName" /f:"DirectoryPath/categories.xml"

  2. 開啟檔案並新增 Epic 類別。 您可以選擇使用貴公司名稱取代 Microsoft,表示這是您自訂的項目 。

    <CATEGORY name="Epic Category" refname="Microsoft.EpicCategory">
       <DEFAULTWORKITEMTYPE name="Epic" />
    </CATEGORY>
    
  3. 如同前述步驟一樣,匯入檔案。

    witadmin importcategories /collection:"http://ServerName:8080/tfs/CollectionName" /p:"ProjectName" /f:"DirectoryPath/categories.xml"

新增即將用以追蹤 Business/Architecture 工作的需求類型欄位

接下來,我們將為功能及第三層級的待處理項目 (可能是使用者劇本、產品待處理項目或選擇性的 Bug) 新增需求類型欄位。 您不需要將需求類型欄位新增至需求,因為這已包含在預設的 CMMI 定義內。

  1. 匯出 Feature WIT 定義。

    witadmin exportwitd /collection:"http://ServerName:8080/tfs/CollectionName" /p:"ProjectName" /n:Feature /f:"DirectoryPath/Feature.xml"

  2. 新增需求類型欄位,就像先前為 Epic WIT 所執行的步驟一樣。 找到 FIELDS 區段,並新增下列程式碼:

    <FIELD name="Requirement Type" refname="Microsoft.VSTS.CMMI.RequirementType" type="String" reportable="dimension">
        <REQUIRED />
        <ALLOWEDVALUES>
            <LISTITEM value="Architecture" />
            <LISTITEM value="Business" />
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="Business" />
         <HELPTEXT>Indicates whether this supports business or architectural objectives</HELPTEXT>
    </FIELD>
    
  3. 將欄位新增至表單中,位置與之前新增至 Epic 時的位置相同。 例如:

    <Group Label="Classification">
       <Column PercentWidth="100">
          <Control FieldName="System.AreaPath" Type="WorkItemClassificationControl" Label="&amp;Area" LabelPosition="Left" />
          <Control FieldName="System.IterationPath" Type="WorkItemClassificationControl" Label="Ite&amp;ration" LabelPosition="Left" />
          <Control FieldName="Microsoft.VSTS.CMMI.RequirementType" Type="FieldControl" Label="Type" LabelPosition="Left" />
    </Column>
    
  4. 儲存後匯入檔案。

    witadmin importwitd /collection:"http://ServerName:8080/tfs/CollectionName" /p:"ProjectName" /f:"DirectoryPath/Feature.xml"

  5. 對使用者劇本及產品待處理項目 WIT 定義重複執行步驟 1 到步驟 4。 若您想要追蹤 Bug 支援的需求,或是追蹤您待處理項目上的 Bug,也可以選擇編輯 Bug WIT 定義。

將 Epic 類別新增至 Portfolio 待處理項目階層

接下來,我們要將 Epic 新增至構成待處理項目的工作項目階層。

  1. 匯出流程設定 XML 定義檔案。

    witadmin exportprocessconfig /collection:"http://ServerName:8080/tfs/CollectionName" /p:"ProjectName" /f:"DirectoryPath/ProcessConfiguration.xml"

  2. 開啟檔案,並在 PortfolioBacklogs 區段中新增 Epic 的 PortfolioBacklog 區段。 在此同時,修改 FeatureCategory 的 PortfolioBacklog 元素,使 Epic 成為功能的上層。

    根據您的流程範本,視需要修改轉移狀態對應。 下列範例可支援 Agile 和 CMMI 專案。 此外,將需求類型欄位新增至 Columns 區段。

    <PortfolioBacklogs>
      <PortfolioBacklog category="Microsoft.EpicCategory" pluralName="Epics" singularName="Epic">
          <States>
          <State value="New" type="Proposed" />
          <State value="Active" type="InProgress" />
          <State value="Resolved" type="InProgress" />
          <State value="Closed" type="Complete" />
          </States>
    <Columns>
         <Column refname="System.WorkItemType" width="100"/>
         <Column refname="System.Title" width="400"/>
         <Column refname="System.State" width="100"/>
         <Column refname="Microsoft.VSTS.Common.BusinessValue" width="50"/>
         <Column refname="Microsoft.VSTS.CMMI.RequirementType" width="100"/>
         <Column refname="System.Tags" width="200"/>
    </Columns>
        . . .
    </PortfolioBacklog>        
    

    Scrum 專案會要求您對應「新增」、「進行中」和「已完成」等工作流程狀態。 這些狀態與 Feature 產品組合待處理項目所對應的狀態相同。

            <State type="Proposed" value="New" />
            <State type="InProgress" value="In Progress" />
            <State type="Complete" value="Done" />
    

    此外,CMMI 專案也會要求您對應「已提議」、「作用中」、「已解決」以及「已關閉」等工作流程狀態。

            <State value="Proposed" type="Proposed" />
            <State value="Active" type="InProgress" />
            <State value="Resolved" type="InProgress" />
            <State value="Closed" type="Complete" /> 
    
  3. 接著,將 parent="Microsoft.EpicCategory" 新增至 PortfolioBacklog category="Microsoft.FeatureCategory"。 同時也將需求類型欄位新增至 Columns 區段。

    <PortfolioBacklog category="Microsoft.FeatureCategory" parent="Microsoft.EpicCategory" pluralName="Features" singularName="Feature">
       . . .
    <Columns>
         <Column refname="System.WorkItemType" width="100"/>
         <Column refname="System.Title" width="400"/>
         <Column refname="System.State" width="100"/>
         <Column refname="Microsoft.VSTS.Common.BusinessValue" width="50"/>
         <Column refname="Microsoft.VSTS.CMMI.RequirementType" width="100"/>
         <Column refname="System.Tags" width="200"/>
    </Columns>
        . . .
    
    </PortfolioBacklogs>
    
  4. 接著,將需求類型欄位新增至 RequirementsBacklog 區段的 Columns 區段。

    <RequirementBacklog singularname="User Story" pluralName="User Stories" category="Microsoft.RequirementCategory">
       . . .
    <Columns>
         <Column refname="System.WorkItemType" width="100"/>
         <Column refname="System.Title" width="400"/>
         <Column refname="System.State" width="100"/>
         <Column refname="Microsoft.VSTS.Scheduling.Effort" width="50"/>
         <Column refname="Microsoft.IterationPath" width="200"/>
         <Column refname="Microsoft.VSTS.CMMI.RequirementType" width="100"/>
         <Column refname="System.Tags" width="200"/>
    </Columns>
       . . .
    </RequirementBacklog>
    
  5. 將 Epic 要使用的色彩新增至 WorkItemColors 區段。 您可以選擇任何您要的色彩,但在理想的情況下,建議不要選擇系統已使用的任何色彩。

    我們已選取的色彩對應至橙色 (十六進位色彩代碼 = FF7B00)。 在十六進位色彩代碼前加上「FF」。

    <WorkItemColor primary="FFFF7B00" secondary="FFFFD7B5" name="Epic" />
    
  6. 儲存並匯入檔案。

    witadmin importprocessconfig /collection:"http://ServerName:8080/tfs/CollectionName" /p:"ProjectName" /f:"DirectoryPath/ProcessConfiguration.xml"

更新現有工作項目的區域路徑

要讓任何現有工作項目顯示在小組的待處理項目上,您必須將每個工作項目的區域路徑更新成小組的預設區域路徑。 您可以利用網頁瀏覽器的大量編輯功能,也可以使用 Excel

  1. 建立查詢,加入您想要編輯的項目,然後選取要編輯的項目,並從任何一個選取項目開啟內容功能表。

    查詢結果內容功能表

  2. 選取對應至小組預設區域路徑的區域路徑。

    編輯工作項目

  3. 大量儲存修改過的所有工作項目。

    大量儲存已編輯的工作項目

如需有關大量修改工作項目的詳細資訊,請移至這裡

加入 Epic,並將 Epic 對應至功能

既然您已知道如何新增 Epic WIT,勢必會想另外建立部分項目。 建立程序與建立任何其他待處理項目工作項目的程序相同。 在 Portfolio 小組的 Epic 待處理項目頁面中,新增 Epic 待處理項目。

Epic 待處理項目,使用快速加入面板加入 Epic

視需求新增 Epic。 若要根據重要性排列項目順序,可在清單中自由拖曳項目。

Epic 待處理項目,重新排列項目

Epic 的需求類型預設為「Business」,但您可以將任一 Epic 的預設從「Business」變更成「Architecture」。

Epic 工作項目表單

您也可以為 Epic 新增標籤,以協助您追蹤各 Epic 支援的投資主題。

Epic 工作項目表單,加入標記

現在,從看板上檢視您的 Epic。 若要取得此檢視,您需要自訂看板資料行以重新命名,並新增中繼工作流程狀態。 如需這些狀態的說明,請參閱 Business Epic 看板概述

Epic 看板

不過,現在看板上還沒有什麼值得查看的資訊。 現在還沒有工作正在進行,您也無法向下鑽研,查看哪些功能支援您的 Epic。 建議將現有的功能對應至您剛建立的 Epic,並將使用者劇本對應至這些 (尚未對應的) 功能。

如果有現有的待處理項目,請對應多個項目

使用對應窗格可讓對應工作項目的作業變得輕鬆容易。 在功能或劇本待處理項目頁面上,開啟對應窗格。 在範例中,我們選擇 Fiber Suite 小組並同時開啟對應窗格及檢視,以便查看與 Epic 對應之功能的階層架構。

將功能對應至 epics

請注意,如果您已將所有功能的區域路徑變更成合適的程式層級小組,功能清單將不會顯示任何項目,因為 Portfolio 小組不會擁有任何功能! 在此情況下,建議切換至任何一個 Program 小組。

將待處理項目中的項目拖曳至您要做為其上層的項目上。 您只能將功能與 Epic 對應。 同樣地,您也只能將第三層級的待處理項目 (可能是使用者劇本、待處理項目或需求) 對應至功能。

在每個待處理項目層級重複此流程,直到建立所要的階層架構為止。

Epics、功能和劇本的階層架構

從哪裡可以查看進行中的功能? 這些功能絕對不會顯示在 Portfolio 小組的待處理項目上。 這屬於 Program 小組的職責,因此會顯示在該小組的待處理項目中。 (事實上,這是特地為工作項目所設定的功能;只有將工作項目指派給您為小組建立的區域路徑,該項目才會顯示在該小組的待處理項目上。)您可以從那裡對應工作項目。

您也可以在 Microsoft Excel 中大量編輯工作項目和管理其階層架構。

將工作與業務或基礎架構妥善對應是 SAFe 的重要環節之一,因此建議您確認所有已對應至 Architecture Epic 的功能皆以設定為「需求類型 = Architecture」。 (由於預設的選項是 Business,因此對於支援 Business Epic 的任何項目,您並不需要為其變更類型。)您也可以新增標籤以追蹤投資情形。

相同的原則可適用於進行中的使用者劇本。 您可以將其對應至功能,並將工作的需求類型變更成 Architecture,以便支援架構上的 Epic,接著新增標籤以追蹤主題。

使用者劇本工作項目表單

資源

以下列出本白皮書提及的資源以及部分其他資料,以便您隨時參閱。

關於作者

Gordon Beeming 是 Derivco 的軟體開發人員,Derivco 位於南非陽光普照的城市 Durban 中。 他大半時間都在電腦前設法改善 Visual Studio 的運作效率,或是與家人共度休閒時光。 他的部落格網址為 31og.com,您也可以關注他的 Twitter:twitter.com/gordonbeeming。

Brian Blackman 是 Microsoft 主要開發人員的首席顧問,首要職務在於協助 ISV 合作夥伴和企業在工程和市場上成功達到目標。 他擁有商管碩士學歷,具備 CSM、CSP、MCSD (C++) 和 MCTS 等證照,同時也取得 Visual Studio ALM Ranger 資格。 當他不從事 Ruck Master 的工作並積極參與 Visual Studio ALM Ranger 專案時,他將大部分的時間投注於撰寫程式碼、籌劃及舉辦研討會,並接受各種專業問題的諮詢,尤其在協助組織追求企業靈活度方面更是不遺餘力。

Gregg Boer 是 Microsoft 的首席程式經理。 Gregg 是 TFS 中敏捷式管理經驗的產品擁有者。

Kathryn Elliott 是 Microsoft 的資深技術作家。

Susan Ferrell 身兼資深技術作家以及 Visual Studio ALM Ranger。

Willy-peter Schaub 具備 Visual Studio ALM Ranger 資格,並於 Microsoft 加拿大開發中心擔任程式經理。 自 80 年代中期開始,他就投身軟體工程產業,致力於追求軟體簡化和可維護性。 他的部落格網址為 blogs.msdn.com/b/willy-peter_schaub,您也可以關注他的 Twitter:twitter.com/wpschaub。