リモートスクラムでも使えるAzure DevOps(Boards)の活用事例

# はじめに
## リモートでのスクラムは通常の３倍大変

スクラムに限らずですが、フルリモートでの開発はコミュニケーションが疎になりやすく、心理的安全性を保ちながらの開発は難しいのが開発を難しくする要因の1つだと感じています。そのため、都度、情報を共有しながら**楽しく**開発を進めるHubとしてAzure DevOpsを活用することにしました。

## 前提
Azure DevOpsのWork item prosessは`スクラム(scrum)`を使っています。

# 使っているツールやTips
## 現在のダッシュボードの紹介
![dashboard.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/bfb95f54-111a-452b-9da4-2cf44fc17daf.png)

### 使っているwidget
#### Azure DevOps - Sprint Goal
![Sprint Goal.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/8ae72f22-5938-c3fc-3c1c-60f893781482.png)
[こちら](https://marketplace.visualstudio.com/items?itemName=keesschollaart.sprint-goal)から入手可能です。各スプリント単位でスプリントゴールを設定することができます。また、設定したスプリントゴールはダッシュボードに設定することもできます。
常にダッシュボードの一番目立つところに表示することで、Daily Scrumの時などにも意識しやすくなるのでオススメです。

#### Sprint Capacity
![capacity.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/86a69deb-b401-e5e8-3b2a-d4def0c3941b.png)

こちらはデフォルトで利用可能です。チームのキャパシティに対して、どれくらいのタスクが残っているのかをPBIや残り時間単位で見やすく表示してくれます。

#### Sprint Burndown
![burndown.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/077e0a0d-9932-b16d-058d-ccd2ecfdcebd.png)
おなじみのバーンダウンチャートです。デフォルトでは`Burndown`もあるのですが、表示するイテレーションを自動で現在のスプリントにしてくれるので、`Sprint Burndown`を使っています。
私のプロジェクトでは、`Remaining Works`（残り作業時間)単位で見るようにしていますが、PBI単位でのバーンダウンも可能です。上記での`Total Scope Increase`は、**スプリントが始まってから**`Remaining Works`が消化された時間数の合計となります。これで、作業の進み具合をみんなで共有することができますね。
詳細は[こちら](https://docs.microsoft.com/en-us/azure/devops/report/dashboards/configure-sprint-burndown?view=azure-devops&tabs=remaining-work%2Cmay)

#### Velocity
![velocity.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/34899602-bb92-47ee-84a4-874c76c9011a.png)

Velocityを表示できる機能です。画像では3スプリント分のEffort(Story Pointとして見積もった数字)の平均が出ていますが、幾つのイテレーションの平均をとるかは自分で設定が可能です。左側の水色がプランニングでやると決まったPBI数。これに対して濃い緑が対象のスプリント内で完了したものです。これで、どれくらいのPBIが１スプリントの中で消化できたかわかります。黄緑色の部分は、該当のスプリントでは終わらなかったものの、それ以降のスプリントで完了になったものです。スプリント完了時に濃い緑の割合が100%になるようにチームが動けると良いと思います。
詳細は[こちら](https://docs.microsoft.com/en-us/azure/devops/report/dashboards/team-velocity?view=azure-devops)

#### Markdown
![markdown.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/1dab9726-4825-4b2d-700b-27d6d9eade70.png)
これは読んで字の如くですね。Dashboardに好きな内容を書いておけます。当チームの場合は、チーム内の約束事なんかを書いて、いつでも見られるようにしています。wikiにすると、見なくなる可能性がありますがダッシュボードにあると、意識もしやすくて良いですね。

#### Query Results
自分で作ったクエリを使ってダッシュボードに表示することができます。今は下記の3つを使っています。

##### Impediment List(妨害リスト)
スクラムマスターが管理している妨害リストを表示しています。このようにwork item typeとstateで抽出するだけです。
![impediment List.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/e63c0d75-f4ad-74bc-eb97-a4e5a1e440c8.png)

##### Unplanned Task(プランニングで洗い出せなかったタスク)
こちらは、TaskにUnplannedと言う項目を追加しています。なぜ、洗い出せなかったかをレトロスペクティブで振り返って、見積もりの精度向上に役立てることが目的です。
![unplanned.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/b665f873-17c5-e2ad-a342-3ba9df9b81d0.png)

##### Differ From Original Estimate(当初見積もりと実際かかった時間が異なったタスク)
通常のScrumTaskには、元々の見積もりやかかった時間を入れる箇所がないので、下記の項目を追加しています。

* Original Estimate(元々の見積もり時間)
* Completed work(実際にかかった時間)
 
これをスプリント単位で見返すことで、次回の見積もりの精度向上に役立てるようにしています。
![Diff.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/41216ce8-2b20-a97d-3778-f90ae80e90c6.png)

##### その他
他にも差込タスク(当プロジェクト以外で発生したCapacityに影響した作業)も登録したりしています。これもレトロで振り返るための情報として大事にしています。(他プロジェクトによる影響などがあればスクラムマスターが調整などを行う必要があるので)

## 便利なExtension
下記のエクステンションを使っています。
### Estimate(プランニングポーカー用ツール)

プランニングポーカーをオンラインで行うことができるツールです。私たちはPBIに対してのEffortを見積もるために使っていますが、他のWork Item typeでも利用可能です。リアルタイムに他の人の投票なども反映されるので、リモートでも面白味があって非常に良いです:+1:

![estimate sc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/5814f26b-3f78-7e25-1a64-cfbd0091bfb7.png)


下記のいずれかの方法でItemの選択が可能です。
* クエリ
* スプリント単位
* Work Itemを１件ずつ選ぶ

どのPBIを次のスプリントで入れるかを検討する時には下記のクエリでPBIを抽出してこれを見積もり対象としています。Tシャツ見積もり(S/M/L。。。)にも対応していますが、Effortが入らないので、私たちは数値で相対見積もりをするようにしています。
#### クエリの抽出単位
![Query Editor.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/8be71c27-5891-1011-98fc-7da7e3b82311.png)

#### Backlog PriorityでSortするとやりやすい
優先順位で並び変わるので、次々と見積もりが入れやすくて幸せになれると思います。

![Sort.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/6255d3ce-b9c7-522d-4069-bc9f767bcabb.png)

Estimateの詳細は[こちら](https://marketplace.visualstudio.com/items?itemName=ms-devlabs.estimate)

### Retrospectives(レトロスペクティブ用ツール)
近々、MarketPlaceから削除されるみたいなことを言われていたのですが、多くの要望があって継続して利用可能となったそうです。それくらい、使い勝手がよいツールです。
![スクリーンショット 2020-05-25 14.31.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154110/f7f03de5-dd8f-1c8e-9c71-66d91e4b9828.png)

ホワイトボードにKPTを書くように、こちらもリアルタイムに書き込みが可能です。また、

* グルーピング
* Vote
* Act(Work Itemを生成する)

と言うことができるので、リモートでもオフラインでやっていた時と同じように、レトロスペクティブができると思います。

# 最後に
Azure DevOpsには様々なExtentionや強力なQueryがあり、自分のチームが使いやすようにカスタマイズできるのが非常に魅力的だと思いました！
当社ではPipelinesなども使っているので、その情報なども今後は紹介していきたいと思います！