はじめに
先日、認定スクラムマスター資格取得のための認定スクラムマスター研修に参加しました。
4日間(1日4時間)オンラインで行われ、講師はSCRUM MASTER THE BOOKの原本の著者であるZuzi Sochovaさんでした。
以前、CSMの研修を受講する時は講師で受ける研修を決めなさいと教わったことがあったのですが、発売日すぐにSCRUM MASTER THE BOOKを購入し、スクラムマスターの魅力に惹かれた自分にとって、今がその研修を受けるときだと感じました。
この記事では4日間の研修を受けて自分が特に印象的だったことを複数回に分けて投稿しようと思います。(何回に分けるかは決めてません... 気が済むまで書こうと思います。笑)
今回はスプリントゴールをはじめとするスプリントバックログについてです。
スプリントゴールとスプリント向けに選択したプロダクトバックログアイテム(PBI)の関係性
以前、なぜ「スプリントゴール」は必要か?という記事を投稿したのですが、その記事を投稿するきっかけになった研修からスプリントゴールの重要性に気づきながらも1つモヤモヤしていたことがありました。
それはプロダクトバックログの優先度の高いものからスプリントバックログの対象としていった時に、性質の異なるPBIが入り混じる状態になってしまった場合、共通のスプリントゴールを設定するのが難しいのでは?ということでした。
例えば、今回のスプリントゴールを「ゲストがホテルに直接連絡しなくても予約に関する手続きをすることができる」と設定したとします。
その時プロダクトバックログを見てみると優先順位の高い順に
・ ゲストがホテルを予約することができる
・ ゲストがホテルの予約キャンセルをすることができる
・ ゲストがフロントに行かずともサイト上からチェックインの手続きをすることができる
・ ゲストが予約日時を変更できる
・
・
・
となっていたとします。
チームのキャパシティを見ると上から3つ目までを今回のスプリントバックログにすることができそうですが、スプリントゴールとの結びつきを考えると、3つ目よりも4つ目のPBIの方が適しています。
このような場合、スプリントゴール(およびスプリントで選択するPBI)はどのように設定すべきでしょうか?
研修受講前の私の考えは以下の通りでした。
- そもそものPBIの優先順位の付け方が誤っていた(例で言うと3番目と4番目が逆)
- 優先度の高いPBIからスプリントバックログとして選択し、スプリントゴールをより包括的なもの(よりアバウトなもの)に設定する
- 複数のスプリントゴールを設定し、スプリントバックログのPBIに紐づけができるようにする
1についてはスプリントゴールとしては間違ってないのかもしれませんが、このプロダクトが与えようとしている価値を考えると優先順位としては間違っていない可能性も十分に考えられますし、きっとそうなっているはずです。
2についてはスプリントゴールを包括的なものに設定するとどうしても表現がアバウトなものになってしまい、明確さを失ったスプリントゴールになってしまうため、本来の目的を果たさなくなるだろうと考えていました。
3はたしかにそのような設定の仕方は可能であると思いながらも、ゴールは1つにすべであるべきとのギャップから正しくスプリントゴールが設定できているように思えませんでした。
そこで今回の研修でZuziさんにこの件について質問をしてみました。
Zuziさんの答えは「スプリントゴールを達成できるPBIを優先順に選択すべき」とのことでした。
要するに今回の例で言うと、3つ目のPBIは今回のスプリントゴールを達成するアイテムではないため、今回のスプリントバックログには選択せず、4つ目のPBIを選択しようとなります。
それでは、3番目のPBIはどうなるのか?という話ですが、このスプリントを順調に終えることができると次のスプリント開始時には自ずと3番目のPBIが最も優先順位の高いアイテムとなります。
したがって、次のスプリントではこのPBIが紐づくスプリントゴールが設定されることになります。
スプリントゴールは変更してはいけない。スプリントに選択したPBIは変更してよい。
これはZuziさんが研修で仰っていたことです。スプリント期間中開発していると、スプリントゴール達成に向けたより重要なPBIの存在に気づいたり、見積もりよりも進みが悪く優先度の低いPBIに着手できなさそうとなることがあると思います(経験的には圧倒的に後者が多いですね)。
この場合ではスプリント期間中であっても、選択したPBIに変更を加えて構いません。
ただし、スプリントゴールは変えてはいけません。進みが悪く優先度の低いPBIを落とす判断をしたとしても、残ったPBIでスプリントゴールが達成されることが必要です。
そのためにもスプリントプランニングで正しいスプリントゴールを設定することが必要です。
スプリントゴールは方向達成
先ほどリンクした過去投稿にスプリントゴールは「誰にどのような価値を提供するか」を設定すると記載しました。
もちろんこれは正しいスプリントゴールの設定方法です。
しかし、今回の研修で新たな解釈・着眼点を得ることができました。
今回の研修で教わった正しいスプリントゴールは「定量的なゴールを設定するのではなく、方向性を意識付けするゴールを設定する」ということです。
どういうことか言うと、例えば「○○画面への遷移時間を△△%早くする」みたいなスプリントゴールを設定したとします。
しかし、このスプリント中、問題が発生し、目標としていた△△%は達成できそうにありません。これではスプリントゴールを達成できず、スプリントを終えてしまいます。
方向性を意識付けしたゴールだと「○○画面への遷移時間を早くする」となります。
これだと例え△△%は達成できなさそうでも、それに満たない割合であれば遷移時間を早くすることができそうなので、スプリントゴールの達成をすることができそうです。
でも、実際にはそれだけではユーザーに十分な満足(価値)が届けられないかもしれません。
それは実際にリリースし、ユーザーからフィードバックを得ることで初めて知れることなので、そのときに再度プロダクトバックログへの追加やスプリントバックログに設定することをすればよいのです。
このように方向を意識づけたスプリントゴールを設定する、そしてそれが十分が否か定量的な部分はユーザーからフィードバックから得るというサイクルを回すことでユーザによりよい価値を提供し続けることができます。
まとめ
スプリントゴールの重要性に気づいてはいましたが、今回の研修でその重要性やあり方をより知ることができました。
スプリントという短い期間でゴールを設定し、そのゴール達成に向けて開発し、スプリントの終わりにはゴールの達成でユーザーに価値を届け、フィードバックを得て、また新たなスプリントでユーザーへの価値を作る...というこのサイクルとゴールとユーザーへの価値提供の結びつきが個人的にとても好きです。
次はスクラムマスターに必要な要素について投稿しようと思います。