この記事のポイント
- Azure Boardsは、Basic、Agile、Scrum、CMMIの4つのプロセスをサポートし、多様な開発手法に対応
- Work Items機能で、Epic、Feature、User Story、Taskなど階層的に作業を管理し、プロジェクトの全体像を把握
- Boardsによる作業の可視化とかんばんプラクティスの実装で、タスクの進捗を一目で確認可能
- バックログとスプリント機能でスクラム手法を効果的に実践し、反復的な開発を支援
- カスタマイズ可能なプラットフォームにより、チームや組織の特定ニーズに柔軟に対応
監修者プロフィール
坂本 将磨
Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。
ソフトウェア開発プロジェクトの効率的な管理は、成功への鍵となります。
Azure Boardsは、この課題に対する強力なソリューションを提供します。
本記事では、Azure Boardsの基本概念から実際の使用方法、さらには具体的な活用例やベストプラクティスまでを幅広く解説します。
アジャイル開発手法に基づいた作業項目管理、可視化ボード、バックログ機能など、Azure Boardsがどのようにプロジェクト管理を効率化し、チームの生産性を向上させるかを詳しく紹介。
効果的なプロジェクト管理の実現に向けた具体的な情報を提供します。
Azure Boardsとは
Azure Boardsは、Microsoft Azure DevOps Servicesの一部で、プロジェクト管理に特化したツールです。ソフトウェア開発チームがプロジェクトを計画し、進捗を追跡し、チーム内で議論するためのプラットフォームを提供してくれます。
Azure Boards画面
ソフトウェア開発の全工程でチームの生産性を向上させるために役立つAzure Boardsについて以下解説します。
Azure Boardsのサポートするプロセス
では、最初にAzure Boardsがサポートしているプロセスについて説明します。
Azure DevOpsでは、ソフトウェア開発の手法として使用できるプロセスが以下の4つ(Basic、Agile、Scrum、CMMI)あり、どれを選ぶかによって作業項目なども異なってきます。
1. Basic プロセス
- シンプルで使いやすいプロセス。小規模プロジェクトや複雑なプロセスが不要なチーム向け。
- 使用する主な作業項目: Issue(イシュー)、Task(タスク)、Epic(エピック)。
2. Agile プロセス
- アジャイル開発手法(Scrumやカンバンなど)を採用しているチーム向け。最も人気のあるプロセスです。
- 使用する主な作業項目: Epic(エピック)、Feature(フィーチャー)、User Story(ユーザーストーリー)、Task(タスク)、Bug(バグ)。
3. Scrum プロセス
- Scrumフレームワークに特化したプロセス。
- 使用する主な作業項目: Epic(エピック)、Feature(フィーチャー)、Product Backlog Item(PBI)、Task(タスク)、Bug(バグ)。
4. CMMI プロセス
- 厳密なプロジェクト管理とプロセス改善が必要な大規模プロジェクト向け。要求管理、変更管理などの詳細な作業項目を使用。
- 使用する主な作業項目: Epic(エピック)、Feature(フィーチャー)、Requirement(要件)、Change Request(変更要求)、Task(タスク)、Bug(バグ)。
ここでは、一番人気の高いアジャイル開発手法について以下詳細に説明していきます。
アジャイル開発手法について
定義
アジャイル開発手法は、ソフトウェア開発を素早く柔軟に進めるための方法で、主に次のような特徴があります:
アジャイル開発イメージ(参考:マイクロソフト)
- 短期間の反復作業(スプリント):
- 開発作業を数週間単位の短い期間(スプリント)に分けて進めます。
- 各スプリントの終わりには、成果物(動くソフトウェア)を作成し、進捗を確認します。
- 柔軟な計画と対応:
- 各スプリント終了後にレビューを行い、顧客やチームからのフィードバックを基に計画を調整します。
- 定期的な成果物の提供:
- 定期的に小さな成果物をリリースすることで、ユーザーや顧客からの早期フィードバックを得ることができます。
このアジャイル手法には、特にスクラム方式とかんばん方式が広く使われています。
- スクラム:
- 短い開発サイクル(スプリント)ごとに計画を立て、作業を行い、レビューを行います。
- チームが決まった役割を持ち、定期的なミーティング(デイリースクラム)で進捗を確認します。
スクラムイメージ(参考:マイクロソフト)
- かんばん:
- 視覚的なボードを使ってタスクを管理し、作業の流れをスムーズにします。
- ボード上でタスクの進行状況を「To Do」「In Progress(Doing)」「Done」などの列に移動させながら、ボトルネックを特定して改善します。
かんばんイメージ(参考:マイクロソフト)
Azure Boardsの主な機能
では、次にAzure Boardsの主な機能について説明していきます。
Work Itemsによる管理
Work Items(作業項目)は、Azure Boardsの基本的な構成要素であり、プロジェクトの中で発生する様々な作業を管理するためのものです。Agile プロセスでは、Epic(エピック)、Feature(フィーチャー)、User Story(ユーザーストーリー)、Task(タスク)、Issue(イシュー)もしくはBug(バグ)という種類があります。
こうした用語は、プロジェクトの大きな目標から具体的な作業までを細かく管理するために使われます。エピックは全体の大きな方向性を示し、フィーチャー、ユーザーストーリー、タスクでそれを細分化し、イシューは問題を追跡するといった具合です。
作業項目イメージ
-
Epic(エピック):
- 概要: 大きな目標や機能のまとまり。複数のスプリントで完了する大規模な作業。
- 例:
「新しいモバイルアプリの開発」
-
Feature(フィーチャー):
- 概要: エピックを分解した中規模の機能。1〜2スプリントで完了する作業。
- 例:
「ユーザー認証機能」
br>
-
User Story(ユーザーストーリー):
- 概要: ユーザーの視点から見たシステムの要件。「誰が、何を、なぜ」するかを記述。
- 例:
「ユーザーは商品を検索できる」
br>
-
Task(タスク):
- 概要: User Storyを実現するための具体的な作業。1人のメンバーが担当。
- 例:
「検索フォームのUIを作成」
br>
-
Issue(イシュー)またはBug(バグ):
- 概要: ソフトウェアの欠陥や不具合。修正が必要な問題を管理。
- 例:
「ログインボタンが動作しない」
Boardsによる作業の可視化とかんばんプラクティスの実装
Boards(ボード)機能は、作業の流れを可視化し、かんばん方式でタスク管理を行うのに役立ちます。
タスクボードでは、タスクを「To Do(やるべきこと)」「In Progress(進行中)」「Done(完了)」などのカラムに配置し、進捗状況を一目で把握できます。
タスクボードイメージ(参考:マイクロソフト)
バックログとスプリントを使ったスクラムプラクティスの実装
バックログとスプリントの機能は、Azure Boardsでスクラム手法を実践するために欠かせない機能です。バックログでユーザーストーリーやPBIの優先順位を管理し、スプリントで実行するタスクを計画します。
バックログとスプリントイメージ(参考:マイクロソフト)
このように、バックログは、プロジェクトで必要とされるすべてのユーザーストーリー、タスク、バグなどを一覧にしたものです。
Azure Boardsでは、バックログの項目を視覚的に整理し、容易に優先順位をつけることができます。
ディスカッション機能を用いたチームコミュニケーション
Azure Boardsでは、各作業項目(Work Item)にディスカッション機能が統合されており、チーム内のコミュニケーションを効率的に行うことができます。ディスカッション機能の主な特徴は以下の通りです:
- コメントの追加と返信: 各作業項目に対してコメントの追加や返信ができます。
- @メンションによるメンバーの通知: コメント内で「@メンバー名」を使用することで、特定のメンバーに通知を送ることができます。
ディスカッション機能イメージ(参考:マイクロソフト)
- ファイルの添付とリンクの共有: コメントにはファイルを添付したり、関連するリンクを共有することができます。
こうした機能によって、作業に関連するすべてのコミュニケーションを一箇所で管理し、状況や文脈を見失うことなく情報を共有することができます。
Azure Boardsの使い方
さて、ここからはAzure Boardsの実際の使い方を、アジュール開発プロセスの各フェーズに沿って具体的に解説していきます。
要件定義フェーズでのUser Storyの作成
まず初めに、要件定義フェーズでのUser Storyの作成を行います。
要件定義フェーズでのUser Storyの作成とは、ソフトウェア開発プロジェクトにおいて、プロジェクトの初期段階でユーザーのニーズや要求を具体的な形で表現する作業のことです。
- Azure DevOpsにサインインします。
Azure DevOpsポータル(Azure DevOps Portal)にアクセスし、Azureアカウントでサインインします。
Azure DevOps画面
Azure DevOpsへのサインイン方法はこちらを参照してください。
【関連記事】
➡️Azure DevOpsとは?できることや使い方、料金体系をわかりやすく解説!
br>
-
プロジェクトを選択します。
対象のプロジェクトを選び、プロジェクトのダッシュボードに移動します。
プロジェクト選択画面
br> -
左側のメニューで①「Boards」 > ②「Work items」をクリックします。
Work items選択
-
新しいUser Storyを作成します。
①「+ New Work Item(新しい作業項目)」ボタンをクリックし、②「User Story」を選択します。
User story選択
-
タイトル、説明、受入基準を記入します。
入力画面- タイトル: 新しいUser Storyのタイトルを入力します(例:ユーザーは商品を検索できる)。
- 説明: 「Description(説明)」フィールドに、User Storyの詳細な説明を記入します(例:ユーザーはキーワードを入力して商品を検索し、結果一覧を表示できる)。
- 受入基準: 「Acceptance Criteria(受入基準)」フィールドに、このUser Storyが完了と見なされるための条件を明記します。
-
①優先度、②ストーリーポイントを設定します。
優先度等入力画面- ①「Planning」の中の「Priority(優先度)」フィールドで、このUser Storyの優先度を設定します。優先度は通常、「1 - Highest(最高)」から「4 - Lowest(最低)」の範囲で設定されます。
- ②「Story Points(ストーリーポイント)」フィールドで、このUser Storyの作業量や複雑さを示すストーリーポイントを設定します(例:5)。
-
関連するエピックやフィーチャーにリンクします。
「Links(リンク)」セクションで、「Add Link(リンクを追加)」ボタンをクリックすると、このUser Storyに関連するエピックやフィーチャーをリンクすることもできます。
Linksセクション
-
「保存」ボタンをクリックします。
すべての情報を入力したら、「Save(保存)」ボタンをクリックしてUser Storyを保存します。
保存ボタン
これで、新しいUser StoryがAzure Boardsに作成され、プロジェクトのバックログに追加されました。
機能開発フェーズでのタスク管理
機能開発フェーズでのタスク管理とは、ソフトウェアや製品の機能を開発する際に、その機能を実現するための具体的な作業(タスク)を計画・追跡・管理するプロセスのことです。
このフェーズでは、ユーザーの要求や仕様に基づいて機能を実装し、チームの進捗を効率的に管理します。
以下のような流れになります。
1. User Storyをタスクにブレークダウン
2. 各タスクに担当者と見積時間を割り当て
3. タスクボードでの進捗管理
4. 日次スクラムでのタスク状況の更新
1.ユーザーストーリーのブレークダウン
-
機能を開発するためには、まず上記で作成したユーザーストーリー(例:「ユーザーが商品を検索できる」)を具体的なタスクに分解します。これを「ブレークダウン」と言います。
-
各タスクは小さな作業単位で、個別に開発者に割り当てられます。
例えば、「検索フォームのUIを作成する」「検索APIを実装する」
など。 -
タスクは、ユーザーストーリーと同様に、
[Boards] → [Work items] → [+New Work Item]
から[Task]
を選ぶことで作成できます。
タスク選択 -
タスクをユーザーストーリーとリンクさせるためには、上記のユーザーストーリー作成の場合と同様[Add link]から → [Existing item]を選んで、[Add link]画面で、[Work items to link]としてリンクさせたいユーザーストーリーを選ぶようにしましょう。
ユーザーストーリーとリンク
2. タスクの割り当てと見積もり
各タスクに対して、担当者と見積時間を設定します。
例:検索フォームのUI実装(担当: Aさん、見積: 4時間)
3. タスクボードでの進捗管理
タスクの進捗状況は、タスクボードを使って管理します。タスクボードでは、タスクが「To Do(やるべきこと)」「In Progress(進行中)」「Done(完了)」といった列に分けて表示され、チーム全員が進捗をリアルタイムで確認できます。
タスクボード管理画面(参考:Microsoft)
4. 日次スクラムでの状況報告
毎日の日次スクラム(デイリースタンドアップ)ミーティングで、各メンバーは自分のタスクの進捗状況を報告し、障害や問題がないかを共有します。
バグや障害対応フェーズでのIssueとBugの管理
バグや障害対応フェーズでは、見つかったバグを管理し、迅速に修正することが重要です。
バグや障害対応の手順
-
バグ報告を受けてBug作業項目を作成:
バグが発生したら、Azure BoardsでIssue(問題)やBug(バグ)作業項目を作成します。
バグ作成 -
設定画面に入力する:
- 設定画面でバグの①重要度(Severity)(バグの深刻さ)と②影響度(Priority)(修正の優先度)を設定します。これにより、どのバグを優先的に修正するべきかが明確になります。
- ③バグを再現するための具体的な手順と、期待される動作をRepro Steps(再現手順)に記述します。
バグ設定画面 -
すべての必要な情報を入力したら、「保存」ボタンをクリックしてバグ情報を保存します。
Azure Boardsのメリット
では、ここでAzure Boardsを使うことで得られるメリット3つを説明していきます。
プロジェクト全体の見える化
Azure Boardsは、プロジェクトの全体像から個々のタスクに至るまで、さまざまなレベルでの作業の見える化を提供してくれます。主な機能は次の通りです。
- エピック、フィーチャー、ユーザーストーリーの階層構造:
大きな目標(エピック)から機能(フィーチャー)、具体的な作業項目(ユーザーストーリー)まで、階層的に整理されています。 - かんばんボードによるタスクの流れの可視化:
かんばんボードを使って、タスクの進行状況を視覚的に管理できます。
効率的な情報共有
Azure Boardsは、チーム全体でのコラボレーションを強化し、情報の共有を効率的に行うための機能を提供しています。主な特徴は次の通りです:
-
作業項目に関連するディスカッションの一元管理:
各作業項目(Work Item)にはディスカッション機能が統合されており、コメントを追加したり、フィードバックをリアルタイムで共有したりすることができます。 -
Azure Repos(バージョン管理)やAzure Pipelines(CI/CD)との統合:
Azure Boardsは、Azure DevOpsの他のサービス(Azure ReposやAzure Pipelines)とシームレスに統合されており、開発プロセス全体を一元管理できます。Azure Pipelinesについては、こちらの記事も参考にしてください。
カスタマイズ可能なプラットフォームによる柔軟性
Azure Boardsは、チームや組織の特定のニーズに応じてカスタマイズできる高い柔軟性を持っています。主なカスタマイズ機能は以下の通りです:
-
カスタムWork Itemタイプの作成:
チームのニーズに合わせて、新しいWork Itemタイプ(タスク、バグ、フィーチャーなど)を作成することができます。 -
プロセステンプレートのカスタマイズ:
Azure Boardsは、Agile、Scrum、CMFIなどのプロセステンプレートを提供していますが、これらのテンプレートをチームの要求に合わせてカスタマイズすることも可能です。 -
カスタムフィールドと状態遷移の定義:
作業項目には、独自のカスタムフィールドを追加したり、状態(例:新規、進行中、レビュー中、完了)を定義したりできます。 -
Power BIとの連携によるカスタムレポートの作成:
Azure Boardsは、Power BIと連携することで、プロジェクトの進捗やチームのパフォーマンスを可視化するカスタムレポートを作成できます。
Power BIイメージ
Azure Boardsを使ったアジャイルプロジェクト管理のベストプラクティス
では最後に、Azure Boardsを使ったアジャイルプロジェクト管理のベストプラクティスを以下ご紹介します。
バリューストリームに沿ったチームの構成
バリューストリームとは、顧客に価値を届けるための一連の活動の流れを指します。以下に、バリューストリームに沿ったチームの構成についての重要なポイントをあげました。
-
機能横断的なチーム編成:
開発、テスト、運用など、異なる役割を持つメンバーを1つのチームにまとめることで、チームがプロジェクトの全プロセスをカバーできるようになります。 -
チームエリアの設定:
Azure Boardsでは、プロジェクト内でチームごとに「エリアパス」を設定できます。エリアパスを使うことで、各チームが担当する作業領域を明確に定義し、視覚化することができます。 -
チーム容量の管理:
各メンバーのスプリント内での稼働可能時間を設定し、さらにチーム全体の容量を可視化することで、スプリント計画時に過負荷を防ぎます。
依存関係の管理
Azure Boardsを活用して、プロジェクト内やチーム間の依存関係を効果的に管理することで、プロジェクトのスムーズな進行とリスクの軽減を図ることができます。以下のベストプラクティスを適用することが望ましいでしょう。
-
作業項目間のリンク機能の活用:
作業項目(Work Item)間にリンクを設定することで、親子関係(エピックとフィーチャーなど)、前任後任関係(依存するタスク同士)、関連性を明示化できます。 -
クロスチーム依存性の管理:
複数のチームが関与するプロジェクトでは、チーム間の依存関係を特定し、早期に明確化することが重要です。
たとえば、チームAがAPIを開発し、チームBがそのAPIを使ったアプリケーションを作成する場合、 チームBはチームAの作業が完了するのを待つ必要があります。
このような依存関係を早い段階で明確にすることで、後で生じる可能性のある遅延や問題を防ぐことができます。
またチーム間のコミュニケーションを強化するため、定期的に依存関係解決ミーティングを開催するのもよいでしょう。
-
リスク管理との統合:
依存関係がある場合、その依存関係がプロジェクトに与えるリスクを特定し、リスク軽減策を計画・実行するのが望ましいでしょう。
まとめ
本記事では、Azure Boardsの概要、主要機能、実際の使用方法、そのメリット、およびアジャイルプロジェクト管理のベストプラクティスについて解説しました。
Azure Boardsは、アジャイル開発手法を効果的に実践するための包括的なツールセットを提供し、チームのコラボレーションと作業の可視化を促進してくれます。Work Items、Boards、バックログ管理などの機能を通じて、プロジェクトの計画から実行、追跡まで、開発ライフサイクル全体をサポートし、様々な規模や業種のプロジェクトに適応可能です。
ぜひAzure Boardsを効果的に活用することで、チームは生産性を向上させるのに役立たせてください。
この記事が皆様のお役に立てたら光栄です。