Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022
當您新增小組或重組現有小組時,您必須更新其區域路徑,將工作專案從一個小組轉移至另一個小組。 Azure DevOps 中的每個工作專案都會指派給區域路徑,這會決定小組擁有權,並影響工作專案在待辦專案和面板上的顯示方式。
分類在 [需求] 類別下的工作專案會根據其指派給小組區域路徑,顯示在小組待辦專案上。 同樣地,將其他工作項目指派到專案小組的區域路徑,能夠根據小組所擁有的內容進行查詢和報告。
為什麼要在小組之間移動工作專案
移動工作項目的常見情境包括:
- 團隊重組:當您的組織重組團隊或重新分配職責時
- 工作負載平衡:重新分配工作項目以平衡團隊之間的容量
- 技能對齊:將項目移動到具有適當專業知識的團隊
- 功能擁有權轉移:在功能易手時轉移擁有權
- 專案整合:將多個團隊的工作合併為單一團隊
必要條件
| 類別 | 要求 |
|---|---|
| 許可權 | - 若要檢視、追蹤和編輯工作專案:檢視此節點的工作專案, 和 在此節點中編輯工作專案, 許可權設定為 [允許]。 根據預設, 參與者 群組具有這些許可權。 如需詳細資訊,請參閱 設定工作追蹤許可權。 - 若要將標籤新增至工作專案:專案層級 [建立新的標籤定義] 權限設定為 [允許]。 根據預設, 參與者 群組具有此許可權。 |
| 存取層級 |
-
專案成員。 - 若要將新的標籤新增至工作項目或查看或關注拉取請求:至少需具備 基本 存取。 - 若要檢視或追蹤工作專案:至少 項目關係人 存取權。 如需詳細資訊,請參閱 關於存取層級。 - 所有專案成員 (包括 [讀者] 群組中的成員) 都可以傳送包含工作專案的電子郵件。 |
| 區域路徑許可權 | [檢視] 和 [編輯] 區域路徑節點下的工作專案。 如需詳細資訊,請參閱 在區域或反覆項目路徑下修改工作專案。 |
| 設定的區域路徑 | 目標小組已正確設定區域路徑。 如果沒有,請在傳輸工作專案之前設定必要的區域路徑。 |
| 一致進程模型 | 您的小組會使用相容的程式模型(繼承、託管的 XML 或內部部署 XML),以確保工作專案的順暢移動。 |
| 備份工作項目 | 建議您在執行大量移動之前備份或匯出工作專案,以防止發生錯誤時遺失資料。 |
| 工具 | 若要使用 Azure CLI 命令:Azure DevOps CLI。 |
| 類別 | 要求 |
|---|---|
| 許可權 | - 若要檢視、追蹤和編輯工作專案:檢視此節點的工作專案, 和 在此節點中編輯工作專案, 許可權設定為 [允許]。 根據預設, 參與者 群組具有這些許可權。 如需詳細資訊,請參閱 設定工作追蹤許可權。 - 若要將標籤新增至工作專案:專案層級 [建立新的標籤定義] 權限設定為 [允許]。 根據預設, 參與者 群組具有此許可權。 |
| 存取層級 |
-
專案成員。 - 若要將新的標籤新增至工作項目或查看或關注拉取請求:至少需具備 基本 存取。 - 若要檢視或追蹤工作專案:至少 項目關係人 存取權。 如需詳細資訊,請參閱 關於存取層級。 - 所有專案成員 (包括 [讀者] 群組中的成員) 都可以傳送包含工作專案的電子郵件。 |
| 區域路徑許可權 | 在 區域路徑 節點下 [檢視 和 編輯] 工作專案。 如需詳細資訊,請參閱 在區域或反覆項目路徑下修改工作專案。 |
使用網頁入口網站移動工作項目
在小組之間移動多個工作專案的最有效方式是透過入口網站中的大量編輯。
步驟 1:建立查詢以識別工作專案
建立查詢以尋找您想要移至新小組的所有工作專案:
- 導航至 Boards>查詢>新增查詢
- 定義查詢準則以識別工作專案,例如:
- 區域路徑 = 目前團隊的區域路徑
- 工作專案類型 = 使用者劇本 (或其他相關類型)
- 狀態 = 作用中 (或其他相關狀態)
- 執行查詢以確認它傳回正確的工作專案
- 儲存查詢以供日後參考
第 2 步:批量編輯區域路徑
若要將工作專案移至新的小組:
選取屬於每個團隊的項目,並 批次編輯區域路徑。
在大量編輯對話方塊中:
- 從欄位下拉式清單中選取區域路徑
- 選擇目標隊伍的區域路徑
- 選擇性地更新其他欄位,例如指派給或疊代路徑
大量修改項目後,請批量儲存它們。
步驟 3:驗證移動
儲存之後,請確認工作專案現在會出現在目標小組的待辦專案中:
- 流覽至目標小組的待辦專案
- 確認移動的工作專案出現在正確的待辦專案中
- 檢查 [區域路徑] 欄位是否反映新的小組指派
使用 Azure CLI 移動工作專案
您可以使用 az boards work-item update 藉由更新其區域路徑來移動單一工作專案。
az boards work-item update --id
[--area]
[--assigned-to]
[--description]
[--discussion]
[--fields]
[--iteration]
[--open]
[--reason]
[--state]
[--title]
參數
- id:必要。 要更新之工作項目的標識碼。
- 區域:選擇性。 區域的絕對路徑。 範例:--area “\ProjectName\Area\AreaName”。
- assigned-to:選擇性。 工作專案指派給的人員名稱,例如 “Jamal”。
- 描述:選擇性。 工作專案的描述。
- 討論:選擇性。 新增至工作項目討論中的評論。
- 欄位:選擇性。 您要設定之自訂欄位的空間分隔 「field=value」 組。
- 反覆運算:選擇性。 迭代的絕對路徑。 範例:「\ProjectName\Iteration\IterationName」。
- open:選擇性。 在預設網頁瀏覽器中開啟工作專案。
- reason:選擇性。 工作項目狀態的原因。
- state:選擇性。 工作專案的狀態,例如「作用中」。
- title:選擇性。 工作項目的標題。
範例
您一次只能使用 Azure DevOps CLI 移動一個工作專案。 在此範例中,我們會將工作專案識別碼=148移到Fabrikam Fiber\Production Planning區域路徑下。
az boards work-item update --id 148 --area "Fabrikam Fiber\Production Planning" --output yaml
下列 YAML 輸出提供針對工作項目所定義之每個欄位的資訊。
fields:
Microsoft.VSTS.Common.Priority: 2
Microsoft.VSTS.Common.StackRank: 1500000001.0
Microsoft.VSTS.Common.StateChangeDate: '2021-11-23T22:26:28.27Z'
Microsoft.VSTS.Common.ValueArea: Business
System.AreaPath: Fabrikam Fiber\Production Planning
System.AssignedTo:
_links:
avatar:
href: https://fabrikamprime.visualstudio.com/_apis/GraphProfile/MemberAvatars/aad.NDEwY2FkMDQtOWQyOS03NDFlLTk2MmEtNGZlYmU2NGE1NTM4
descriptor: aad.NDEwY2FkMDQtOWQyOS03NDFlLTk2MmEtNGZlYmU2NGE1NTM4
displayName: Jamal Hartnett
id: d291b0c4-a05c-4ea6-8df1-4b41d5f39eff
imageUrl: https://fabrikamprime.visualstudio.com/_apis/GraphProfile/MemberAvatars/aad.NDEwY2FkMDQtOWQyOS03NDFlLTk2MmEtNGZlYmU2NGE1NTM4
uniqueName: fabrikamfiber4@hotmail.com
url: https://spsprodeus27.vssps.visualstudio.com/A5d5b8da6-3db7-4829-baf9-1e500c21cc12/_apis/Identities/d291b0c4-a05c-4ea6-8df1-4b41d5f39eff
System.BoardColumn: Backlog
System.ChangedBy:
_links:
avatar:
href: https://fabrikamprime.visualstudio.com/_apis/GraphProfile/MemberAvatars/aad.NDEwY2FkMDQtOWQyOS03NDFlLTk2MmEtNGZlYmU2NGE1NTM4
descriptor: aad.NDEwY2FkMDQtOWQyOS03NDFlLTk2MmEtNGZlYmU2NGE1NTM4
displayName: Jamal Hartnett
id: d291b0c4-a05c-4ea6-8df1-4b41d5f39eff
imageUrl: https://fabrikamprime.visualstudio.com/_apis/GraphProfile/MemberAvatars/aad.NDEwY2FkMDQtOWQyOS03NDFlLTk2MmEtNGZlYmU2NGE1NTM4
uniqueName: fabrikamfiber4@hotmail.com
url: https://spsprodeus27.vssps.visualstudio.com/A5d5b8da6-3db7-4829-baf9-1e500c21cc12/_apis/Identities/d291b0c4-a05c-4ea6-8df1-4b41d5f39eff
System.ChangedDate: '2022-05-19T22:58:52.93Z'
System.CommentCount: 0
System.CreatedBy:
_links:
avatar:
href: https://fabrikamprime.visualstudio.com/_apis/GraphProfile/MemberAvatars/aad.NDEwY2FkMDQtOWQyOS03NDFlLTk2MmEtNGZlYmU2NGE1NTM4
descriptor: aad.NDEwY2FkMDQtOWQyOS03NDFlLTk2MmEtNGZlYmU2NGE1NTM4
displayName: Jamal Hartnett
id: d291b0c4-a05c-4ea6-8df1-4b41d5f39eff
imageUrl: https://fabrikamprime.visualstudio.com/_apis/GraphProfile/MemberAvatars/aad.NDEwY2FkMDQtOWQyOS03NDFlLTk2MmEtNGZlYmU2NGE1NTM4
uniqueName: fabrikamfiber4@hotmail.com
url: https://spsprodeus27.vssps.visualstudio.com/A5d5b8da6-3db7-4829-baf9-1e500c21cc12/_apis/Identities/d291b0c4-a05c-4ea6-8df1-4b41d5f39eff
System.CreatedDate: '2021-11-23T22:26:28.27Z'
System.Description: <div>This user story is for documentation purposes. </div>
System.IterationPath: Fabrikam Fiber\Release 2\Sprint 1
System.Reason: New
System.State: New
System.TeamProject: Fabrikam Fiber
System.Title: Test the Request feedback functionality
System.WorkItemType: User Story
WEF_10182DA5BCCD4CE2A43629FFBD290EF2_Kanban.Column: Backlog
id: 148
relations:
- attributes:
isLocked: false
name: Child
rel: System.LinkTypes.Hierarchy-Forward
url: https://fabrikamprime.visualstudio.com/854a3f67-9962-43d1-a968-2e5f2eb66c99/_apis/wit/workItems/152
- attributes:
isLocked: false
name: Child
rel: System.LinkTypes.Hierarchy-Forward
url: https://fabrikamprime.visualstudio.com/854a3f67-9962-43d1-a968-2e5f2eb66c99/_apis/wit/workItems/153
- attributes:
isLocked: false
name: Child
rel: System.LinkTypes.Hierarchy-Forward
url: https://fabrikamprime.visualstudio.com/854a3f67-9962-43d1-a968-2e5f2eb66c99/_apis/wit/workItems/151
- attributes:
isLocked: false
name: Child
rel: System.LinkTypes.Hierarchy-Forward
url: https://fabrikamprime.visualstudio.com/854a3f67-9962-43d1-a968-2e5f2eb66c99/_apis/wit/workItems/149
rev: 5
url: https://fabrikamprime.visualstudio.com/854a3f67-9962-43d1-a968-2e5f2eb66c99/_apis/wit/workItems/148
使用 Azure CLI 批量移動
若要使用 Azure CLI 移動多個工作專案,您必須編寫多個個別更新的腳本。 以下是範例 PowerShell 腳本模式:
# Example: Move multiple work items to a new area path
$workItemIds = @(148, 149, 150, 151)
$newAreaPath = "Fabrikam Fiber\Production Planning"
foreach ($id in $workItemIds) {
az boards work-item update --id $id --area $newAreaPath
Write-Host "Moved work item $id to $newAreaPath"
}
移動工作專案的最佳做法
在小組之間移動工作專案時,請考慮下列指導方針:
規劃搬遷
- 通訊:在移動工作專案之前通知受影響的小組成員
- 時間:在衝刺邊界期間移動項目以最大程度地減少干擾
- 相依性:在移動之前檢查工作專案之間的相依性
- 產能:確保目標團隊有能力完成額外的工作
移動期間
- 批次處理:將相關工作項目移動在一起以維護上下文
- 保留歷史記錄:移動項目會保留其歷史記錄和關係
- 更新指派:考慮將工作專案重新指派給目標小組的成員
- 檢閱反覆專案:如果小組使用不同的短期衝刺排程,請更新反覆專案路徑
移動之後
- 驗證可見度:確認工作專案出現在正確的小組待辦專案上
- 更新文件:更新任何參考移動項目的團隊文件
- 審查報告: 檢查團隊報告和儀表板是否反映更改
- 跟進: 確保團隊成員了解轉移的工作
疑難排解和驗證
將工作專案從一個小組移至另一個小組之後,如果您沒有看到工作專案,請遵循下列步驟:
常見問題和解決方案
| 問題 | Solution |
|---|---|
| 工作專案不會出現在待辦專案上 | 確認區域路徑與小組設定的區域路徑相符 |
| 移動期間的權限錯誤 | 檢查您是否具有來源和目標區域路徑的編輯權限 |
| 衝刺中缺少工作項目 | 更新反覆專案路徑,以符合目標小組的短期衝刺排程 |
| 用以隱藏工作專案的篩選器 | 檢閱待辦專案篩選和工作專案類型設定 |
驗證步驟
- 重新整理:重新整理面板,或如果新增的工作專案未出現,選取 顯示更多專案。
- 驗證小組:檢查您是否選取了正確的小組,以確保專案出現在待辦專案上。
- 確認區域路徑:確認已移動的工作專案指派給符合小組待辦要求的正確區域路徑。 每個小組都有特定的區域路徑,可決定哪些工作項目會顯示在其待辦專案上。 此驗證對於確保待辦事項的可見性至關重要。
- 確認工作迭代路徑:檢查短衝刺迭代路徑。 短衝待辦清單只會顯示分配給所選短衝的迭代路徑的工作項目。
- 驗證工作專案類型和篩選:檢閱待辦專案篩選,並確定工作專案類型具有正確的分類,以顯示所有相關專案。
如需詳細資訊,請參閱 建立待辦專案。
大規模搬遷的注意事項
移動許多工作專案或重組多個小組時:
規劃考量
- 影響評估:分析哪些報表、儀表板和查詢將受到影響
- 變更管理:為受影響的利害關係人制定溝通計劃
- 還原計劃:準備一個計劃,以便在出現問題時撤回更動
- 測試:先使用一小部分工作專案來測試移轉流程
執行策略
- 階段式方法:分階段移動工作專案,而不是一次全部移動
- 非工作時間執行:在低活動量時段執行大型操作
- 監控:觀察大量操作期間的效能影響
- 驗證:在繼續下一個階段之前驗證每個階段
替代方法
改為移轉小組而非工作專案
有時候,重新設定小組區域路徑比移動個別工作專案更有效率:
- 當小組的大部分工作項目需要移動時
- 當重組區域路徑在組織上更有意義時
- 當工作項目的數量非常大時
使用查詢進行漸進轉換
建立查詢以逐步轉換工作專案:
- 依建立日期篩選,以先移動較新的專案
- 使用工作專案狀態來個別移動已完成的專案
- 依工作項目類型分組以進行系統化過渡