はじめてのスクラム開発実践ノート(前編)では、スクラム開発の概要から、Azure Boards上でのスクラムのプロジェクト設定方法や、バックログのワークアイテムの登録方法についてご紹介しました。
後編となる本記事では、具体的なスプリントの運用や進捗管理における、効果的なAzure Boardsの活用方法についてご紹介します。
Image source from Agileme
スクラム開発の管理方法(前編の続き)
ステップ3.Boards上でバックログリファインメントとスプリントプランニングを実施
Azure Boardsには「Board」画面が用意されており、プロダクトオーナーと開発チームは、「Board」を利用することでスクラムイベントである「バックログリファインメント」(Backlog Refinement)および「スプリントプランニング」(Sprint Planning)を視覚的に行うことができます。
[Boards]->[Backlogs]画面ではプロダクトバックログの管理を行うことができ、重要度が高い順にアイテムが上から並ぶように整理することで、各バックログの大まかな概要や状態を素早く把握するのに役立ちます。
スクラムを運用するなかで、より細かくバックログを管理したいと考えることも出てくるかと思いますが、そういった場合は「Board」画面を使用します。
以下のように[Backlogs]画面から [View as Board]をクリックすることで、[Board]画面へと速やかに移動できます。
Board画面のカンバンビューによってバックログの粒度を細かくすることができ、それによって現在の進捗状況をより正確に追跡することが可能となります。
バックログのカンバンビューは、デフォルトでは以下の4 列で構成されます。
To do/Approved/Committed/Done
この列は必要に応じてカスタマイズすることが可能です。
ここでは、更に便利にBoardを活用するために「Refinement(リファインメント)」「Ready(レディ)」の2つ列を追加します。
[Board]画面の右上にある[config]アイコンをクリックし、上図のように[Board>Columns]メニューから[+ Column]をクリックすることで、列を追加することができます。
バックログのリファインメントを行う際に、どのバックログを見直す必要があるかどうかを判断する際に、「Refinement」列が役立ちます。
また、「Ready」列があることで、どのバックログが開発を進められる状態にあるのかを簡単に判断することが可能となります。
参考までに、デフォルトで用意されている列と追加した列の使い方を一覧化すると以下のようになります。
- New:新しいバックログやバグを登録した際のデフォルトのステータス
- Approved:プロダクトオーナーと顧客が承認し、実行可能となったバックログ
- Refinement:バックログの分割や詳細化、見積もりなどが進行しているバックログ
- Ready:開発可能な状態となったバックログ
- Committed:開発チームが、今回のスプリントで終わらせることを目指すバックログ
- Done:実装済みとなったバックログ
続いては、バックログのリファインメントの実施方法についてご紹介したいと思います。
バックログリファインメント
スクラムにおける「バックログリファインメント」とは、以下のように説明されます。
リファインメントの活動を通じて、選択に必要な透明性を獲得する。
プロダクトバックログアイテムがより小さく詳細になるように、分割および定義をする活動である。
これは、説明・並び順・サイズなどの詳細を追加するための継続的な活動である。
多くの場合、属性は作業領域によって異なる。
作業を行う開発者は、その作業規模の評価に責任を持つ。
開発者がトレードオフを理解して選択できるように、プロダクトオーナーが開発者を支援することもできる。
[Azure Board]のプロダクトバックログアイテムには、リファインメントを実施するために以下の3つの項目が提供されています。
- Descriptionは、そのバックログが何であるかをチームに明確に理解させる目的で使用します。一般的にユーザーストーリーの形式で記載されます。
- Acceptance Criteria(受入基準)はとても重要な項目です。バックログを受け入れて、「Done」のステータスとするための基準です。受入基準の定義が不十分な場合、成果物の品質に起因した問題が発生し、進行に悪影響を及ぼす可能性があります。一般的にGiven/When/Then (GWT) の形式で記載されます。
- Detailsには、バックログの優先度やビジネス価値、見積もり工数などの情報を設定します。
これらの領域に十分な情報を入力することで、チーム全員のバックログに対する理解が明確になり、また作業内容も測定可能な状態となります。この状態になればバックログのリファインメントは完了となり、それに伴ってバックログを「Refinement」から「Ready」列に移動することができます。
しかし、もし「Refinement」列に多くのバックログがあり、今回のリファインメントイベント中に全てのリファインメントが完了できなかった場合はどうすればよいのでしょうか?
一つの対策として、「Refinement」列を[Doing]と[Done]サブ列に分割するという方法があります。
具体的なやり方としては、先ほどの[Board>Columns]サイドバーから、次のように設定をします。
このような設定をすることで、以下のようにリファインメント作業の進行状況を[Doing]と[Done]というステータスで管理することが可能となります。
このように、[Azure Board]では柔軟に列の追加などが可能であり、必要に応じてカスタマイズを容易に行うことができます。
スプリントプランニング
スクラムにおける「スプリントプランニング」とは、以下のように説明されます。
スプリントプランニングはスプリントの起点であり、ここではスプリントで実⾏する作業の計を⽴てる。結果としてできる計画は、スクラムチーム全体の共同作業によって作成される。
[Ready]列にあるバックログに対して、スクラムチームはスプリントプランニングを実施します。具体的には、次のスプリントで実装するバックログを選定し、以下のように[Committed]列に移動します。
続いて、[Board]画面にて[→ View as Backlog]をクリックし[Backlogs]画面に切り替え、そこでスプリントバックログの振り分けを行います。
[Backlogs]画面右上の[View Option]をクリックして、Side PaneのPlanningを選択します。
そうすると画面右側にSprintパネルが表示されるので、Drag &Dropで[Committed]バックログを該当のSprintに振り分けましょう。
また、スプリントの期間をこのパネルから設定することができます。
画面右上の[+ New Sprint]もしくは[No iteration dates]と表示されている箇所を選択することで、任意のスプリントの期間を設定できます。(一般的にはスプリントの期間は2週間程度です)
スプリントに期間を設定することで、その期間中に開発チームが実施することができるタスク量を測定することができるようになります。スプリントごとに測定を続けることで、それをチームのベロシティ(チームの作業速度)として、以降のスプリントでのタスク見積もりの際の指標として活用することができるようになります。
ここまでで、Boards上でのBacklog Refinement/Sprint Planning イベントの実施方法をご紹介しました。
続いては、スプリントの進行中における、ディリースクラムおよび、進捗の追跡方法についてご紹介します。
ステップ4.デイリー スクラムを実施し、スプリントの進捗状況を追跡
左側のメニューから「Sprints」を選択するか、Backlogsの画面右側にあるスプリント一覧からスプリントを選択すると、スプリントのBacklog画面へと遷移します。
下の図のように、初期表示状態ではBacklogsとほぼ同じ見た目となっています。
一見Backlogsと同じ見た目のSprintsの画面ですが、この画面では、あるスプリントに追加されたワークアイテムのみが表示されています。
下図の画面右上部分に「Sprint 6」と表示されているプルダウンがありますが、このプルダウンから表示対象となるスプリントを切り替えることが可能です。
Sprintsの画面上部のタブ部分から[Taskboard]を選択すると、スプリント内のタスク用のカンバンが表示されます。
この機能を使うことで、スプリントの進捗を視覚的に確認することができることから、デイリースクラムにおいて[Taskboard]を使用して日々の進捗確認を行っているスクラムチームも多いようです。
このタスクボードは、前述した[Board]画面に表示されているカンバンとは表示する項目が異なっています。
このタスクボードでは、プロダクトバックログやバグに紐づく詳細なタスクの進捗状況を把握することができるようになっているため、開発者が自身の担当する作業の進捗管理をするために使用することができます。
タスクボードは、ToDo(作業前)、In Progress(作業中)、Done(完了)の3レーンに分かれています。
タスクボードもBoardsと同様に、画面上からタスクを追加することができます。
ToDoのレーンにある緑色の+ボタンを選択することで、プロダクトバックログやバグに紐づくタスクを作成することが可能です。
作成したタスクは、ドラッグ&ドロップでステータスを更新することができます。
終わりに
今回の記事では、自分自身がスクラムを初体験するなかで使用したプロジェクト管理ツール「Azure Boards」について、その使用方法を詳しくご紹介しました。この記事の内容が、これからスクラムを始める方に対して少しでも有益な情報となれば幸いです。
[AzureBoards]にはスクラム開発に必要な機能(プロダクトバックログ、スプリントバックログ、バーンダウンチャートなど)が一通り備わっており、また高い柔軟性からチームの状況に合わせてカスタマイズもしやすいことから、[AzureBoards]はスクラムに適した優れたタスク管理ツールであると言えます。
さらに、[AzureBoards]をより便利に活用するための拡張がマーケットプレイスにて豊富に提供されている点も魅力的です。
以下は[AzureBoards]のおすすめの拡張になりますので、こちらについても活用を検討してみてはいかがでしょうか。
- Product Vision : help to share the product vision with the whole team on the dashboard
- Delivery Plans : Manage your portfolio of work with a calendar-based view across teams and projects.
- Sprint Goal : Set Sprint Goal display on Sprint board, help the team to work together towards the same goal
- Estimation Poker : Play Estimation Poker in Azure DevOps. Select work from an iteration, query, or your backlog, estimate the effort of those items with your team, and immediately update the work items.
- Retrospectives : Support efficient retrospectives on Azure board, also track actionable tasks to help teams improve over time.
- Definition of Done : Definition of Done inside your work item form
- Work item checklists : Manage personal or shared checklist for a work item.
お問い合わせContact
ご不明点やご相談などがありましたら、お気軽にお問い合わせください。