背景
基本的に怠惰な自分を律する為に、 「目標設定・計画・実践・振り返り」 を含む 「スクラム」 の仕組みを、自身のタスク管理に応用し 「一人スクラム」 として実践してきました。これまでは、メモ帳や簡易ToDoツールで対応していましたが、今回はせっかくの機会と思い Azure Boards を使って実践してみました。
本投稿は、Azure Boardsをスクラムのフレームワークに適応する為の設定例と実際に実践して得た気づきを纏めた記事となります。
Azure Boardsとは
Azure BoardsとはAzure DevOpsが提供するサービス群の一つで、PJ管理ツールの機能を有します。比較されるツールとしてJira等が挙げられます。Jiraと比べた優位性は、Azure DevOpsとしてPJ管理以外の機能も包括的に利用ができる為、連携しやすい事が挙げられます。
Azure Boardsは、最初の5人まで無料で利用する事が可能です。
そもそもスクラムとは
スクラムガイドから引用すると、 「複雑な問題に対応する適応型のソリューションを通じて、人々、チーム、組織が価値を生み出す為のフレームワーク」 と定義されています。イテレーションという一定の期間で、チームメンバ皆が主体性を持ち、プロダクト開発する アジャイル開発 によく用いられています。
スクラムは3つのロール(PO,SM,DEV)、5つのイベント(スプリント、スプリントプランニング、デイリースクラム、スプリントレビュー、レトロスペクティブ)、3つの作成物(プラダクトバックログ、スプリントバックログ、インクリメント)によって規定されています。
引用:https://www.scrum.org/resources/scrum-framework-poster
一人スクラムとは
スクラムのフレームワークを一人で回すことを、ここでは非公式ながら 「一人スクラム」 と呼びます。実は、他の人も実践しているようです。
自分がTodo管理ではなく、一人スクラムの違いは 目標設定と振り返りがある点 です。自分はまさにその目標と振り返りを通した成長と達成感を得る為に実践していました。
ToDo管理と比較すると、目標設定と振り返り等の付随作業が増える為、人によってはメンドーと感じる要素もありますし、そういう部分で人によって合う合わないがあると思います。
Azure Boards設定
前提情報
Azure Boardsを利用する為にはAzure DevOpsの組織作成が必要となりますが、今回作成方法の紹介は割愛します。
本稿で紹介する設定は、一人スクラムに必要な最低限の設定にフォーカスしています。公式ドキュメントにはAzure Boardsを利用したスクラムを実践する為の詳細な情報も纏められている為、興味ある方はこちらも併せてご参照いただければと思います。
PJ作成
Azure DevOpsのトップページの右上に「+ New project 」ボタンを押下。
ProjectNameは任意の名前、Visibilityは「Private」、Advancedを選択してVersion Controlを「Git」、Work Item processを「scrum」として、「create」ボタンを押下。
作成したPJを選択するとOverviewのトップページが表示されます。
ここからプロダクトバックログで扱うアイテムを設定していきます。左メニューの下にある「Project Setting」を押下。
メニューの「Team Configuration」を選択、Backlogs Backlog navigation levelsの「Epic,Features,Backlog items」全てにチェックを入れます。
Epic、Feature、Backlog itemの関係は以下の通り。長期のワークロードをEpic、数か月単位のプロジェクトをFeature、スプリントの中で達成できる項目を(Product) backlog item(以降PBI)という関係で行います。
引用:バックログ項目の階層と関係
Backlogsの設定とアイテムの追加
左メニューからBoards>Backlogsを選択すると、Backlogsを確認できる。右上のプルダウンで表示するレベルを「Epic,Feature,PBI」を選択可能
「+New Work Item」を押下し、各アイテム(Epic、Feature、PBI、Task)を作成していく。今回は、各アイテムごとに「Goal」と「Doneの定義」を記載していく。(Taskは除く)
Epic
Feature
PBI
Task
具体的な作業を定義するチケットの為「Remaining Work」欄に計画作業量を入れます。通常「プランニングポーカー」等を利用しでチームで設定した値を設定しますが、今回は一人スクラムの為、「1 = 1時間」として値を設定します。
Backlogsに各アイテムを追加した結果が以下の通り。表示している画面は全種ベルのアイテムを表示していますが、左上にある「+ -」ボタンを押下する事で表示・非表示を調整できます。
Backlogsの列表示変更
Column Optionsを選択すると、Backlogsの列に表示する項目を変更できます。
デフォルトは以下の通り
自分は作業量を把握する為「Remaining Work」、スプリント適応状況を把握する為「Iteration Path」、期日があるものについては意識する為「Target Date」を追加しました。
結果、Backlogsの表示は以下のようになります。
期日のあるなし、タスクへの計画作業設定有無も一目で分かります。チームでする場合はここにアサイン者を追加するとアサイン有無と誰が担当なのかが一目でわかります。
PBIをドロップ&ドロップで対象スプリントへ持って行くと実施スプリントが反映されます。
Sprit設定
左メニューのSprintsを選択すると、右上に表示されているスプリントで実施する予定のPBI一覧が表示されます
このスプリントは開始日付と終了日付が設定されていない為、「No iteration date」をクリックします。
開始日付と終了日付を設定する画面が表示されるので設定します。
Sprintの画面に戻ると期間が設定されている事が確認できます。
また、自身の処理可能容量を「Capacityタブ」から設定する事ができます。これにより、各スプリントに過度な目標設定をし達成できず、一人静かに落ち込む事から回避できます。
Capacityタブをクリックすると以下画面が表示されます。各項目の意味は、Days Off:スプリント期間中の休日、Activity:作業の分類(今回不要なのでそのまま)、Capacity per day:1日当たりに対応可能な作業量を表します。
先程Taskで説明した通り、今回は「作業量 1 = 1 時間」とした為、平日の自分のフリー時間を4時間として4を設定します。
「Taskboard」タブを押下すると、「カンバンボード」が表示されます
Column Optionsからカンバンの列を変更可能ですが、今回はこのまま運用します。
Dasjboardsの設定
作業状況を一目で把握したい時に便利なのがDashboardです。左メニューからOverviwe > Dashboardsを選択すると表示されます。
ただ初期は何もない為、自身が欲しい情報をAdd a widgetから編集していきます。
右側サイドバーに追加可能なWidgetの一覧が表示されます。今回はスプリントの進捗を把握する「Sprint Burndown」、自身のスプリントでの処理容量を把握する「Sprint Capacity」、各スプリントの傾向をつかむ「Velocity」をドラッグアンドドロップで表示する箇所に設定していきます。
完了したら「Done Editing」ボタンを押下。
すると、以下のようなDashBoardができ状況が一目でわかるようになりました。
レトロスペクティブ機能追加
残念ながらAzure Boardsにはデフォルトで「レトロスペクティブ」する為の機能がない。しかし、先程紹介した拡張機能でリリースされている為追加していきます。
拡張機能一覧の検索バーで「Retrospective」と入力し検索すると、「Retrospective」という拡張機能が検索結果として表示される為それを選択します。
リンク:Retrospective
無事に完了すると以下の画面になるので、「Proceed to organization」ボタンを押下
レトロスペクティブボードの追加
改めてPJの画面へ遷移すると、Azure Boardsに「Retrospectives」メニューが追加されている事が確認できます。
実際にレトロスペクティブボードを作成する為、「Create Board」ボタンを押下します。
レトロスペクティブボードを設定する画面が表示されるので、タイトルをスプリント名に合わせて、あとはデフォルトのまま設定し「Save」ボタン押下。
以下のような画面が表示されます。よくレトロスペクティブではよくKPTという振り返り方式用いられるが、What went wellがK(Keep)、What didn't go wellがP(Problem)としてボードに書き込みできます。
T(Try)を書く為には[Act]タブを押下します。
Tryは、対象のWhat went wellとWhat didn't went wellのチケットの「+ Add work item」を押下して書き込みをします。実際にアクションに繋げる為に、Backlogsで管理するアイテムとして定義できる事がこの「Retrospectives」機能の特徴となります。
実践にやってみて得た気づき
Azure Boardsでやってみて得た気付きは以下の通りです。
- Epic、Featureに目標を明文化する事で自分がやりたい事が具体的になる効果がある
- 一人スクラムを管理する為に発生する作業を増やしていくと、管理する事が目的になってしまい、モチベーションを保つのがきつくなる為、自分にとってストレスにならない範囲に調整した方が良い
- 一人と言えど、スプリントプランニングとレトロスペクティブに結構時間掛かる為、スプリントの期間は2週間のサイクルがよいかも(人それぞれ)
おわりに
今回紹介した設定は、一人ではなくチームでも流用可能です。もしAzure Boards使ってみたかったけど、いまいち設定が分からないといった方の一助になればうれしいです。
以下のDashboardsは上記で紹介する中で設定したスプリント1の、スプリント完了2日前の状態のものです。なんとなく状態が把握できて良い感じです。