“とはいえ”シリーズは、スクラムに取り組む現場で起こる様々な「とはいえ」をピックアップし、それぞれどのようにアプローチしていけばいいのか、レッドジャーニーの経験豊富なアジャイルコーチがざっくばらんに語るシリーズです。
「スクラムガイドにはこう書いてあるし、ブログではこういう事例を見かけるんだけど、とはいえ…」と困ってしまったり、チームで対話しても道筋が見えてこない時、ここでのお話が何か一つでもヒントになれば幸いです。
第12回のテーマは「インクリメント」です。前編では、インクリメントという概念の捉え方や、インクリメントができないときの対処法などについてお話します。
新井 剛
Takeshi Arai
株式会社レッドジャーニー
取締役COO/アジャイルコーチ
CSP(認定スクラムプロフェッショナル)、CSM(認定スクラムマスター)、CSPO(認定プロダクトオーナー)
中村 洋
Yoh Nakamura
株式会社レッドジャーニー
執行役員/アジャイルコーチ
CSP-SM(認定プロフェッショナルスクラムマスター)、CSPO(認定プロダクトオーナー)
スクラムは、複雑なプロダクトを開発・提供・保守するためのフレームワークです。1990年代初頭、Ken Schwaber と Jeff Sutherland によって開発されました。
スクラムに取り組む際の拠り所となるのが、スクラムの定義やルールを示した「スクラムガイド」です。2010年に最初のバージョンが発表され、その後アップデートが加えられながら進化し続けています。
全18ページ(2020年版)という小さなガイドですが、目的や理論から実践まで分かりやすくまとめられており、スクラムの本質が理解できるようになっています。
「インクリメント」および関連する箇所について、スクラムガイドにはこのように解説されています。
スクラムの作成物
スクラムの作成物は、作業や価値を表している。これらは重要な情報の透明性を最大化できるように設計されている。作成物を検査する人が、適応するときと同じ基準を持っている。
各作成物には、透明性と集中を高める情報を提供する「確約(コミットメント)」が含まれている。これにより進捗を測定できる。
- プロダクトバックログのためのプロダクトゴール
- スプリントバックログのためのスプリントゴール
- インクリメントのための完成の定義
これらの確約は、スクラムチームとステークホルダーの経験主義とスクラムの価値基準を強化するために存在する。
インクリメント
インクリメントは、プロダクトゴールに向けた具体的な踏み石である。インクリメントはこれまでのすべてのインクリメントに追加する。また、すべてのインクリメントが連携して機能することを保証するために、徹底的に検証する必要がある。価値を提供するには、インクリメントを利用可能にしなければならない。
スプリントでは、複数のインクリメントを作成可能である。インクリメントをまとめたものをスプリントレビューで提示する。それによって、経験主義がサポートされる。ただし、スプリント終了前にインクリメントをステークホルダーにデリバリーする可能性もある。スプリントレビューのことを価値をリリースするための関門と見なすべきではない。
完成の定義を満たさない限り、作業をインクリメントの一部と見なすことはできない。
確約(コミットメント):完成の定義
完成の定義とは、プロダクトの品質基準を満たすインクリメントの状態を示した正式な記述である。
プロダクトバックログアイテムが完成の定義を満たしたときにインクリメントが誕生する。
完成の定義により、作業が完了してインクリメントの一部となったことが全員の共通認識となり、透明性が生み出される。プロダクトバックログアイテムが完成の定義を満たしていない場合、リリースすることはできない。ましてやスプリントレビューで提示することもできない。そうした場合、後で検討できるようにプロダクトバックログに戻しておく。
インクリメントの完成の定義が組織の標準の一部となっている場合、すべてのスクラムチームは最低限それに従う必要がある。組織の標準になっていない場合、そのスクラムチームはプロダクトに適した完成の定義を作成する必要がある。
開発者は完成の定義に準拠する必要がある。プロダクトにかかわるスクラムチームが複数ある場合、共通の完成の定義を作成して、それに準拠する必要がある。
出典:スクラムガイド
…とはいえ、実際の現場ではガイド通りには進みませんし、そもそも書かれていないような事態も多々起こります。そうした「とはいえ」に、どのようにアプローチしていけば良いでしょうか。
「インクリメント」ではなく、もっとチームに馴染む言葉で言い換えてもいい?
中村:
まずは、スクラムガイドの該当部分を一緒に読んでみましょうか。
今回は「踏み石」というメタファーが冒頭から登場していて、おもしろいですね。
「スプリントでは、複数のインクリメントを作成可能である」「スプリントレビューのことを価値をリリースするための関門と見なすべきではない」など、実際の現場でよくある状況について書かれていますよね。
新井:
「スプリント終了前にインクリメントをステークホルダーにデリバリーする可能性もある」というところも、そうですね。
中村:
「完成の定義」はスクラムガイドの最後に出てくるので、見逃されやすいのですが、取り組みの初期から取り組んで行く必要のある要素だと思います。
新井:
何をもって完成したのかという認識は人によって異なるので、食い違いが起こりやすいですよね。
また、「インクリメント」という言葉は、非エンジニアの方には伝わりづらい表現だと思います。
成果物でもないし、アウトプットでもないし、プロダクトでもないし…とはいえ、異なる表現にするとスクラムガイドのニュアンスから外れてしまうのではないか、と思う方もいらっしゃるかもしれません。
実際に、「インクリメント」という言葉が浸透しているチームと、そうじゃないチームがあるのではないでしょうか。
中村:
私がアジャイルコーチとして支援するときには、自分たちが共通認識として分かる言葉だったら、別の呼び方でも全然いいとお伝えしています。
新井:
そうですね。意味合いがスクラムガイドから外れていなければ、チーム独自の言葉を使ってもいいと私も思います。
具体的には、どんな言葉を使っているでしょうか?
中村:
プロダクトづくりをしているチームなら、「プロダクトに対する変化」という表現をよく使っています。
機能が増えるとか、体験できることが増えるとか、まれに機能をなくす場合もあるので「変化」です。
新井:
なるほど。プラスされるだけじゃないから、「変化」なんですね。
中村:
そういう変化そのものをインクリメントと呼び変えてもいいんじゃないかな。
新井:
減らすことって、なかなか勇気がいるじゃないですか。
機能を減らすのは価値を減らすようでもったいないと思ってしまったり。
でも、それがユーザーにとってメリットを生まないのであれば、カットしていくのはいいことですよね。
参加者コメント:
「進化」はどうでしょうか?
中村:
進化、いいですね。
参加者コメント:
完成の定義は、プロダクトバックログに対応するものですか?
プロダクトバックログに対応するのは「受け入れ基準」で、完成の定義はインクリメントに対応するものと理解していました。
中村:
完成の定義を満たしたときにインクリメントが誕生するので、完成の定義はインクリメントに対応するものですね。
新井:
スクラムガイドの「スクラムの作成物」の項目にも「インクリメントのための完成の定義」とあります。
それで言うと、プロダクトバックログに対応するのはプロダクトゴール、プロダクトバックログアイテムに対応するのは、受け入れ基準ということになるかな。
Message from coaches
- 意味合いがスクラムガイドから外れていなければ、自分たちが共通認識として理解できる、別の言葉に言い換えてもOK。
- プロダクトづくりをしているチームなら、「プロダクトに対する変化」という表現を使うことも。
- インクリメントは、ユーザーにとっての価値が増える変化を指す。ユーザーにとってメリットを生まない場合は、勇気をもって減らすことも必要。
新しくできた機能、既存の機能、全体としての機能、すべてインクリメントと呼ぶのはなぜ?
中村:
あるスプリントが始まる前までにつくられて、すでに存在しているサービスやプロダクトもインクリメントですし、そのスプリントで新たにつくられた体験や機能の変化もインクリメントと呼びます。
さらに、それらを合わせた全体のこともインクリメントと呼ぶんですよね。
ややこしいですよね(笑)。皆さん、混乱しがちなところです。
新井:
インクリメントの前に「今回のスプリントでつくられた」「これまでにつくられた」「全体としての」と付け加えないと、区別ができなくて混乱しますよね。
中村:
継続的な品質が担保できて全体として動いているのか、ということをあらためて言っているのかなと思います。
そのスプリントで新しくできた機能が、ちゃんと動いたり、完成の定義を満たしていたりすることは当然必要なのですが、それだけじゃなくて、全体としてもちゃんと動く必要がある。
新しい機能ができたけど、今までのものと合わせると動かなくなるというのではダメなわけです。
新井:
全体を統合したときに、きちんとデリバリーできる状態まで検査が済んでいることが必要ということですね。
参加者コメント:
単純に「アウトプット」と考えたら良いですか?
中村:
プロダクトづくりの文脈なら「アウトプット」なのかな。
「単純に」というところがちょっと気になるけど…先程お話したような、プロダクトや機能の変化という感じが分かりやすいかな。
新井:
スクラムガイドには「価値を提供するには、インクリメントを利用可能にしなければならない」とあります。
インクリメントには価値を提供するために利用可能であるという意味合いがあるので、やはり単なるアウトプットとは違うんじゃないかな。
価値につながっていないとしたら、半分しかできあがっていないというか…。
中村:
最低でも完成されている、つまり完成の定義を満たしているということですよね。
参加者コメント:
「アウトプット」だと、ドキュメント作成なども含まれてしまう気がします。
動くソフトウェアが対象だと理解していますが、合っているでしょうか?
中村:
その通りですね。例えば仮説検証のプロジェクトだとまた話は変わってくるので、ちょっと歯切れの悪い言い方になってしまっていますけど、基本的にプロダクトづくりをしているスクラムチームであれば、インクリメントは多くの場合、プロダクトの変化そのものになることが多いと思います。
ドキュメント作成はアウトプットではありますが、インクリメントとはあまり呼ばないんじゃないかな。
新井:
たしかに、要素の一つではあるけど、インクリメントとはちょっと違うかな。
参加者コメント:
ユーザーやステークホルダーにとって価値があれば、ドキュメントもインクリメントに含まれると理解しています。
中村:
そのドキュメントが中間成果物であれば、インクリメントとは違うということかな。
皆さんが取り扱っているプロダクトや、チームの置かれた環境によって違いますので、最終的には自分たちで決めればいいと思います。
新井:
中間成果物が価値を生むこともあるでしょうし、生まない場合もあると思うのですが、いずれにしても思考停止状態で、とりあえずつくるようなことは良くないですね。
「決まりだからつくっている感じになっていないか?」「ちゃんと価値を生んでいるのか?」と、自分たちでメスを入れていって、時間をかけてつくる価値があるかどうかをチームで議論してほしいです。
中村:
「このドキュメントがなかったら何が起こるの?」と問いかけてみるといいですね。
誰も答えが分からないのであれば、一旦つくらずにやってみる。それでうまくつくれたなら、短期的には必要性がないという可能性が高いですよね。コーチとして支援していると、そういう実験を促すことがよくあります。
新井:
いいですね。そういうときって、大体なくなっても困らないんですよね(笑)。
勇気を持って実験してみてほしいです。
Message from coaches
- 新しくできた機能が完成の定義を満たしているだけではなく、全体としても連携して機能することで、ユーザーへ価値を提供することができる。プロダクトづくりを通して、継続的な品質が担保されているかを検証する視点を持とう。
- インクリメントという言葉には、「価値を提供するために利用可能である」という意味合いが含まれる。中間成果物などのアウトプットがインクリメントに含まれるかどうかは、それが価値につながっているかどうかを基準に考えよう。
- 何をインクリメントと呼ぶかは、取り扱うプロダクトやチームを取り巻く環境によって違ってくる。最終的には自分たちでスクラムガイドに照らし合わせて決めよう。
- ドキュメント一つでも、時間をかけてつくる価値があるものなのかをチームで議論していこう。価値があるかどうか分からないときは、一旦つくらずに進めてみる勇気も必要。