アジャイル開発におけるスプリントバックログとは
「スプリントバックログ」は「プロダクトバックログ」「インクリメント」と並び、スクラムにおける3つの作成物の一つです。
スプリントバックログは、チームがスプリントの期間中に完成を目指す機能やサービスのタスクリストのようなものです。
この記事では、スプリントバックログとは何か、目的、メリット、作成方法などを詳しく見ていきます。
アジャイルにおけるスプリントバックログとは?
スプリントバックログとは、1つのプロダクトバックログアイテム(リスト化された機能やサービス)を完成させるためのタスクリストのようなものです。
1回のスプリントごとに計画をして決定します。
スプリントごとの目標は「スプリントゴール」といい、それに従ってスプリントバックログを作成するのが一般的です。
また1スプリントの期間は、組織によって異なりますが、慣れたチームであれば、1週間から2週間程度です。
スプリントは単純な期間ではなくテストとリリースまで含んだ期間です。
つまりリリース可能な期間がスプリント期間となります。
改善を切り返すことで、スプリント期間は徐々に短くなるでしょう。
アジャイルボード全体のイメージ
下記がバックログ全体のイメージです。バックログには下記のような項目が含まれます。
プロダクトバックログ前段階のアイデアや、今後検討すべき作業アイテムを配置する場所。
スプリントサイズのプロジェクトや、プロダクト、サービス一つ一つをリスト化したものです。(機能リスト)各アイテムには優先順位が付けられています。
1スプリントで達成すべきゴール。通常はそのスプリントで達成すべきプロダクトバックログアイテム(ユーザーストーリー)です。スプリントバックログでタスク化されると、開発目的を見失うことがあります。スプリントゴールは、そのタスクを何のために開発し、どのような価値をもたらすのかチームで共通理解を持つことに役立ちます。
最優先のプロダクトバックログアイテムをスプリントの期間内で、完了させるためのタスクリスト(作業リスト)。
チームが現在進行しているスプリントバックログのアイテムを配置する場所。
別のチームやベンダー、またはチームの制御外のロボットプロセスなど、外部の依存関係を待機している作業を配置する場所。
各スプリントの完成したアイテムを配置する場所。完成の定義を満たし、過去の各スプリントで何が完成できたのかを示します。
スプリントバックログの目的
技術的なことを含めて実現方法など、プロダクトバックログよりも、詳細に設定することが目的です。
スプリントバックログは情報共有が重要であり、チーム全員が目標を理解した上で作業に取り組めることが、スプリントバックログを作成するメリットと言えます。
チームとしての連携が強化されるため、生産性が向上します。
活用シーン
スプリントバックログは、作業が細かく小さいため不具合の早期発見、修復、見直し等が可能です。
つまり、開発期間の短縮や開発費用を抑えるのに役立つと言えます。
スプリントバックログに含まれる要素
一般的にスプリントバックログに含まれている要素をご紹介します。
ユーザーストーリー
各ペルソナの視点から書かれた開発対象の機能やサービスの説明です。その目的は、開発アイテムが各ペルソナに、どのように価値を提供するかを明確にすることです。
ユーザー ストーリーは、要件の「誰が」「何を」「なぜ求めるのか」をすばやく把握するために有効です。
このユーザーストーリーを、スプリントバックログで詳細な作業リストに落とし込みます。
タスクと説明
そのスプリントのタスクです。
たとえば「ログイン画面の構築」や「予約画面を作成」など、スプリントゴールを達成するために必要なタスクや説明です。
タスクの優先順位
スプリントバックログにおける各タスクの相対的な優先度を表します。
トップ画面を先に作成しても、それを開く環境が整っていなければ活用できないので、必然的に優先順位が決まります。
スプリントのバーンダウンチャート
スプリントバックログにおけるバーンダウン チャートは、時間の経過に伴う作業の進行状況を視覚的に表示したグラフです。 (縦軸は完了した作業量で、横軸は時間を表します)
チャートは作業スピードを可視化するため、何がいつ完成するのか、将来の予測にも役立ちます。
スプリントバックログを作成するタイミング
スプリントプランニングで作成します。
まずはスプリントゴールを確認し、それを完成させるために必要な作業をタスクとして洗い出します。
これらの一つ一つのタスクは「スプリントバックログアイテム」とも言います。
スプリントバックログのつくり方・進め方の手順
まずスクラムマスターは、上記で示したようにアジャイルボードを使用したり、アジャイル開発向けのツールを使ってスプリントバックログを管理するのが良いでしょう。
手順①スプリントゴールの明確化
スプリントゴールを明確にしておくことは非常に重要です。スプリントゴールは、チームがスプリントの終わりまでに達成すべき目標です。チームが共通理解を持つことを助け、誰もがやるべきことに向かっていくことができます。 またチームが、何を優先すべきかを考えることにも役立ちます。
【手順②】分割したタスクを作る
スプリントバックログは、選択したプロダクトバックログアイテムを、タスクとして可能な範囲で細分化しておくことが重要です。理想は、1日以内に達成できるタスクサイズまで分割することです。
タスクには、開発のプロセスが含まれる場合があります。例: 設計、開発、単体テスト、システム テスト、UAT (ユーザー受け入れテスト)など。 ただし、製品全体ではなく、対象の機能に限定されます。プロダクト バックログアイテムを完了する (つまり、リリース可能である) ために必要なすべてのタスクをスプリント内に含めます。
スプリントバックログを作成する大きなメリットである、不具合や変更などへの対応を柔軟に行うためにもタスクを細かく区切ることは重要です。
スプリントバックログの優先順位の付け方
スプリントバックログの優先順位の付け方のポイントは、スプリントバックログでは基本的に依存関係があるタスクは優先される点にあります。
そのほかにも重みのつけ方等マトリックス上にして優先順位を決める方法も多くあります。
スプリント内でコミットしたタスクは全てやり切る必要があります。
スプリントバックログのメリット
- タスクの各要素が可視化ができる
- 進捗の把握がしやすい
- 振り返りと改善点を見つけやすい
スプリントバックログのメリットについて重要なものをピックアップしてみました。
まず、スプリントバックログを使用すると、タスクの各要素が可視化でき、進行すべき作業の計画や、管理をスムーズに行うことができます。
またスプリント内で、どれだけの作業ができたのか確認することにも役立ちます。
これによりチームは、各スプリントの終わりに完了した作業を確認し、振り返りと改善を行うことができます。
たとえば、削除または結合できたはずのタスクがあったかどうかを確認します。
スプリントバックログとプロダクトバックログの違いを比較
スプリントバックログとプロダクトバックログについては以下の比較表を参考にしてください。
プロダクトバックログ | スプリントバックログ | |
---|---|---|
概要 | スプリントサイズのビジネスゴール(機能やサービスの価値のあるかたまり) | 1つのプロダクトバックログを具体化したもの(技術リスト・タスクリスト) |
所有者(責任者) | PO(プロダクトオーナー) | Dev開発者(SMは開発者をコーチ) |
目的 | プロダクト価値を最大化を目的 | 1つのプロダクトアイテムを達成することが目的 |
プロダクトバックログについては、下記の記事も参考にしてください。
スプリントバックログの見直し(メンテナンス)の重要性
スプリントバックログは毎日更新する必要があります。
毎日のデイリースクラムで、進捗状況を確認してスプリントバックログを更新します。
毎日更新することにより、遅れている場合は、それにすぐ気付くことができます。
小規模なタスクと毎日の更新により、チームはより適切に方向転換し、進捗状況に対応できます。
ビジネス上の優先順位は、状況の変化で容易に変わる可能性はあります。
一方で、それを開発チームが全て受け入れ続けると、何も成果物ができなくなってしまいます。
これはアジャイルだろうとウォーターフォールだろうと同じです。
スプリント中にプロダクトバックログアイテムの入れ替えの依頼が発生した場合は、理由などを確認した上で、プロダクトオーナを含めチーム全体で協議し入れ替え可能かどうか、それに同意できるかどうかを判断するというのが基本になります。
各スプリントが終了したら「スプリントレトロスペクティブ」や「スプリントレビュー」を行います。
教えてジョー!スプリントバックログ編
アジャイル業界をリードする、ジョー ジャスティスに直接質問して聞いてみました!
スプリントバックログにおける注意点やポイントについて、JOEの経験から教えて下さい。
- スプリントバックログにおける注意点やポイントとは?
-
①1日以内に完了できるタスクサイズに分割する。これを実現するためには、DevOpsなど自動化の導入や、共同作業のモブを導入することが重要です。
②スプリントバックログには、テストとリリースまで含める。
最初のうちはスプリントが1ヶ月以上になってしまったり、リリースができなくても大丈夫です。スプリントを繰り返すことにより、チームは改善を続けこれらが実現できるようになるでしょう!大丈夫!最初から全てを完璧にすることはできないので、少しづつ始めれば良いのです。
スプリントバックログまとめ
スプリントバックログとは「スクラム」における作成物のひとつで、スプリントゴールを達成するために必要な技術的なタスクリストのようなものです。
スプリントバックログは作業可能なサイズに分割し、細分化することが重要です。
ツールやテンプレートなども活用しながら、チームで一緒に作成し、スムーズなリリースを目指しましょう。