この記事は、LayerX Tech Advent Calendar 2024 の 6 日目の記事です。
▼ 今回お話しすること
こんにちは!バクラク事業部 ソフトウェアエンジニアの @minako-ph です 🐱
弊社では全社的に Notion を活用し、申請・経費精算チームではスクラム開発を採用しています。2週間ごとのスプリントを回す中で、Notionを使った進捗管理や作業効率向上に取り組んでいます。
1年前に執筆した Notionでスプリントのあれこれをダッシュボードで可視化する という記事では、Notionを活用したスクラム管理の仕組みを紹介しました。今回は、1年間運用して得られた学びをもとに、「ストーリーポイント管理」と「チームのダッシュボード」についてお話しします。
特に以下の3点を中心に解説します:
- 🔥 スプリントで消化可能なストーリーポイント予測
- メンバーごとの稼働時間や過去データを活用し、正確な予測を実現する仕組み。
- チーム全体と各メンバーのベロシティ計測と活用
- 計測結果を振り返り、次のスプリントに活かす工夫。
- メンバーの作業を支えるダッシュボードの工夫
- 「いま何をすべきか」を見える化し、スムーズな作業を実現する設計。
これらを通じて、Notionを活用したスクラム開発の効率化とチーム力向上をどのように実現したのかを詳しくご紹介します。
▼ 集計したい情報を基にデータベースを構築する
Notionでデータベースを作成する際は、まず 集計したい情報 を明確にすることが重要です。
申請・経費精算チームでは、スプリント運用に必要な以下の情報を管理しています:
- 各スプリントのタスク
- 各スプリントのゴール
- 各スプリントのチーム全体のストーリーポイントとそのベロシティ
- 各スプリントの各メンバーのストーリーポイントとそのベロシティ
- 想定される消化可能なストーリーポイントはいくつか
- 見積もり時点のストーリーポイントはいくつか
- 実際に消化したストーリーポイントはいくつか
これらの情報の算出を実現化するため、以下のデータベースを用意しています:
- スプリントマスタDB(スプリントゴールプロパティを含む)
- メンバーマスタDB
- スプリントタスクDB
- メンバー毎のストーリーポイント管理DB
それぞれのDBは NotionのRelation機能を使うことで、異なるデータベース間でレコードを紐づけています。これにより、タスクやゴール、ストーリーポイントのデータを一元的に整理し、Rollup機能を活用して特定の項目を集計することが可能です。
この構造により、スプリント管理に必要な情報を効率よく把握・分析できる仕組みを実現しています。次に、実際にどのようにして実現しているのかをお話ししていきます。
▼ 実際の運用と活用方法
◎ スプリントを生成する
スプリントが切り替わる際に、まずは新しいスプリントの大枠を作成します。
スプリントマスタは2週間ごとに自動生成されるよう設定されており、管理者がボタンを押すだけで以下のデータが自動で作成されます:
- スプリントゴールDBのレコード
- 各メンバーのストーリーポイント管理DBのレコード
この仕組みにより、スプリントごとの準備作業を効率化し、チーム全体の運用負担を軽減しています。
◎ スプリント開始時に消化可能なストーリーポイントを予測する
生成されたスプリント内で、各メンバーがどれくらいのストーリーポイントを消化できるか予測するために、必要な情報を入力します。
手順:
稼働日数の入力
各メンバーがスプリント内で作業可能な日数を「稼働日数」として入力します。
- 1日を8時間として算出し、ミーティングやその他の時間を除いた実際の稼働可能時間を基に計算します。
人日平均SPを入力
「人日平均SPを入力する」ボタンを押すと、各メンバーの1日あたりに消化できるストーリーポイントが自動で計算され、スプリント全体で消化可能な想定ストーリーポイントが表示されます。
計算の仕組み:
この「人日平均SP」は、過去のスプリントで消化したストーリーポイントの実績値を基に算出された1日あたりの平均値です。過去データは以下のようにデータベースに蓄積されており、これを活用して精度の高い予測を行っています
このストーリーポイント管理DBのレコードは、スプリントマスタ・メンバーマスタと連携しており、各メンバーのストーリーポイントの詳細な分析や、スプリント全体でのチームのストーリーポイントの集計・可視化を実現します。
次に、予測されたストーリーポイントを参考にしながら、各メンバーにタスクを割り振ります。
割り振られたタスクごとの見積ストーリーポイントを入力し、その合計値を比較することで、想定値と見積値のズレを可視化し、計画と実績を調整します。
これでスプリント開始時の準備が完了し、実際の開発を進めることができます。
◎ スプリント終了時にベロシティを振り返る
スプリント中、タスクを完了するたびに、各タスクに実際にかかったストーリーポイント(実績値)を入力します。
スプリント終了時には、これらの実績値を合計し 実績ストーリーポイントとして記録します。
実績ストーリーポイントを記録することで、以下が可能になります:
- 想定値・見積値と実績値の比較:スプリントの計画精度や実績との差異を振り返る。
- チーム全体のベロシティの把握:次回スプリントの計画に活用。
さらに、過去に蓄積されたデータを活用することで、以下のような長期的な分析も可能です:
- 過去スプリントのベロシティ推移を確認:チームの成長や安定性を振り返る。
- 改善点の特定:過去のデータを基に、タスクの見積もりやリソース配分の改善策を検討。
これらの振り返りは、チームとしてのベロシティを安定させ、次回以降のスプリントでより精度の高い計画を立てるための重要な材料となります。
◎ まとめ
スプリント運用において、Notionを活用した仕組みは、準備から振り返りまでの一連のプロセスを効率化するだけでなく、データに基づいた計画立案や改善につながる貴重な情報を提供します。
スプリント準備の効率化
スプリントマスタを自動生成する仕組みにより、チームの負担を軽減し、迅速な準備が可能になりました。
🔥 消化可能ストーリーポイントの予測
過去のデータを活用した予測により、スプリント中の計画精度を向上。タスクの割り振りや調整もスムーズに進められます。
振り返りを通じた改善の促進
実績データを記録し、計画と実績の差異を可視化することで、チーム全体のベロシティの安定化や次回スプリントでの精度向上につながっています。
このように、Notionを活用したスプリント運用の仕組みは、チームの効率化と生産性向上に寄与するだけでなく、データドリブンな改善を推進する重要な役割を果たしています。
▼ ダッシュボードへのこだわり
次に、普段の業務で日常的に活用しているダッシュボードについてご紹介します。
ダッシュボードは、「今、自分は何をすべきなのか」を一目で確認できるようにし、スムーズに作業に取り組める状態を手助けするツールとなることを目的として構築しています。
日常的に確認したい主な項目は以下の通りです:
- 進行中のスプリントゴール
- 着手すべき進行中のスプリントタスク
- スプリントタスクの動作検証状況
- お客様から報告された不具合の対応
これらの要素をダッシュボードにどのように組み込んでいるか、具体的に解説します。
◎ 進行中のスプリントゴール
進行中のスプリントゴールは、チームとして達成したい目標を常に確認できるよう、ダッシュボード上に表示しています。
スプリントのステータスが「進行中」に設定されている場合、そのゴールが自動的に表示される仕組みになっています。スプリントのプロパティを切り替えるだけで、ゴールの内容も自動更新されるため、余分な手間がかかりません。
◎ 着手すべき進行中のスプリントタスク
開発者がダッシュボードで最も頻繁に確認するのは、今、着手すべき進行中のスプリントタスクです。
こちらもゴールと同じく、スプリントのステータスが「進行中」に設定されたタスクが自動的に表示される仕組みを採用しています。スプリントのプロパティを切り替えるだけで、タスク一覧が進行中スプリントに紐づいたものに更新されるため、手動でフィルタリングする手間が省けます。
またリリースバージョンの付与し忘れ、ストーリーポイントの入力漏れ が発生しないよう プロパティの状況に応じてアラートを表示するFormulaも組み込んでいます。
◎ スプリントタスクの動作検証状況
私たちのチームでは、実装が完了したタスクを開発者がまず検証し、その後QAチームが検証するフローを採用しています。ただし、検証を忘れてしまうケースを防ぐため、タスクの検証状況をダッシュボードに表示しています。
各タスクのステータスが一目で分かるように、プロパティを元にFormulaを活用し、以下のような工夫を行っています:
- 🔴:開発者が対応すべきタスク
- 🟡:QA実施者が対応すべきタスク
タスクのステータスごとにグループ化し、視覚的に分かりやすい表示を実現しました。
さらに、チーム全体のQA進捗状況を把握できるよう、グラフもダッシュボードに配置しています。これにより、チーム全体の検証状況が一目で確認でき、スムーズなタスク管理を実現しています。
◎ お客様から報告された不具合の対応
通常のスプリントタスクに加え、お客様から報告された不具合への対応も重要な業務の一つです。これらの不具合をダッシュボードに表示し、対応漏れを防ぐ仕組みを構築しています。
ダッシュボードに表示されるレコード:
- 未アサインの不具合:担当者が決まっていないものを一覧表示。
- 自身がアサインされている不具合:対応が必要なタスクを明確化。
ダッシュボードで不具合を可視化することで、優先度の高いタスクを見逃すリスクを低減し、効率的な対応を可能にしています。
◎ タスクのスケジュール管理
これはおまけなのですが 一部のメンバー(自分)は、タスクをスケジュール管理したいというニーズがあります。そのため、タスクを簡単にスケジュールできる仕組みをダッシュボードに用意しました。
仕組みの概要:
進行中スプリントの日付が未指定のタスク
ダッシュボードの左側に表示され、右側のカレンダーにドラッグ&ドロップすることで日付を設定できます。
カレンダーに登録されたタスクの可視化
カレンダーに載せたタスクは、上部に「今日やるべきタスク」として一覧表示されます。また、ステータスが完了になっていない過去のタスクも確認できます。
この仕組みを使うことで、最初にスケジューリングを済ませておけば、あとは「今日やるべきタスク」の欄を見るだけで作業が進められるようになり、日々のタスク管理が効率化されます。
◎ まとめ
このようにして、「今、自分が何をすべきか」を一目で確認できる設計を追求し、業務の効率化を支えるツールとして構築しています。
スプリントの進行状況やタスクの検証、チーム全体の課題に至るまで、必要な情報を的確に整理し、メンバーがスムーズに作業を進められる環境を提供しています。また、スケジュール管理や不具合対応といった個別のニーズにも対応し、チーム全体の生産性向上に寄与する仕組みを実現しました。
ダッシュボードの全体像は以下のような感じです。
今後も、このダッシュボードを通じて見えてきた課題や改善点を積極的に取り入れ、さらに業務の効率化を進めていきたいと考えています。
▼ 終わりに
ここまでお読みいただきありがとうございました。
明日は iwamatsu さんの記事を公開予定です。お楽しみに!