“とはいえ”シリーズは、スクラムに取り組む現場で起こる様々な「とはいえ」をピックアップし、それぞれどのようにアプローチしていけばいいのか、レッドジャーニーの経験豊富なアジャイルコーチがざっくばらんに語るシリーズです。
「スクラムガイドにはこう書いてあるし、ブログではこういう事例を見かけるんだけど、とはいえ…」と困ってしまったり、チームで対話しても道筋が見えてこない時、ここでのお話が何か一つでもヒントになれば幸いです。
第11回のテーマは「スプリントバックログ」です。
前編では、スプリントバックログの内容や具体的な書き方、タスク分解のポイントなどについてお話します。
中村 洋 Yoh Nakamura
株式会社レッドジャーニー
CSP-SM(認定プロフェッショナルスクラムマスター)・CSPO(認定プロダクトオーナー)
様々な規模のSIerや事業会社でのアジャイル開発に取り組み、今に至る。現在まで主に事業会社を中心に40の組織、80のチームの支援をしてきた。「ええと思うなら、やったらよろしいやん」を口癖に、チームや組織が自分たちで”今よりいい感じになっていく”ように支援している。
※発表資料 「いい感じのチーム」へのジャーニー、チームの状況に合ったいろいろなタイプのスクラムマスターの見つけ方、アジャイルコーチが見てきた組織の壁とその越え方、など多数。
新井 剛 Takeshi Arai
株式会社レッドジャーニー 取締役COO
CSP(認定スクラムプロフェッショナル)、CSM(認定スクラムマスター)、CSPO(認定プロダクトオーナー)
プログラマー、プロダクトマネージャー、プロジェクトマネージャー、アプリケーション開発、ミドルエンジン開発、エンジニアリング部門長など様々な現場を経て、全社組織のカイゼンやエバンジェリストとして活躍。現在はDX支援、アジャイル推進支援、CoE支援、アジャイルコーチ、カイゼンファシリテーター、ワークショップ等で組織開発に従事。勉強会コミュニティ運営、イベント講演も多数あり。
Codezine Academy ScrumBootCamp Premium、機能するチームを作るためのカイゼン・ジャーニー、今からはじめるDX時代のアジャイル超入門 講師
著書「カイゼン・ジャーニー」、「ここはウォーターフォール市、アジャイル町」、「いちばんやさしいアジャイル開発の教本」、「WEB+DB PRESS Vol.111 見える化大作戦特集」
スクラムは、複雑なプロダクトを開発・提供・保守するためのフレームワークです。1990年代初頭、Ken Schwaber と Jeff Sutherland によって開発されました。
スクラムに取り組む際の拠り所となるのが、スクラムの定義やルールを示した「スクラムガイド」です。2010年に最初のバージョンが発表され、その後アップデートが加えられながら進化し続けています。
全18ページ(2020年版)という小さなガイドですが、目的や理論から実践まで分かりやすくまとめられており、スクラムの本質が理解できるようになっています。
「スプリントバックログ」および関連する箇所について、スクラムガイドにはこのように解説されています。
スクラムの作成物
スクラムの作成物は、作業や価値を表している。これらは重要な情報の透明性を最大化できるように設計されている。作成物を検査する人が、適応するときと同じ基準を持っている。
各作成物には、透明性と集中を高める情報を提供する「確約(コミットメント)」が含まれている。これにより進捗を測定できる。
- プロダクトバックログのためのプロダクトゴール
- スプリントバックログのためのスプリントゴール
- インクリメントのための完成の定義
これらの確約は、スクラムチームとステークホルダーの経験主義とスクラムの価値基準を強化するために存在する。
スプリントバックログ
スプリントバックログは、スプリントゴール(なぜ)、スプリント向けに選択されたいくつかのプロダクトバックログアイテム(何を)、およびインクリメントを届けるための実行可能な計画(どのように)で構成される。
スプリントバックログは、開発者による、開発者のための計画である。スプリントバックログには、スプリントゴールを達成するために開発者がスプリントで行う作業がリアルタイムに反映される。その結果、より多くのことを学ぶにつれて、スプリントの期間を通して更新される。
スプリントバックログはデイリースクラムで進捗を検査できる程度の詳細さが必要である。
確約(コミットメント):スプリントゴール
スプリントゴールはスプリントの唯一の目的である。スプリントゴールは開発者が確約するものだが、スプリントゴールを達成するために必要となる作業に対しては柔軟性をもたらす。スプリントゴールはまた、一貫性と集中を生み出し、スクラムチームに一致団結した作業を促すものでもある。
スプリントゴールは、スプリントプランニングで作成され、スプリントバックログに追加される。開発者がスプリントで作業するときには、スプリントゴールを念頭に置く。作業が予想と異なることが判明した場合は、スプリントゴールに影響を与えることがないように、プロダクトオーナーと交渉してスプリントバックログのスコープを調整する。
出典:スクラムガイド
…とはいえ、実際の現場ではガイド通りには進みませんし、そもそも書かれていないような事態も多々起こります。そうした「とはいえ」に、どのようにアプローチしていけば良いでしょうか。
スプリントバックログとスプリントゴール
中村:
まずは、スクラムガイドの該当部分を一緒に読んでみましょう。
…分かるような、分からないような(笑)。
でも、気になるトピックが山ほどありますね。
新井:
初見ですべてを理解するのは難しいかもしれませんね。
中村:
たしかにそうですよね。新井さんや私は実践を通してずっと触れているから、言わんとしていることが分かりますけど…。
何を言っているかというと、「スプリントバックログはスプリントゴールを実現するためにあるよ」ということ。スプリントゴールを見据えながら、スプリントバックログに対して活動していこうということです。
新井:
ペアで存在するということですね。
中村:
いい表現ですね! スプリントバックログはあるけどスプリントゴールはないとか、その逆も、基本的にないということですよね。
スプリントバックログはタスクリストだけではないということも言っていますね。
「スプリントバックログは、スプリントゴール(なぜ)、スプリント向けに選択されたいくつかのプロダクトバックログアイテム(何を)、およびインクリメントを届けるための実行可能な計画(どのように)で構成される。」という一文は、読み飛ばしのないようにしたいところです。
新井:
タスクリストやタスクボードがあればいいと思われがちですが、それらは主にWhat(何を)にフォーカスしたものです。
スプリントバックログは、WhatだけでなくWhy(なぜ)とHow(どのように)も合わせた3つがセットになっているんですよね。
中村:
さらに、「より多くのことを学ぶにつれて、スプリントの期間を通して更新される」とあります。
途中で何かが見つかることもあるということを前提に置いていて、すごくいい書き方だなと思います。
新井:
決まったものだから変えちゃいけないと思い込んでしまったり、その通りにこなしていくことを優先するモードになりがちですが、実際はデイリースクラムで検査・適応するサイクルを回していくことが大事です。
そして、検査・適応のためには、ある程度充実したスプリントバックログが必要ということですよね。
中村:
スプリントゴールについては、プロダクトオーナーのものでも開発者のものでもなく「チームに一致団結した作業を促すもの」だと書いてありますね。
新井:
「スプリントの唯一の目的である」とも書いてありますね。
自分のことをふりかえると、スクラムをやり始めた頃はスプリントゴールを結構ないがしろにしてしまっていたなと思います。
やっぱり「タスク管理」になっちゃうんですよね。
Message from coaches
- スプリントバックログはスプリントゴールを実現するためにある。スプリントゴールとスプリントバックログはペアと覚えておこう。
- スプリントバックログは、「What」=プロダクトバックログ、「Why」=スプリントゴール、「How」=インクリメントを届けるための実行可能な計画、の3つがセットになっている。主に「What」にフォーカスするタスクリストとは違うので要注意。
- スプリントバックログは適宜更新されることが前提。デイリースクラムで検査・適応するサイクルを回していこう。
- スプリントゴールはチームみんなのもの。目の前のタスク管理にとらわれず、チームで一致団結してスプリントゴールを目指そう。
スプリントバックログ、どんな風に書けばいい?
新井:
スクラムガイドには「スプリントバックログはデイリースクラムで進捗を検査できる程度の詳細さが必要」とあります。
具体的には何を書いてもいいと言えばそうなのですが、受け入れ基準はきちんと書けるといいですね。
何が終わったらこのタスクは終わるのか。タスクごとにきちんと受け入れ条件を書いて、誰が担当するのかというところまで書けるといいかな。そこは必須条件じゃないかなと思います。
ただ、非エンジニアの人たちにスクラムのフレームワークを導入するとき、受け入れ条件(Acceptance Criteria)という考え方は理解が難しいこともあります。
例えば、「○○ミーティングを開催する」「○○ドキュメントを作成する」といったタスクで、明らかに全員が認知できているような場合には、あえて受け入れ条件を書かなくても問題ないと思います。
でも、はじめのうちは認識合わせをするために受け入れ条件をちゃんと書くようにするといいですね。
中村:
今のお話は「What」のところだと思うのですが、「How」についてはどうでしょうか?
代表的な方法としてはタスク分解があると思いますが、その場合は何か違いがあるでしょうか。
新井:
基本的には同じフォーマットで書くようにしますが、タスクのタイトルがきちんと内容を表しているか、誰が見ても同じタスクとして解釈できるかどうか、という点は気にした方がいいですね。特に最初の方は見落とされがちです。
中村:
タイトルは対象だけを書くのではなく、「○○を××する」という風に書くといいですね。
例えば「ニンジン」としか書いていないと、それを焼くのか切るのか分からないので、結局誰かに訊くことになります。それはもったいないですよね。
インクリメントを届けるための計画は、大体はタスクリストになりますが、全体の構造が一覧で見られるようにするといいですね。
1枚のボードの最上位に「何のためのスプリントなのか?」がちゃんと書いてあって、その下に「それを実現するためのバックログアイテム」があって、その横に「それらのバックログアイテムの受け入れ条件」を現実のものにするためのタスクのリストがあるみたいな感じです。
新井:
スプリントのバーンダウンチャートを使うのはどうでしょうか?
※バーンダウンチャートとは
プロジェクトの進捗状況を視覚的に見ることができるグラフのこと。縦軸に残りの作業量を、横軸に時間を示すことが多い。プロジェクトの総作業量と期間が決定したら、日々の作業量の進捗を記録し、理想線と実績線を書き入れる。
中村:
最近は、初手ではあまり作らないですね。チームの熟練度にもよりますが、チームが必要だと思えば作るという感じでしょうか。
1週間のスプリントなら実質は5日間ですから、そこまでしなくても大体分かるというのが体感です。
新井:
たしかに、2週間スプリントなら折り返し地点で「本当に終わるのか?」と気になるところですが、1週間スプリントなら大体見通せますよね。
Message from coaches
- スプリントバックログはデイリースクラムで検査・適応できるくらいの詳細さが必要。特にはじめのうちは、タスクごとに受け入れ条件を書き、誰が担当するのかというところまで書いておこう。
- タスクのタイトルは、誰が見ても同じタスクとして解釈できるように、対象だけではなく「それをどうするのか」まで明記しよう。
- 非エンジニアのメンバーにとっては、受け入れ条件の概念が理解しづらいことも。慣れてきたら、チームの暗黙知についてはあえて受け入れ条件を書かない選択肢もある。
- インクリメントを届けるための計画は全体の構造を1枚のボードで一覧化しよう。最上位に「何のためのスプリントなのか?」、その下に「それを実現するためのバックログアイテム」、その横に「それらのバックログアイテムの受け入れ条件」のタスクリストという形がおすすめ。