ヴァル研究所 Advent Calendar 2021 18日目の記事です。
はじめまして、Webサービス開発チームの山崎です。
駅すぱあとの経路探索や運賃計算をAPI化した「駅すぱあとWebサービス」をメインに取り扱う開発チームのリーダーをしています。
この記事では、私がチームにスクラムを取り入れる上で、特に大事にしている2つのことを紹介します。
経緯・背景
私は今から3年前の2018年7月から現在の開発チームのリーダーになりました。
今年で4年目になりますが、当初からチームの開発では、スクラムをベースにしています。
スクラムについては、書籍やWebを参考にしたり、認定スクラムマスターを受講したりしながら学びました。
現在も、チームのメンバにも迷惑をかけつつ、試行錯誤しています。
ここ最近はチーム全体でリモートワークになり、ホワイトボードの代わりにMiroというサービスを利用してふりかえりを行ったりしています。
そもそもスクラムとは?
簡単にスクラムについて紹介します。
スクラムは、プロダクトなどの開発において、変化する環境の中で柔軟に対応し、顧客に価値を届けるためのプロセスのフレームワークです。
ありがたいことに、スクラムガイドという形でスクラムについてまとめられている資料があるので、こちらからも定義を抜粋します。
スクラムとは、複雑な問題に対応する適応型のソリューションを通じて、⼈々、チーム、組織が価値を⽣み出すための軽量級フレームワークである。
引用元:スクラムガイド 2020年11月
スクラムの概念や仕組みはとてもシンプルで理解はしやすいんですが、実際にやろうとすると、自分達の環境に合わせて試行錯誤をする必要があります。
スクラムを取り入れる上で大切にしている2つのこと
私がチームにスクラムを取り入れる上で、特に大切にしていることは以下の2つです。
- 目的を共有する
- タイムボックスを守る
こちらについて、紹介していきます。
目的を共有する
1つめは、目的を共有することです。
目的を共有することを大切にしている理由は、「スクラムをやっている」という形骸化を防ぐためです。
スクラムは、やり方もとてもシンプルにまとまっているため始めやすかったのですが、一方で、なんとなくでもできてしまったため、目的のためにスクラムを行っているのではなく、スクラムを行うことが目的となる「形骸化」の現象が発生しました。
「形骸化」というのは、「これは何のためにやっているのか?」という本来の目的を見失って、手順に沿ってただ実施している状況、というイメージです。
この問題に対して、私が実際に行ったこと、または行っていることは以下の2つです。
チームがスクラムを取り入れる目的を定義する
スクラム自体の目的はとてもわかりやすく、また、ガイドラインに沿って始めやすいため、スクラムは取り入れやすいと思います。
一方で、ただやってみるだけではなく、「自分達がなぜスクラムをするのか」という部分を定義することは大切だと思います。
これがなかったため、最初はスクラムを理解するということもあり、問題は目に見えて起きていなかったのですが、慣れてくると「なぜスクラムをやっているのか?」という雰囲気がチーム全体に生まれました。
この際に、「なんとなく流行っているからスクラムを取り入れてみた」だと、自分たちが主体的にスクラムを取り入れる理由としては弱く、「形骸化」しやすいと思います。
私も途中から自分達がスクラムを取り入れる理由を定義し、チームと共有しました。その結果として、「スクラムをやってみる」から、「スクラムを活用して、自分たちの目的を達成する」という意識に変わったと思います。
最初はスクラムに慣れることが目的でも良いと思いますが、もし慣れてきて惰性を感じ始めたら、改めて自分たちがスクラムを取り入れる理由を定義してみても良いと思います。
スクラムイベントの目的を常に共有する
スクラムイベントというのは
- 朝会(スタンドアップミーティング)
- スプリントレビュー
- ふりかえり(スプリントレトロスペクティブ)
- スプリントプランニング
という、スプリントの中で行うミーティングになります。
スクラムイベントもスクラムそのものと同様に分かりやすく、始めやすいです。
ただ、最初の頃のまず慣れてみるところから始めていると、スクラムイベントをすることが目的になり、本来の目的を見失うことがあります。
特にそれぞれのイベントでは以下のような誤解が生まれやすく、最初に「なぜそのスクラムイベントを行うのか」という目的を共有することが大事になると考えています。
- スプリントレビュー:「ステークホルダーからのフィードバックを得る」ことが目的だが、「デモする」ことが目的になっている
- ふりかえり:「改善する」ことが目的だが、「反省する」する場になっている
- スプリントプランニング:「スプリントの計画する」ことが目的だが、「タスクや作業を洗い出す」ことが目的になっている
イベントやプラクティスを始める前に目的を確認することも、「形骸化」し始めた場合に試してみると良いかと思います。
大事なのは、一度定義したらそのままにするのではなく、始める最初に共有するなどして、目的を忘れないようにすることだと思います。
タイムボックスを守る
2つ目は、タイムボックスを守ることです。
タイムボックスというのは「その取り組みに割り当てた最大の時間」で、例えばふりかえりのタイムボックスを1時間とした場合、ふりかえりは1時間以内に終わらせる、というものです。
タイムボックスを守ることを大切にする理由は、「現場の作業時間を確保する」ためです。
スクラムを取り入れる中で、朝会やスプリントプランニングのスクラムイベントの時間が長くなり、実作業に割ける時間が少なくなってしまう、という問題が生じました。
スクラムを取り入れる狙いの中には、必要な作業に集中できるようにすることも入っており、本末転倒という状態でした。
タイムボックスを守ることが重要なのは言うまでもないのですが、実際はスクラムイベントをなかなか時間内に収めることができていませんでした。
この問題に対して、私が実際に行ったことは次のことです。
スクラムイベントを目的に合わせて最適化する
1つ目でお話ししたとおり、スクラムおよびスクラムイベントの目的を定義しておくことが必要になるのですが、逆に言えば定義を見直すことで「その場で何をするのか」ということも明確になってきます。
実際に最適化を行ったことを紹介すると、
- 朝会のプログラムからコミュニケーションのための雑談時間をなくす
- スプリントプランニングから、優先順位決め、内容の詳細の確認を時間をなくす
になります。
朝会では、ファシリテーター役が最初に最近あったことなどをコミュニケーションのために取っていたのですが、どうしても時間を超えてしまうことがあり、コミュニケーション自体は朝会の場の目的ではなかったため、なくしてみました。
コミュニケーション自体はスクラムにおいて非常に重要なのですが、ペアプロをすることやふりかえりをすることなどでもコミュニケーションをとることができるため、他の部分で補うようにしています。
ただ、このコミュニケーションの部分についてはまだまだ課題があるとも感じています。
またスプリントプランニングでは、計画をするなかで、スプリントで取り組むタスクを決めるための優先順位やタスクの詳細を確認していましたが、こちらも時間が長くなり、結果としてスプリントプランニングが時間内に収まらない、という状況になっていました。
この問題については「プロダクトバックログリファインメント」を別途設け、切り分けました。
これによりスプリントプランニングの目的と実施する内容がシンプルになり、時間内に収めることができるようになりました。
もしタイムボックスを守れていない状況がある場合には、目的と内容を見直し、目的に沿っていない部分や、時間が動的に変わってしまう部分を切り出すようなことをしてみると良いかもしれません。
実際の運用では、タイムボックスを超えてしまうこともあるのですが、タイムボックスを守る意識を大事にし、タイムボックスを超えてしまう要素を極力少なくすることが重要だと思います。
おわりに
今回は私のチームのスクラムへの取り組みについて紹介させてもらいました。
まだまだ改善の余地はありますが、スクラムに取り組むなかでのヒントになれば幸いです
また、私自身スクラムがとても好きということもあり、これからもスクラムの取り組みや活用は継続していき、チームをより良くしていきたいと考えています。
明日は総務チームの小泉さんの「リモートでの採用活動」に関する記事です。
最後までお読みいただきありがとうございました。