# Hands-on: Azure Board Workshop
- 登入 [Azure DevOps Service | where-workshop](https://dev.azure.com/where-workshop)
- 第一次登入設定使用者資料

## How DevOps Admin manage Azure DevOps Service
- **介紹組織/專案概念**
- **Organization Setting**
- User : 添加人員至組織中
- Billing + Azure DevOps Pricing:[Azure DevOps 的定價](https://azure.microsoft.com/zh-tw/pricing/details/devops/azure-devops-services/)
- Auditing : 輸出 log 資料
- Global Notification : 設定全域的通知訊息
- Azure Active Directory:連結到現有的 AAD
- **Create Project**
- Work Item Process
- [Agile](https://docs.microsoft.com/en-us/azure/devops/boards/work-items/guidance/agile-process?view=azure-devops)([User Story Field](https://docs.microsoft.com/en-us/azure/devops/boards/work-items/guidance/agile-process-workflow?view=azure-devops))
- [Scrum](https://docs.microsoft.com/en-us/azure/devops/boards/work-items/guidance/scrum-process?view=azure-devops)([PBI Field](https://docs.microsoft.com/en-us/azure/devops/boards/work-items/guidance/scrum-process-workflow?view=azure-devops ))
## 1/ 需求及專案管理
### 建立以 Scrum 為範本的新專案
- 建立新專案:**[首頁](https://dev.azure.com)** > **[+ New Project]**

- 填寫 Project Name,Visibility 選擇 **[Private]**,點開 **[Advanced]**,Work item process 選擇 **[Scrum]**

- 如出現未授權,重新整理即可

### 邀請使用者加入 Project
- 點選右上角的 **[invite]**

- 新增人員完整 email

- 被加入的人員將會收到 Azure DevOps 的邀請信,首次需透過信中的驗證連結加入
- 畫面下方會顯示成功添加使用者訊息

- 或在 Members 的欄位中會看到新添加的人員

### Feature 管理
- 在左方的 Boards 底下,點選 **[Work items]** 後選取 **[+ New Work Item]**,然後選擇 **[Feature]**

- 填寫 Feature 資訊,參考簡報中的專案,將標題填入 `公車動態`,可自行填寫底下欄位,完成後點選 **[Save]**

- 點選 **[Back to Work Items]**

- 再新增一個 Feature

- 填寫 `班次時刻表`

- 點選左邊欄位 Boards 下的 **[Boards]**,將右上角的 **[Backlog items]** 切換到 **[Features]**

- 可以看到剛剛新增的兩則功能

### Product Backlog Items (PBI) 管理
- 在 `公車動態` 的 Feature 中選取 **[...]**,選擇 **[+ Add Product Backlog Item]**

- 填寫 `即時動態查詢`

- 依照上步驟再填入`出門提醒`
- 在 `班次時刻表` 的 Featue 中依據先前步驟分別新增 PBI `時刻表查詢`和 `搭車提醒`
- 填寫完成

### Sprint 及 task 規劃
- 選擇左邊欄位中的 **[Backlogs]**

- 透過 **[+ New Work Item]** 再新增一個`DevOps Workshop` 的 PBI

- 點選右上角的拉霸圖示,選擇 Side Pane 下的 **[Planning]**

- 拖曳 `即時動態查詢` 這個 PBI 到右邊的 **[Sprint 1]**

- 點選 **[Sprint 1]** 跳轉到 Sprint 的頁面

- 點選頁面上方 **[Taskboard]**

- 可以看到變成敏捷看板的視角,並且是在 Sprint 1 這個週期中

- 在 `DevOps Workshop` PBI 的欄位點選 **[+]** 來新增以下 :
- `修改 README`
- `練習 Azure Board`
- `設置 CI/CD pipeline`

- 在 `即時動態查詢` PBI 的欄位點選 **[+]** 來新增以下 task :
- `整合公車動態即時資訊API`
- `查詢欄位`
- `動態資訊呈現頁面`
- 完成填寫

- 將 `練習 Azure Board` 拖曳到 **[In Progress]** 的欄位

- 完成狀態的變更

### 工單搜索功能
- 點選左方欄位 Boards 下的 **[Queries]**,然後點選 **[+ New query]**

- 在 Work Item Type 的地方,Value 選擇 **[Task]**

- 在 State 的地方,Value 選擇 **[In Progress]**

- 點選 **[Run query]**

- 執行後的結果會顯示目前在 project 中哪些 task 狀態為 in progress

- 點選 **[Save query]**

- 完成欄位填寫,將 **[Floder]** 選擇到 **[Shared Queries]**,點選 **[OK]** 即可儲存

## 2/ (補充) 專案團隊及週期管理

- 名詞解釋
- Team (團隊):將專案成員做分群,各別 Team 可有各自的 Area、Permission
- Area Paths(區域路徑):區域路徑可將工作專案分組,可以依據小組所需時做的工作內容不同、產品功能的規畫等做劃分,Team 在新增時可選擇是否要 default 建置 Area Path
- Iteration (迭代週期):每個 Sprint 的起始日期
- 管理專案 Team、Area 及 Iteration
- 新增 Developer、Operation、PM 團隊,`Project Setting > Teams > New Team`

- 設定專案的 iteration date
- 設定專案時間,`Project Setting > Project configuration > <Project Name> > set dates`
- 設定 Sprint 1 時間,`Project Setting > Project configuration > <Project Name> > set dates`

- 設定團隊所屬的 Iteration 及 Area
- 設定 Iteration `Project Setting > Team Configuration > <Team Name> > Iteration > Backlog iteration > <預設選項> > Set`

- 設定 Area `Project Setting > Team Configuration > <Team Name> > Iteration > Area > <預設選項> > Set`

- 管理團隊的取用權限 `Project Setting > Permission`

## 3/ (補充) Create task template
- **Design Template:Project Setting > Team Configuration > Templates**

- **透過 template 建立新的 Task**

## 4/ (補充) Customize Boards
- Customizing Kanban boards,Boars > Boards
- 新增狀態欄位 : `Settings > Board | Columns`
- 新增一個狀態在 `New` 之後為 `Pending`

- 新增泳道 : `Settings > Board | Swimlanes`

- Sprint Board 新增狀態,Boards > Sprints
- 選擇 `Column Option > + Add Column`,新增一個 Column Name 為 `Pending`,Task 為 `In Progress`

- 設定完成

<!-- - **客製化 Work item process**
- `Org Setting > Process`
- `Agile > … > Create inherited process`

- 添加新的類別工單 : `New Wrok Item Type`

- 添加 Task 工單欄位 : `Task > Layout > New Field`

- 添加 Task 工單狀態 : `Task > State > New State` -->
## Pricing
- [Stakeholder / Basic](https://docs.microsoft.com/en-us/azure/devops/organizations/security/access-levels?view=azure-devops#stakeholder-access)
## Reference
- [Agile Planning and Portfolio Management with Azure Boards](https://azuredevopslabs.com/labs/azuredevops/agile/)
- [Use templates to add and update work items](https://docs.microsoft.com/en-us/azure/devops/boards/backlogs/work-item-template?view=azure-devops&tabs=browser)