SmartHR Tech Blog

SmartHR 開発者ブログ

"とりあえず"ではじめよう!スプリントゴール

こんにちは!SmartHRの基本機能を開発しているsushi__melodyです! 今回は、スプリントゴールを策定・活用できていなかったチームが、不完全でもスプリントゴールを作り始めたことで、ステークホルダーとのコミュニケーションが改善して、しかもスクラムのプロセス自体がユーザー価値を中心に回り始めたよ、というお話です。

スプリントゴールの導入の背景

スプリントゴール導入直前のわたしたちのチームはスクラムにそれなりに慣れてきて、プロダクトの改善もプロセスの改善もリズムよく着実にすすめられている実感がもてている状態でした。

一方で、各スプリントでステークホルダーからの協力を仰いだり、チーム外に対して「実現したい価値に対してわたしたちがどこにいるのか」が伝えられないことが課題となっていました。

たとえば、スプリントレビューのタイミングで「今後の機能開発の展望」と「今スプリントで行ったこと」をステークホルダーに伝えようとしても、展望と作成されたインクリメントの関係をうまく結びつけて言語化することができず、コミュニケーションに課題が生じていました。

原因を探るためにスプリントレビューについて調べていくと、どうやらわたしたちはスプリントゴールに問題があることがわかってきました。

というのも、わたしたちのスプリントゴールは誕生日のお祝いだったのです……

Jiraのスプリントゴール欄に「sushi__melodyさんの誕生日を祝うぞい sakoさん展示会頑張ってください」と書かかれている
あるスプリントで設定されたスプリントゴール。
sushi__melodyの誕生日は10/13です。よろしくお願いします。

当時のわたしたちは※ SmartHRの基本機能チームではLeSSを採用しており、各チームが別々の機能を開発しているため、共通のスプリントゴールが立てづらいという背景があったのです。

それはそれで和やかで楽しかったのですが、スプリントの目標として機能していなかったのは事実です。

誕生日のお祝いが慣習になっていたスプリントゴール欄でしたが、前述のステークホルダーとのコミュニケーション上の課題を解消できる期待感や、チームの「スプリントゴール設定したらどうなるのか実験してみよう〜」という雰囲気もあり、導入を進めることになりました。

スプリントゴールとは

ここでスプリントゴールについておさらいしておきます。

スクラムガイドに依れば、スプリントゴールはスプリントの唯一の目的であり、確約です*1。スクラムチームはスプリント中、スプリントゴールを達成することに集中します。

また、スプリントゴールとして設定する内容は、そのスプリントになぜ価値があるかをステークホルダーに伝えられるようなものであることとされていて、プランニングが終わるまでに確定する必要があります*2

プランニングはプロダクトゴールの実現に向けたプロダクトバックログアイテムを具体的な価値のインクリメントに変換する*3ための作業計画ですので、プランニングを通じて立てるスプリントゴールは、どのようにプロダクトゴールに近づくのかを明確にし、周囲にもその価値を宣言するという性格があると考えられます。

将来のプロダクトゴール達成に向かってスプリントゴールを立てることを矢印で表現した図。過去のスプリントゴールも矢印で表現されており、蛇行しつつも軌道修正しながらプロダクトゴールに向かっている
将来のプロダクトゴール達成のためにスプリントゴールを立てる

つまり、

  1. プランニングを通じて具体的にプロダクトゴールに近づく方法(=スプリントゴール)を考え、宣言する
  2. スプリントで具体的なインクリメントを作成する
  3. 成果物をスプリントレビューにかけ、プロダクトゴールに近づけているかを検査する
  4. 検査した結果をもとに、次のプランニングでどのように軌道修正してプロダクトゴールに近づくかを考える

というサイクルを繰り返してプロダクトゴールの達成を目指します。

上記の説明を踏まえると、「スプリントゴールとは、プロダクトゴールを達成するための今スプリントのねらいである」と言い換えることもできそうです。

多くの場合、なんらかの価値の実現がプロダクトゴールでしょうから、各スプリントで価値の実現に集中するためにもスプリントゴールはとても大事なものです。

実際に導入してみる

前項からわかるように、より質の良いスプリントゴールを立てるには、プランニング時にスプリントゴールとして「今スプリントはプロダクトゴール実現のために何をするのか」を考えることが重要です。

スプリントゴールを立てるときに困ったこと

しかし、当時のわたしたちはプロダクトゴールを明示的に立てられていませんでした。取り組んでいた機能開発が外部APIとのつなぎ込みという技術的な性格が強いものであったという事情もあり、満たすべき要求仕様は定めていたものの、ユーザー価値として何を実現するべきかを言葉にするのが難しかったのです。

そのため当然、「プロダクトゴール実現のために何をするのか」という観点でスプリントゴールを立てることはできませんでした。

また、プロダクトゴールが存在しないこと以外にもいくつか課題が有りました。リストにしてみます。

  • スプリントバックログが一つのゴールにとして機能するような価値のかたまりになっていない
  • そもそも価値ベースで開発アイテムが切られていない
  • スプリントゴールでは拾いきれない細かいタスクが混じっている

"とりあえず"ではじめてみる

理想的なスプリントゴールを立てるには障害がありましたが、解決したい当面の課題はステークホルダーとのコミュニケーションだったので、とりあえず導入してみて少しずつ良くしようという方針でスプリントのねらいを言語化しようと決めました。

プランニング終了までにスプリントゴールを立てることはわかっていたので、プランニングの流れに入れ込むかたちでスプリントゴールを策定することにしました。

当時のプランニングの流れは次のようなものです。

  1. チームのタイムボックスから消化できそうなポイント数を予想する
  2. 予想した消化ポイント数に基づいて、優先度順で並べ替え済みのバックログから開発アイテムを上からピックアップし、スプリントバックログに乗せる
  3. スプリントバックログのアイテムの詳細について調べ、スプリント中の計画を立てる
  4. 予想よりも開発アイテムが増減しそうであれば再度スプリントバックログを調整する

スプリントゴールを立てることにしたのは、上記の4が終わったあとのタイミングです。

つまり、確定させたあとのスプリントバックログを眺めて、今スプリントで提供できる価値がなんなのかを言語化し、スプリントゴールとすることにしました。

特に留意したのは次の点です。

  • スプリントバックログのなかで最も重要なユーザー価値はなにか
  • ステークホルダーにたいしてこのスプリントはどんな価値があるものだと言えるのか

実際に立てていたスプリントゴールは次のようなものです。

  • なぜ◯◯できないかが分かり、ユーザーの業務が滞らなくなるようにする
  • 〇〇するまで〇〇しないようにして、お客様の業務を邪魔しない状態にする
  • 管理者は、〇〇の権限を持っている従業員を、特定の〇〇に対して〇〇として追加できる
  • 〇〇が〇〇の内容を確認できるようにするぞ!

導入による効果

"とりあえず"ではじめてみたスプリントゴールですが、各スクラムイベントでさまざまな効果を実感できました。

  • プランニング時
    • ユーザー価値について考える習慣が生まれた
    • 1センテンスにまとまっていることでステークホルダーに価値を伝えやすくなった
  • デイリースクラム時
    • プランニングに想定していないことが発生した場合でも、達成すべきスプリントゴール明確なため、どの開発アイテムを落とすかなどの意思決定がスムーズになった
  • スプリントレビュー時
    • スプリントの目的が明確なのでよりよい問いかけができるようになった
  • レトロスペクティブ時
    • ユーザー価値が目標になっているため、価値が実現できたかという観点でふりかえりができるようになった

全体としてステークホルダーとのコミュニケーション課題が解決し、スクラムのプロセスがユーザー価値を中心に回るようになりました。

また、スプリントゴールの取り組みを横展開したところ実施につながったチームもあり、実施したチームからは次のような声もありました。

  • バーンダウンはできなかったがスプリントゴールの達成はできてよいと思えるようになった
  • 価値提供がスプリントの目的となったことで、不確実性を先に潰すことができた

これからの取り組み

これまで書いてきたスプリントゴール策定の取り組みをはじめたころから、わたしたちのチーム状況は大きく変わっています。

技術的な性格の強かった機能開発に区切りが付き、現在はユーザーの業務課題を解決する性格がつよい機能開発に取り組むことになりました。

それに伴い、プロダクトゴールも明示的に設定しました。理想的とは言えなかったスプリントゴールの策定でしたが、プロダクトゴールを設定してチームの目線をあわせたことにより、価値の実現に向けて機能するプリントゴールを策定ができている感覚があります。

ただし、取り組みとしてはまだ日が浅いため、今後の成果に期待しています。

まとめ

スプリントゴール導入以前のわたしたちはいくつかの課題を抱えていました。

  • ユーザー価値に基づいたスプリントの目標がない
  • スプリントの価値を言語化できていないことでステークホルダーとうまくコミュニケーションがとれない

上記課題を解決するため、既存の運用を大きく変えないかたちでスプリントゴールを導入しました。

プロダクトゴールがない状態でのスプリントゴール策定でしたが、それでもスプリントゴールを立てることで以下の点を効果として実感できました。

具体的には以下の2点です。

  1. ユーザー価値を言語化することによってコミュニケーション・意思決定がスムーズになった
  2. スクラムイベントがユーザー価値を中心にまわるようになった

現在は明示的にプロダクトゴールを策定し、その達成に近づくように各スプリントでスプリントゴールの策定を行っています。

We Are Hiring!

SmartHR では一緒に SmartHR を作りあげていく仲間を募集中です!

少しでも興味を持っていただけたら、カジュアル面談でざっくばらんにお話ししましょう!

hello-world.smarthr.co.jp

*1:"スプリントゴールはスプリントの唯一の目的である。スプリントゴールは開発者が確約するものだが、スプリントゴールを達成するために必要となる作業に対しては柔軟性をもたらす。スプリントゴールはまた、⼀貫性と集中を⽣み出し、スクラムチームに⼀致団結した作業を促すものでもある。" Ken Schwaber & Jeff Sutherland「スクラムガイド」2020年版 p.12

*2:"プロダクトオーナーは、プロダクトの価値と有⽤性を今回のスプリントでどのように⾼めることができるかを提案する。次に、スクラムチーム全体が協⼒して、そのスプリントになぜ価値があるかをステークホルダーに伝えるスプリントゴールを定義する。スプリントゴールは、スプリントプランニングの終了までに確定する必要がある。 " 同 p.9

*3:"インクリメントは、プロダクトゴールに向けた具体的な踏み⽯である。インクリメントはこれまでのすべてのインクリメントに追加する。また、すべてのインクリメントが連携して機能することを保証するために、徹底的に検証する必要がある。価値を提供するには、インクリメントを利⽤可能にしなければならない。 " 同 p.13