我經常在企業內訓分享 Azure Boards 的專案管理心法,它是一套極其強大的專案管理工具,只要你能突破其門檻,將可有效的掌握專案進度,大幅提昇專案透明度,同時也能減輕 PM 的工作負擔。我們在一個參與人數多達 30 人的專案時,就開始用到了 Teams 與 Areas 的功能與概念,這篇文章我就來分享 Iterations、Areas 與 Teams 這三個概念的差異之處。

TL;DR
Teams
用來定義一個到多個「團隊」,不同的團隊有不同的「專案可視範圍」與「工作流程」,你可以對不同的團隊管理不同的團隊成員,並替不同的團隊設定不同的存取權限。
建立 Azure DevOps 專案時,預設就會建立一個 Team 給你用,預設名稱為 {專案名稱} Team
。
Areas
用來定義一個專案的「工作小組」,主要用來區別不同小組之間的工作。例如我在一個專案(Project)中有一個團隊(Team),該團隊有不同的小組(Area),而不同的小組之間通常所需要負責的工作內容不盡相同,所以預設來說不太需要看到彼此的 Backlogs (Scrum) 或 Stories (Agile) 等需求描述,這時我們就可以透過 Area 來區分不同的工作項目(Work Item)。
建立 Azure DevOps 專案時,預設就會建立一個 Area 給你用,預設名稱為 {專案名稱}
。
Iterations
則是定義一個「迭代週期」,你可以定義 Iteration 的名稱與起訖時間,好讓 Azure DevOps 可以更方便的套用 Scrum 或 Agile 流程,他可以幫助 Azure Boards 在時間到期後自動將「當前週期」切換到下一個 Iteration。
建立 Azure DevOps 專案時,預設會建立 6 個 Iterations 給你用,預設名稱為 Sprint 1
~ Sprint 6
,不夠用的話自己可以自行新增。
Iterations (迭代週期)
我們使用 Azure Boards 通常都以 Scrum 或 Agile 流程為主,在敏捷流程的前提下,我們透過不斷的迭代(Iteration
)可以做到在短時間內(通常是1-4周)完成一個可交付的版本,並在每次迭代結束後與客戶(或利害關係人)進行反饋,以便對下一次迭代進行改進。透過這種方式,專案經理和團隊成員可以更好地掌握專案的進展情況,並更快地檢測和修正問題,因此好處非常的多!👍
我們在專案一開始的時候,通常會依據專案計畫,先定義好整個專案的迭代週期(Iteration)或衝刺週期(Sprint)資訊,設定的資訊包含:
- 我們預計要跑幾次迭代(Iterations)
- 每次迭代的名稱與起訖時間
我們在設定 Iteration 名稱時,不一定要設定預設的 Sprint 編號,你也可以學習我們公司 Iteration 的命名方法,發揮創意,讓專案更有趣!😆

Areas (區域小組)
Area
又稱 Area path
,當專案越來越大,參與的人越來越多時,所有人一起看所有人的 Backlogs
就會顯得過於凌亂,為了降低團隊成員的面對龐大需求的壓力,透過 Areas
便可有效率的區分不同小組的工作。
我們可以透過不同的 Areas 來篩選 PBI (Product Backlog Items),讓不同團隊的人可以看到不同的 Backlogs,如此一來專案便能進行得更加順利。

通常 Area 都會隨著 Team 一同建立,但你也可以建立多個不同的 Areas 來區分不同類型的 PBI。
Teams (工作小組)
Azure Boards 裡面的 Teams
通常與「人」有關,他代表著一群人要做某些事情,你可以想像成在一個 Azure DevOps 的專案(Project)中,可以透過團隊(Team)來區分不同的子專案,然而你可以以「團隊」為單位進行授權,讓不同「團隊」的成員可以依據「權限」設定,讓不同團隊的人看到不同的工作項目、原始碼或 Pipelines 等等。也可以讓不同的團隊之間擁有截然不同的敏捷流程設定!

About teams and Agile tools
不同的團隊之間,可以設定不同的管理者來管理各自的團隊成員,也可以設定一組 Team Image 圖像。除此之外,你也可以針對「團隊」進行細部的設定,下圖三個箭頭指向的連結,就是可以讓你用來設定「團隊」專屬的各項設定!

在建立 Team 的時候,你可以指定一個團隊名稱、選取團隊成員、決定團隊管理者是誰,也可以直接建立一個同名的 Area 起來!

因為 Team 與 Area 經常用到相同的名稱,所以很容易搞不清楚兩者的差異之處!🔥
每個團隊都可以設定不同的 Backlogs, Working days, Working with bugs

也可以設定挑選預設 Backlogs 使用的 Iteration,也可以選取現有專案的 Iteration 中的特定一個到多個 Iteration 做為該團隊需要進行的衝刺週期!

由於「人」會隸屬於特定「團隊」,而「團隊」又可以選擇「預設小組」(Default area),所以你在進行 Sprint Planning 的時候,Azure Boards 就會依據你所參與的小組所設定的 Default area 來顯示 Backlogs
,這裡就是 Azure Boards 的精華之處!也因為如此,你可以在一個 Azure DevOps 專案中,同時跑好幾個不同的 Scrum,彼此協作又不會互相干擾,超棒的!👍

最後一個可以針對「團隊」來設定的功能,就是「工作項目範本」,你可以在不同的團隊之間訂製不同的「工作項目範本」,幫助團隊成員更容易上手 Azure Boards 的工作項目建立!👍

總結
當 Azure DevOps 專案建立好之後,通常會這樣進行專案設定:
- 先定義專案要有多少團隊 (Teams),建立團隊時可以順便建立 Area
- 進入 Project configuration 規劃更完整的 Iterations 與 Areas
- 細部調整每個 Team 的 Backlogs, Iterations, Areas 與 Templates
相關連結