スクラム成熟度のセルフチェックをしてみた
私たちのスクラムはどれくらいの成熟度なのか。現在のやり方はどれくらい正しいのか。悩んでいた矢先、スクラムチェックリストを公開しているブログを見つけたので、この手法を用いてチームにアンケートを取る形でセルフチェックをしてみました。
あなたは誰?
コインチェック株式会社の業務システムGというところでスクラムマスターをやっています。菅田です。私たちは社内向けの管理画面の開発・運用を主に担当しています。CS業務/KYC業務/AML業務の運用で不足している機能を作ったり、関連部署の業務効率化に繋がる開発を行うのがメインミッションです。
スクラムのアンケートをやる理由
業務システムGはスクラムを導入してから1年ですが、スクラム経験者不在からのスタートでした。そのためスクラムが「うまくいっている」状態がどういうものか、共通認識が不足しています。そのため、現在のプロセスのどこに課題があるかを俯瞰して検査できるアプローチを必要としていました。
冒頭で紹介したサイトでは、設問に回答してチェックをした本人の評価をグラフ形式で確認することができます。このままでも有意義ですが、みんなに設問に向き合ってもらい、その結果を集計出来るともっと価値が生まれるのではないだろうか?と考えました。
そのためには、集計は独自の方法で行う必要が出てきます。そんな背景からGoogle Form と GAS を使ってアンケートを作成しました。
スクラム成熟度セルフチェッカー
長々と背景語りに付き合わせてしまったので、ここからはサクサク紹介していきます。今回作成したアンケートは以下のような形となりました。
アンケートをどうやって作った?
スクラムチーム用セルフチェックリスト が設問の参照元です。おおまかに以下の段取りで作成しています。
設問シートを Google スプレッドシート で作成
設問シートに Google Apps Script を追加してアンケートフォームを生成
チームメンバー合計7人にアンケートの協力を依頼
アンケートの結果から、高い点数と低い点数で色分けして分析
アンケートの評価結果
カテゴリ合計値ランキング上位は、開発者やプランニングでした。高い点の設問のうち個人的に印象的だったものは「開発者は持続可能なペースで働いている」でした。良かった、今のままだと燃え尽きてしまうとまでは思ってなかったのね。
上記のカテゴリー10項目を3項目の大カテゴリーに分け、それぞれの平均値を出すと以下のような結果となりました。
アンケートをやってみて分かったこと
当初は「何点以上ならどれくらいのレベル」と言えるようなものになれば良いと思っていました。ですが、スクラムというフレームワークを会社の財務指標のように定量的に評価することは難しかったです。スクラムは、独自の指標をもって定性的に評価するのが良いのかもしれません。
あえて古典的なフレームワークの「守破離」モデルでの表現で言うなら、スクラムの成熟度は基本的なことを徹底する「守」のフェーズにあると言えそうです。また、アンケートの結果からは以下のような課題が浮かび上がってきました。
プロダクトビジョンの不足
バックログの管理不足
インクリメントの管理不足
私たちのグループが担当している管理画面は、カバーしている業務領域(ex. カスタマーサポート、本人確認、入出金の管理)が広く、部分的な改善にリソースを割くことはできても、時間のかかる全体の改善にリソースを割くのが難しいという性質があります。
特に今期は期限の短い案件や、個別の問題に対処することにリソースを割いてきた事情もあり、管理画面のプロダクトビジョンを語る機会は先送りになっていました。
そんな事情もあり、アンケートからは「やっぱりみんな課題に感じていたよね」ということが明確に表れていました。また、バックログやインクリメントの点数が低かったところには、スクラムの経験の浅さが窺えました。
個人的にピックアップした設問
GOOD:高い点数の設問
デイリースクラムで進め方を適宜改善している
デイリースクラム以外でも必要に応じて頻繁に話し合っている
レトロスペクティブで重要な問題を選別し、具体的なアクションアイテムを定めている
MORE:低い点数の設問
インクリメントで毎スプリント完成の定義を確実に守れるよう仕掛け化している
レトロスペクティブで根本原因の分析、意見と事実の分離などのテクニックを活用している
プロダクトバックログでスクラムチームの誰もが内容、背景、意図などを理解している
心理的安全性は私たちのチームで重視する価値観なので、それが表れる項目が高い点だったのは良かったと言えます。一方、低い点数だった設問からは、完成の定義の曖昧さ、レトロスペクティブの熟達不足、プロダクトバックログのグルーミング不足などが窺えたのが印象的でした。
アンケートを通じて得られたこと
アウトプットのいくつかの過程で、以下の成果を得ることができました。アンケートに回答してくれたメンバーも、設問に向き合うことで「本来はこうあるべきなんだ」と意識する機会になったようです。
何が出来ていないかを意識する機会(回答)
点と点が線になることによる課題の発見(資料作成)
スクラムに対するメンタルモデルの強化(資料作成)
現状のスクラムの俯瞰した視点の共有(発表)
個人的には、資料作成の過程で課題がどこにあるかの示唆を得ることが出来たこと、設問をよく見て分類する過程で自身がスクラムに対するメンタルモデルが強化されたことが有意義でした。
また、発表の過程で関係者に対して分析結果を提供し、ネクストアクションを議論する土台作りが出来たことも良い成果だったと思います。
しくじり先生のコーナー
アンチパターンを踏んでしまったので、書き残しておきます。このアンケートの作成過程で、Google フォームに下手に柔軟性を持たせた作りにしてしまったがために、回答を集計してまとめる際にデータの加工が必要になってしまいました。
「わからない」+「1から5」のスケール形式は、一見よさそうに思えます。ただ実際に回答を作成者側のビューで見てみると、複雑なデータ構造のためGoogle Form の標準機能での分析ができませんでした。
また、データの可視化のために加工しようとしたとき、必要以上に手間がかかります。シンプルな回答方式にしたほうが、標準機能での分析はしやすいようです。
フォーム生成用のスクリプト
GAS をそのまま貼ろうと思ったのですが、今回は chatGPT に指示を出して作ったので、指示した結果を再現するスクリプトを用意しました。試してみたい方は、設問のスプレッドシートを用意した上で、以下を chatGPT などの生成AIに読み込ませて指示をしてみてください。
スクラム成熟度セルフチェックのためのGoogle Formスクリプト作成
Google Apps Scriptを使用して、スクラム成熟度セルフチェックのためのGoogle Formを作成するスクリプトを書いてください。以下の詳細な要件を厳密に満たすようにしてください:
## 1. フォーム全体の設定
- フォームのタイトル: 'スクラム成熟度セルフチェック'
- 説明文:
このアンケートは、チームのスクラムの成熟度を自己評価するためのものです。
各項目について、チームができていると思う項目にチェックを入れてください。
チェックがない項目は「できていない」または「わからない」と判断します。
## 2. データソース
- アクティブなスプレッドシートのアクティブシートからデータを取得
- データ構造:
- 1行目: ヘッダー(無視する)
- 1列目: セクション名
- 2列目: 質問内容
## 3. フォームの構造
- セクションごとにチェックボックス項目を作成
- チェックボックス項目のタイトル: セクション名のみ
- 選択肢: 'セクション番号-質問番号. 質問内容' の形式
- セクション総数の半分の地点にページ区切りを挿入(タイトル: '中間点')
## 4. コーディングスタイル
- ES6+の機能を使用(const, let, アロー関数, テンプレートリテラルなど)
- 変数名は意味が分かりやすい英語で
- 適切なコメントを日本語で入れる(機能の説明、複雑な処理の解説など)
## 5. 具体的な関数構造
1. メイン関数 createForm():
- スプレッドシートデータの取得
- フォームの作成と基本設定
- セクションデータの抽出と処理
- チェックボックス項目の作成(ループ処理)
2. ヘルパー関数(必要に応じて):
- ユニークなセクション名の抽出
- チェックボックスの選択肢作成
## 6. エラーハンドリング
- スプレッドシートが空の場合のチェック
- データ形式が不正な場合のエラーメッセージ
## 7. 除外する機能
- 振り返りや自由記述のセクションは含めない
- カスタムCSSや高度なフォーマットは不要
このスクリプトは、再利用可能で、異なるスプレッドシートデータにも対応できる汎用的なものにしてください。完全なスクリプトを提供し、主要な部分には簡単な説明コメントを付けてください。
最後に
スクラムが不慣れなチームにとっては、スクラムのセルフアセスメントをするのは長い旅路に必要な地図を得るような感覚があったよ
この記事が参考になったらスキをお願いします。noteのアカウントがなくてもできるよ
コインチェック株式会社では長い旅路を一緒に進んでくれるメンバーを募集しているよ