スマートキャンプでBOXIL SaaSのエンジニアをやっております永井です。
猛暑のみぎりでございますが、皆さまいかがお過ごしでしょうか。
今回はスクラム開発におけるスプリントプランニングに関してブログを書きました。
というのも正直スプリントプランニングって結構大変じゃないですか?
そこで今回は最近のスプリントプランニング状況や、チームの取り組みについて共有しようと思います。
スプリントプランニングとは
そもそもスプリントプランニングとは何かを軽くおさらいします。
スクラムガイドには以下のように書かれています。
スプリントプランニングはスプリントの起点であり、ここではスプリントで実⾏する作業の計 画を⽴てる。結果としてできる計画は、スクラムチーム全体の共同作業によって作成される。 https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Japanese.pdf
ゴールの策定など多くの要素がありますが、第一にすることは「次のスプリントで何するかしっかり皆で計画を立てようぜ!」と私は認識しています。解釈違いの方ごめんなさい。
現在BOXIL SaaSチームでは、開発チームが中心となり、次のスプリントでは対象のタスクをどう進めるかを詳細に詰めていく作業をしています。
開発タスクにおいては既存仕様の共通認識を取ったうえで、実現の方法を話し合います。調査タスクでは何をどこまで調査すれば良いかを話し合います。
ここでは「どうやってタスクを進めるか、皆で話し合ってるんだな」くらいに思ってもらえればOKです。
最近のBOXIL SaaS開発について
BOXIL SaaSチームでは、ここ数ヶ月の間に業務委託の方や新卒の加入が相次ぎ一気にメンバーが増えました。
また人数も増え、大きめのタスクも増えたため、作業時間を多めに確保するためにスプリント期間を1週間から2週間に変更しました。
スクラムガイドによると、1ヶ月のスプリントでは、プランニングにかける時間は最大8時間とされています。したがって、今回は2週間のスプリントに対して、プランニング時間を半分の最大4時間に設定し、定期的に確保して開催しています。
また弊社ではリモートワークを中心としているため、スプリントプランニングもオンラインで行っています。
これらをまとめたものが下記です。
- スプリントは2週間
- プランニングにかける時間は最大で4時間
- つまり4時間で2週間分のタスクのプランニングを行なう。
- 最近JOINしたメンバーが多め
もし参考にされる場合はこれらも頭の片隅に置きつつ読み進めると良いかもしれません。
先に結論
こういった話はスクラムに限らず一発逆転ホームランのような手は無いです。また「スプリントプランニングが楽勝に進む最強のメソッド!」みたいな怪しささえ感じるものもありません。あったら教えてください、本当に。取り入れたい。
以前も「ホームランは狙わず地道に改善しました」といった内容の記事を書いていますので気になる方はご参照ください。
そんな中でも楽しく参加できたり、継続することで良くなっていくような施策を振り返りの中で考え、実行に移しているので、いくつかご紹介できればと思います。
施策
1.ポモドーロ・プランニング
いきなりですが「ポモドーロ・プランニング」は造語です、すいません。
名前の通りポモドーロ・テクニックを用いてプランニングをしよう、というものです。
ポモドーロ・テクニックとは
ポモドーロ・テクニックは、25分の作業と5分の休憩を繰り返す作業管理法です。4回に1度、長めの休憩を取ります。作業と休憩を明確に分けることで、集中力を維持できるというものです。
ポモドーロ・テクニックは、個人の勉強や作業などで使用されるのが一般的ですが、我々はそれをプランニングに適用しています。とはいっても、25分プランニングして5分休憩を繰り返し、4回に1度長めに休むだけです。特別なことはしていません。
やってみた感想
プランニングは長時間話し続けて疲弊することが多いため、明確な休憩の時間があると疲労が抑えられているように思います。個人的には目を閉じてボーッとすることが多いのですが、その間に頭も少し整理されるので効率があがっているように感じています。
また、ファシリテーターも定期的に交代をしているため良い区切りになっています。
あとは切れ目があることで「この25分で話しきりたい」という意識が働くのですが、これには一長一短があります。
良い点としては、重要なポイントを見極める意識が働くことです。また、それにより話が脱線しにくくなると感じています。
悪い点としては、急いでしまうことで考慮漏れができてしまう点があげられます。少しだけ脱線することで新しく考慮すべき内容が見えてくる事もあるので、脱線=悪という訳でも無いように思います。
おまけ(ChatGPTのプロンプト)
スケジュールを考えるのが面倒なときはChatGPTに以下のプロンプトを投げるとよしなに組んでくれます。ご活用ください。
◯時から◯時まで以下のフローに従ってスケジュールを組んでください - 25分間スプリントプランニングを行い、5分間休憩を1セット - これを繰り返し4セットに1回15分の休憩 - スプリントプランニングには◯さん・◯さん・◯さんをランダムかつ均等にファシリテーターとして割り振る
2.ファシリテーター・書記の順番交代制
今プランニングでは議論を推進する、いわゆるファシリテーター役を定期的に交代しながら進めています。これは特定の人がずっと中心になって話し続けるといったプランニングの属人化を防ぐと言った狙いがあります。あとついでにタスクのチケットに加筆する人も順番に交代しています。
ルーレット
担当はルーレットで決めています。以前は指名もしていましたが毎度指名するのも大変なので、最近はランダムに身を任せています(笑)
プランニングで議論をしている中での良い雰囲気づくりに一役買っているように思います。
デメリットはルーレットにも時間がかかることです(本末転倒)。ちょっと項目が多いですね。
個人的には「人志松本のすべらない話」で出てきた、あのサイコロ位のノリで決められると良いと思います。☆が出たら「最近出てないし◯◯さんやってみますかー」みたいな。
3.内職を我慢する
急に当たり前な施策ですね(笑)
「そりゃそうだろ!」と言われそうですが、オンラインだと案外難しいと感じています。
プランニング中に開発タスクをやっちゃう、位の明確な内職だと分かりやすいし意識的に避けやすいと思います。
しかし、議論の中で分からないことを調べてそのまま脱線してしまったり、Slackから「スッコココ」と聞こえ、返事の間に話に置いていかれるといったケースは案外多いのではないでしょうか。
なるべく手を動かさないようにして議論に集中しようという話なんですが、そうしてると本当に疲れます。そのための定期的な休憩ですね。
また、プランニング中はファシリテーターと書記以外は気になったことはコメントをどんどん残していくように取り決めています。オンラインMTGツールはチャット機能も付いているので、話すだけでなくそこにも書き込むことで議論を積極的に行います。
オンラインだと話す人が一人に限られてしまったり、オフラインだとできる「小さめの声で隣の人に確認する」といったことができなかったりするため、こういったところでも補っているように思います。
4.おやつを食べる
もはや施策なのかと言われそうですが施策です(断言)。
集中はしつつも緊張しすぎないように適度におやつでもつつきながら議論しています。
オンラインMTGなのでマイクの切り忘れなどで咀嚼音ASMRをメンバーにお届けしないように気をつけるのがポイントです。グミとかチョコとかおすすめです。
まとめ
結局のところ、本質的に良いプランニングのためにすることは、メンバー全員がより仕様に詳しくなり、意思決定も滞りなく行えるようになることではないかと考えています。
それに対して今回あげた施策は直接は影響しない、いわば付け焼き刃のような施策と言えるかもしれません。
ですが、現状の中で最善のプランニングを行い、手戻りのない開発を進めることで、未来のより良いプランニングにつながると考えています。今回紹介したこれらの施策もそれには一役買っていると思っています。
うまくプランニングができているかは開発が上手く回っているかの指標の一つになると思っているので、より良いプランニングを目指してこれからも振り返りつつブラッシュアップしていければと思っています。