はじめに

今回は、Azureが提供するチーム開発のためのサービス群であるAzure DevOpsの中から、タスク管理ツールであるAzure Boardsを紹介します。

Azure Boardsとは

Azure Boardsは、アジャイル開発におけるタスクやバグなどといった、プロジェクト内のあらゆる作業をWebブラウザ上で一括管理するためのツールです。Azure Boardsを使用することで、開発の進捗状況を可視化することができるようになります。

アジャイル開発とは

Azure Boardsはアジャイル開発を補助するツールです。アジャイル開発とは、要件定義・設計・実装・テスト・リリースの開発サイクルを数回に分けて繰り返し実行しながらプロダクトを完成させていくソフトウェア開発手法です。一回の開発サイクルにおける開発の範囲をプロダクトのある一部の機能に限定することで、少しずつプロダクトを作り上げていく点が特徴です。

よく比較される開発手法に、ウォーターフォール開発があります。要件定義・設計・実装・テスト・リリースといった工程は繰り返し行われず、各工程が完全に完了することで次の工程に進むことができます。前の工程の成果物をもとに次の工程を進め、また次の工程へ成果物を引き継ぐ様が滝のようであることからウォーターフォールという名前が付けられています。ウォーターフォール開発では前の工程に戻ることは考慮されていないため、要件の漏れや仕様変更など、後から変更が発生した場合に手戻りとして多大な修正コストがかかってしまいます。

一方アジャイル開発では、一回の開発サイクルが短期間で、リリースのタイミングを多く設けることで、プロダクトの発注側(オーナー)は成果物の一部を早いタイミングで確認できるようになります。これにより新たな発見や間違い・バグを発見した場合、次回以降の開発サイクルで対応するように開発チームへフィードバックできます。アジャイル開発の最も大切な考え方の一つに「変化を受け入れる」というものがあります。ソフトウェア開発に変更はつきものだという考えがまずあり、その変更をいかに受け入れるかを示した結果としてアジャイル開発が提唱されたのです。

スクラムとは

スクラムは、アジャイル開発における開発手法の一つです。基本的な考え方はアジャイル開発と同じですが、スクラム独自の用語があるので簡単に説明します。

・スプリント
 スクラムにおける開発サイクル(イテレーション)の単位をスプリントと呼びます。スプリントごとにプロダクトの一部機能を開発してリリースまで行います。ひとつのスプリントは1〜3週間程度の期間となるのが一般的です。

・プロダクトバックログ
 プロダクトの開発にあたって必要となるすべてのタスクをまとめた一覧で、常に優先度の高いタスクの順に並んでいるようにします。一般的に、プロダクトバックログはプロダクトの責任者であるプロダクトオーナーによって作成されます。

・スプリントバックログ
 プロダクトバックログから、スプリント内で実施するタスクを抜き出した一覧。スプリントでどの程度のバックログを消費できそうかは、チーム全員が参加して行うスプリントプランニングによって決定していきます。開発メンバーは、スプリントバックログから自身が設計や実装などの作業をできる粒度にタスクをさらに分割していきます。

・フィーチャー
 フィーチャーは、ユーザーが求める機能を表します。フィーチャーの中には複数の実装タスクが含まれます。

カンバンとは

カンバンとは、その名の通り看板を使ったタスクの可視化が特徴の、アジャイル開発の方法論のひとつです。カンバンは元々トヨタによって開発され、自動車工場の効率改善のために使用されていたものをソフトウェア開発に適用したものです。
カンバンは、作業の進捗状況のフローを可視化した「看板」を用いることからこの名が付けられています。カンバンには最低でも、作業前(ToDo)、作業中(Doing・In Progress)、完了(Done)の3つの状態を表すレーンが設けられていることが一般的です。プロダクトの性質やチームの規模や構成に合わせて、カンバンのレーンを増減して使いやすいものに変更するチームもあります。
アジャイル開発の現場では、主に壁やホワイトボードなどに付箋で作ったタスクを貼り付けていく、アナログなカンバンが利用されています。近年ではデジタルなカンバンツールも多く登場しており、リモート開発やオフショア開発など、開発メンバーが同じ場所に居ないなどの場合でも使用できるカンバンとして利用が進められています。今回紹介するAzure Boardsもこのデジタルなカンバンツールのひとつです。

Azure Boardsが提供するサービス

Azure Boardsが提供するのは、デジタルなカンバンとカンバン上で管理されるタスクの作成機能です。以下はAzure Boards上でメニューとして表示されている各機能の説明です。

・Work Items
Azure Boardsで作成し追跡することができるタスクのことをワークアイテム(Work Item)と呼びます。ワークアイテムではプロダクトバックログ、フィーチャー、タスク、バグなどの種類のタスクを作成することができます。「Work Items」ではワークアイテムの作成や担当者の割当て、ステータスの更新などの操作を行うことができます。

・Boards
Boardsではカンバンを表示することができます。Boardsでは、プロダクトバックログ単位とフィーチャー単位のカンバンを表示できるので、用途に合わせて表示を切り替えて使用します。

・Backlogs
Backlogsはプロダクトバックログを管理する画面です。作成したプロダクトバックログを優先順に並び替えたり、プロダクトバックログをスプリントへ追加し、スプリントバックログとする操作もこの画面から行います。

・Sprints
Sprintsでは現在進行中のスプリントの管理や、スプリント全体の設定などを行うことができます。Boardsで表示できるカンバンとは別に、開発チームがタスクを管理するレベルで使用するタスクボードと呼ばれるカンバンも提供しています。

・Queries
Queriesはワークアイテムの検索を行う画面です。様々な条件でワークアイテムを検索することができ、検索条件を保存して後から使いまわすことも可能です。

Azure Boardsを使ってみよう

それでは、ここからは実際にAzure Boardsを触ってみましょう。

DevOpsプロジェクトの新規作成

今回はAzure DevOpsのプロジェクトを新規作成し、そのプロジェクト内でAzure Boardsに触れてみたいと思います。前回Azure DevOpsプロジェクトを作成した際に、プロジェクトの上位概念である組織も同時に作成されているので、その組織配下に新しいプロジェクトを作成していきます。

Azureポータルにログインし、左側のメニューから「すべてのサービス」を選択して検索ボックスに「devops」と入力します。表示されている「Azure DevOps」を選択します。

  • Azure DevOps organizationsを選択する

    Azure DevOpsを選択する

「Auzre DevOps」を選択すると、執筆時点では以下のような画面が表示されます。この画面から自身が管理しているAzure DevOpsの組織を確認する画面へ遷移します。ここでは画面下部の「My Azure DevOps organizations」を選択します。

  • 自身の管理するAzure DevOps組織を表示する

    自身の管理するAzure DevOps組織を表示する

自身が管理しているAzure DevOps組織の一覧が表示されている画面が表示されたら、該当する組織に表示されている「新しいプロジェクト」を選択します。

  • 新しいプロジェクトを作成する

    新しいプロジェクトを作成する

新規プロジェクトの作成画面に遷移するので、プロジェクトの情報を入力していきます。「Project name」にはプロジェクト名を入力します。「Description」にはプロジェクトの説明を任意で入力します。「Visibility」はこのプロジェクトの公開範囲を設定するもので、今回は公開範囲を限定する「Private」に設定します。次に「Advanced」と表示されている部分を選択して追加の設定情報を入力していきます。「Version control」はこのプロジェクトのソースコードのバージョン管理システムの選択肢です。今回は「Git」を選択します。最後に「Work item process」を選択します。これはプロジェクトの開発プロセスを決めるもので、ここで選択した開発プロセスによってAzure Boardsで表示されるワークアイテムの種類が変わったりします。今回は「Scrum」を選択してスクラム開発用のAzure Boardsを作成するようにします。

  • 新しいプロジェクトの情報を入力する

    新しいプロジェクトの情報を入力する

最後に「Create」ボタンを選択してプロジェクトの作成を開始します。しばらくするとプロジェクトの作成が完了し、Azure Devopsのプロジェクトのダッシュボード画面が表示されます。

  • 新規作成したプロジェクトのダッシュボード画面

    新規作成したプロジェクトのダッシュボード画面

ここから、いよいよAzure Boardsに触れていきます。

ワークアイテムを追加する

まずはワークアイテムの作成から行っていきます。プロジェクトを新規作成してダッシュボードが表示されたら、左側メニューから「Boards」を選択します。Boardsを選択すると「Work Items」の画面が表示されるかと思います。まずはここから新しいワークアイテムを作成していきます。画面上部にある「New Work Item」を選択すると、作成可能なワークアイテムの種類を選択することができます。まずはここで「Product Backlog Item」を選択し、プロダクトバックログを作成してみましょう。

  • 新規作成するワークアイテムの種類を選ぶ

    新規作成するワークアイテムの種類を選ぶ

「Product Backlog Item」を選択すると、プロダクトバックログの作成画面が表示されます。ここでプロダクトバックログの内容を記入していきます。 まずはタイトルをつける必要があります。プロダクトバックログのタイトルには、プロダクトを利用するユーザーが必要とする機能やその操作について表現することから、ユーザーストーリーという形式で記述するケースがあります。ここでは例としてオンラインショッピングのWebサイトのプロダクトを開発していると仮定して、「ユーザーがWebブラウザからシステムにログインできる」というユーザーストーリーをプロダクトバックログのタイトルにします。
その他に、このプロダクトバックログの内容の説明を「Description」へ、開発が完了してこのプロダクトバックログを完了してもよいかどうかの基準となる受け入れ条件を「Acceptance Criteria」へそれぞれ記入して「Save」ボタンで内容を保存します。

  • プロダクトバックログの新規作成

    プロダクトバックログの新規作成

プロダクトバックログを保存したら、画面上部の「Back to Work Items」を選択してワークアイテムの一覧画面に戻ります。作成したプロダクトバックログが一件表示されているかと思います。同様に他のワークアイテムも作成すると、この一覧画面に反映されます。

  • ワークアイテムの一覧画面

    ワークアイテムの一覧画面

Boardsでのバックログの確認

続いて、左側のメニューから「Boards」を選択してみましょう。先程作成したプロダクトバックログが、「New」というレーンに表示されているかと思います。

  • Boardsの表示例

    Boardsの表示例

このBoardsではワークアイテムのうち、プロダクトバックログとバグを表示することができます。そのためプロダクトオーナーはこのBoardsを見ることで、プロジェクトの大まかな進捗状況を確認することができます。 また、Newレーンにある「New item」からプロダクトバックログとバグを作成することもできます。作成後はまずNewレーンにワークアイテムは追加されます。

  • 新しいワークアイテムを追加

    新しいワークアイテムを追加

ワークアイテムはドラッグ&ドロップでレーンを移動することができます。これによってステータスが更新されます。レーンの数や名称は自由に変更可能です。デフォルトでは、New(新規作成状態)、Approved(承認済≒開発着手可能)、Committed(コミット済≒開発済)、Done(完了済≒リリース済)の4レーンとなっています。

  • プロダクトバックログのステータスを更新

    プロダクトバックログのステータスを更新

このように、Boards上でワークアイテムを移動することによってステータスを更新してゆき、一番右側のレーンに到達した時点でそのワークアイテムが完了したとみなすことで進捗状況の可視化を行っています。

プロダクトバックログをスプリントに追加する

次に、ここまでに作成したプロダクトバックログをスプリントに追加していきたいと思います。左側のメニューから「Backlogs」を選択すると、プロダクトバックログとバグが一覧表示された画面が表示されます。

  • Backlogsの表示例

    Backlogsの表示例

Backlogsの画面右側には、スプリントの一覧が表示されています。ここへプロダクトバックログやバグをドラッグ&ドロップすることで、そのワークアイテムはそのスプリント内で実施すべきものとしてチェックインされたことになります。下の図は、「ユーザーがWebブラウザからシステムにログインできる」というプロダクトバックログをSprint1へ追加しているところです。

  • プロダクトバックログをスプリントに追加する

    プロダクトバックログをスプリントに追加する

なお、Boardsで作成したワークアイテムに関しては、現在アクティブなスプリント(Sprint1)に既にチェックインされた状態となります。そのためSprint1の領域にプロダクトバックログとバグのアイコンが表示されており、Boardsで作成したものと同じワークアイテム数が表示されています。

スプリントの設定を行う

左側のメニューから「Sprints」を選択するか、Backlogsの画面右側にあるスプリントの一覧からあるスプリントを選択すると、スプリントの画面へ遷移します。下の図のように、初期表示状態ではBacklogsとほぼ同じ見た目であるように見えます。

  • ワークアイテムの一覧画面

    ワークアイテムの一覧画面

一見Backlogsと同じ見た目のSprintsの画面ですが、これはある1つのスプリントを表示するための画面となっています。この画面では、あるスプリントに追加されたワークアイテムのみが表示されるようになっています。 画面右上部分に、「Sprint1」と表示されているプルダウンがあります。このプルダウンから表示対象となるスプリントを切り替えることができるようになっています。

また、スプリントの期間をこの画面から設定することができます。画面右上に「No iteration dates」と表示されている箇所を選択することで、スプリントの期間を設定できます。

  • スプリントの期間を設定する

    スプリントの期間を設定する

スプリントに期間を設定することで、その期間中に開発チームが消化することができるタスクの量を測定することができるようになります。スプリントごとに測定を続けることで、それをチームのベロシティとして以降のスプリントでのタスク見積もりの際の指標として活用することができるようになります。

タスクボードでスプリント内のタスクを確認する

Sprintsの画面上部のタブ部分から「Taskboards」を選択すると、スプリント内のタスク用のカンバンが表示されます。

  • タスクボードでスプリント内のタスクを確認する

    タスクボードでスプリント内のタスクを確認する

このタスクボードは前述したBoardsの画面に表示されているカンバンとは表示する項目が異なっています。このタスクボードでは、プロダクトバックログやバグに紐づく詳細なタスクの進捗状況を把握することができるようになっているため、開発者が、自身の担当する作業の進捗管理をするために使用することが想定されています。

タスクボードは、ToDo(作業前)、In Progress(作業中)、Done(完了)の3レーンに分かれています。

タスクボードもBoardsと同様に、この画面からタスクを追加することができます。ToDoのレーンにある緑色のボタンを選択することで、プロダクトバックログやバグに紐づくタスクを作成することができます。

  • タスクボードからタスクを新規作成する

    タスクボードからタスクを新規作成する

作成したタスクは、ドラッグ&ドロップでステータスを更新することができます。

また、タスクは「Backlog」タブでプロダクトバックログとバグを一覧表示した際にも確認することができます。

  • Backlogsタブでのタスクの確認

    Backlogsタブでのタスクの確認

Queriesによるワークアイテムの検索

最後に、ワークアイテムの検索機能について説明します。左側のメニューから「Queries」を選択し、画面上部から「New query」を選択します。

  • 新しいクエリの作成

    新しいクエリの作成

画面が「My Queries」に遷移したら、画面中央部で検索条件(クエリ)を作成していきます。検索条件には、複数の条件を組み合わせることができます。下の図の例では、ワークアイテムの種類が「プロダクトバックログ」かつステータスが「Approved」であるものを検索するための条件を作成しています。検索条件が作成できたら、「Run query」で検索を実行します。検索結果は、画面下部に表示されます。

  • 検索結果

    検索結果

使用したクエリは、画面上部の「Save query」から名前を付けて保存することもできます。Azure Boardsを長く使っていくことでワークアイテムが増え、バックログの一覧やカンバンからワークアイテムを探し出すのが困難になった際に、Queriesを使った検索が重宝することになります。

まとめ

今回はAzure DevOpsのうちプロジェクト管理のためのツールであるAzure Boardsについて紹介しました。Azure Boardsによってアジャイル開発、特にスクラムやカンバンといったプラクティスを使用するプロジェクトにとって便利な機能が提供されていることが分かったかと思います。

次回は、Azure DevOpsのコードリポジトリであるAzure Reposについて紹介する予定です。

WINGSプロジェクト 秋葉龍一著/山田祥寛監修
<WINGSプロジェクトについて>テクニカル執筆プロジェクト(代表山田祥寛)。海外記事の翻訳から、主にWeb開発分野の書籍・雑誌/Web記事の執筆、講演等を幅広く手がける。一緒に執筆をできる有志を募集中