こんにちは Enabling SRE team(通称hayabusa)に所属しているSREのchoreです!
この記事はfreee Developers Advent Calendar 2023 - Adventar 2日目です。
内容としてはスクラムが右も左も分からないチームがスクラムを回していってどうなったかを書いています
対象読者
チーム運営が上手くいっておらずスクラムってどうなん?って思ってる人
話さないこと
スクラムについての基本的な知識の説明
話の結論
- まずはスクラムガイドに従ってセオリー通りにスクラムをしてみて、上手く行かないと感じた部分はスプリント終わりの振り返りで改善していこう!
- 定期的にスクラムチームの成熟度がどうなっているかを検証するフローを組んでいこう!
- スクラムはいいぞ〜〜〜
背景
Enabling SRE team*1が発足したのは今年の7月からで、4~5人のSREで構成された新しめのチームになってます。
メンバー構成としてはJM(freeeにおけるマネージャーの呼び方)のnkgwさん以外はfreee歴が1年以下で一番新しくjoinしたryuさんに至っては7月時点で入って1ヶ月目の新人でした。
その中でチームの動き方をどうしようかを模索していく中で、スクラム開発を一度経験するのがいいのではないかという話が出ました。
ただ、自分も含めてメンバーのほとんどがスクラムについて何も分からない中で不安はあったものの、メンバーのryuさんが前職でスクラムマスターを経験していたということもあって、主導してもらうことで合意を得られたので思い切って導入をしてみました。
そして3ヶ月スクラムを回してみたこと
スクラムガイドに則ってスクラムを回すことを意識してやってみようということで
まずは、以下の取り組みを新たに始めました。
- 各種スクラムイベント(デイリースクラム、プランニング、レビュー、振り返り、リファイメント)の実施
- タスク管理ツールとしてJiraを採用
- タスク化されないといけないものが生まれた場合は、都度「割れ窓」としてストーリーを作成する
スクラムイベントでスプリントの最終日がほとんど潰れてしまうことで最初はどうなのかな?という思いはありました。
ただ、これらのイベントをこなすことで以前とは違いタスクをやっていく中で迷いが解消していっていることを感じて、より効率的にタスクをこなせていっているという実感をしました。
そのため、食わず嫌いをせずまずはやってみるというアプローチの重要性を思い知りました。
スクラムイベントの進め方
もう少し各スクラムイベントのチームでの現在の進め方を詳細に説明してみます
- デイリースクラム
- スプリントゴール達成に対しての問題や課題を早期に発見するために日次で行う
- 進め方は以下
- チームメンバー全員のカレンダーを確認しざっと今日のスケジュールを共有する
- スクラムボードを見ながらタスク毎に昨日やったこと/今日やること/困ってることを担当者に話してもらう
- タスクに関係ないが困っていることや知っておいてほしいことをメンバーに共有する
- スプリントレビュー
- スプリントの最終日に実施
- スプリントで完成したものをチーム内に共有し互いにフィードバックすることでよりプロダクトの価値を最大化する
- 進め方は以下
- スプリントバックログを見てスプリントで行ったストーリーが完了したのかを 1 つずつ確認する
- デモを行うストーリーについて順番にデモをしてもらう
- レトロスペクティブ
- スプリントの最終日に実施
- スプリントで、”何がうまくいったのか”、”何がうまくいかなかったのか”を話し合い、次回以降のスプリントへ活かすアクションを考える
- 進め方は以下
- よこなーるを元に作られたふりかえりの Jamboardのテンプレートをコピーして今スプリント分のシートを作成する
- 各メンバーはシートの 5 象限に今スプリントについて振り返りそれぞれ 1 つ以上記載する
- 聞いてほしいことに書いた内容を各メンバーに話してもらい必要あればディスカッションする
- 聞いてほしいことから時計回りにそれぞれのお題で上記を繰り返す
- 話した内容を元に次スプリントでやっていきたい事(Try)を 2,3 個程度決め、チケット化する
- バックログリファインメント
- スプリントの最終日に実施
- プロダクトバックログのアイテムを見直し優先順位を付け、詳細化を行うことで次のスプリントを円滑に進められる環境を整える
- 進め方は以下
- プロダクトバックログが優先順位通りに並んでいるかを確認し必要があれば修正する
- 優先度の高い順にストーリーポイントを付ける
- リファイメントの効率化のため、事前にストーリーの優先順位決めとエピックを達成するためのストーリーの整理をプロダクトオーナーが行うようにする
- スプリントプランニング
- スプリントの最終日に実施
- スプリントで何をしていくか優先順位をもとに決め、ストーリーを詳細化しスプリント内で収まるか確認した上で、メンバーごとにプロダクトバックログアイテムを割り当てる
- 進め方は以下
- スプリントの目標を プロダクトオーナー から共有し、合意が取れれば Jira のスプリントの目標に記載する
- プロダクトバックログの中で直近取りそうなチケットの優先順位が正しいことを確認する
- 優先順位がおかしいものがあれば プロダクトオーナー と相談しつつ変更する
- 今スプリント取りそうなチケットがゴールが明確かストーリーポイントがついているかを確認する
- プロダクトバックログの上からスプリントバックログにチケットを入れていく
- スプリントバックログ内のストーリー毎に担当者を決める
- 担当者は受け持ったストーリーをサブタスクに分割する
- お互いにサブタスクのレビューをし合い考慮漏れ等を無くす
- ストーリー全体を見てタスク量に偏りがないか確認する
- 全体のタスク量がスプリント内に終わるかどうかを確認する
- 問題ないことをファイブフィンガーで確認して合意を取れればスプリントを開始する
基本的にはスクラムガイドに倣いつつも、チーム独自のやり方を追加しました。 例えばファイブフィンガーの導入はスクラムガイドにはないものの良さげだったので採用しました。 この状態で運用していますが今のところ特に課題感は抱いていないです。
スクラムチームの成熟度を計測してみた
こうして初めてスクラムに挑戦するメンバーも多い中で3ヶ月が経過したので、実際にスクラムを回して良かったかなという確認も含めて一度立ち止まってチームの成熟度を計測しました。
やり方としては、Scrum Team Surveyというサイトのアンケートを利用して分析を行うことにしました。
分析の評価の項目としては以下の6個の大項目があり、その下にそれぞれいくつかの小項目があって、それぞれにポイントが振られます。
図1はそれぞれの項目のポイントが乗っており緑は平均的なチームよりもポイントが上回っていることを示しています。
黄色であれば平均的なチームと同水準のポイント、オレンジ色であれば平均的なチームを下回っていることを示しています。
こうして見ると私達のチームは比較的多くの項目で平均を取れていることが分かります。
- Responsiveness
- Continuous Improvement
- Stakeholder Concern
- Team Autonomy
- Team Effectiveness
- Management Support
図1 Scrum Team Surveyアンケート結果
図2. Scrum Team Survey総合ポイント
スクラムチームの成熟度を計測してからのチームメンバーのフィードバック
上記のアンケートの結果から分かる通り、メンバーの大半がスクラムを知らない状態から3ヶ月で多くの項目で平均を取っているのはすごいとは自分のチームながら思いました。
ただし、フィードバックをしていく中で以下の反省点も出ました。
- 機能横断的なチームにはなれていない
- 生産的な対立が出来ていない
こちらの反省点については、前者はスキルマップを作成、ノウハウを集約するためのLearningSessionの実施、後者はちょっとした疑問であってもすぐにslackで投稿し合うようにしようというのをworking agreementに追加することで同意を行いました。
チームの成熟度を測る取り組みはスプリントイベントだけでカバーするのは難しいので、このような振り返りの取り組みを別途作るのは有意義だったなと感じました。
終わりに
アンケート結果からも見て取れるようにスクラムを回すことは我々のチームとしては非常に良かったかなと思っています。
今のメンバーのフィードバックを見ていてもスクラム開発に対して好意的な意見がほとんどとなっています。
もちろん課題を全く感じていないわけではないですが、現状はスクラムを導入したことによるメリットの方を享受できているのではないかなと考えています。
また、スクラム開発の取り組みは私だけではなくEnabling SREチーム全体、特にスクラムマスターであるryuさんが中心に取り組んだからこそ成熟度も上がったのではないかと思っています。
改めてこの場を借りてチームメンバーへの感謝をさせてください。
明日のfreee Developers Advent Calender 2023は、Enabling SRE teamが誇るスクラムマスター ryu さんの記事になります!
*1:各プロダクトチームにSREのプラクティスや文化を浸透させていくチーム