会社で「スクラム開発をはじめよう!」と言われても、何からはじめたら良いのか迷う人も多いと思います。
初回のスプリントでは何からやればいいんだろ?
ここではスクラム開発を始める前の「スプリント0」の期間でチームでやるべきことを教えるよ!
・スクラム開発における「スプリント0」とは何かわかる。
・スプリント0の流れやタイムボックスがわかる。
・実施するべきタスクの洗い出し方法や具体的なプラクティスを知れる。
本記事は実際にスクラム開発をはじめる人向けの資料です。スクラム開発とは何か知りたい方は以下の記事をご確認ください。
スプリント0(スプリント ゼロ)とは何か?
スプリント開始前の準備期間のことを「スプリント0」と呼びます。スプリント1を始める前にチームで共通の理解を形成することが目的です。
スプリント0 で「必ずこれをやらなければならない」や「これだけやっておけば大丈夫」はありません。自分たちのプロジェクトやチームの状態に応じて、スプリント0でやるべきタスクを洗い出す必要があります。
ただし、上手くいっているプロジェクトや失敗したプロジェクトにはそれぞれ共通点があるため、本記事で紹介する進め方を参考にみなさんのチームで実施するべき作業を検討してみてください。
スプリント0の流れ
本サイトでは、スプリント0は下図のような流れを推奨しています。スプリント0の進め方はプロジェクトによって様々ですが、スクラムを始めたばかりのチームは以下の4つのステップを意識して取り組んでみましょう。
[タイムボックス]
・2週間〜最大1ヶ月
最低限スプリント1を始められる準備ができていればOKです。スプリント0で決定した内容は、スプリント1以降も継続的に見直すことができるため、事前準備に時間を掛け過ぎないように注意しましょう。
[参加者]
・スクラムチーム、ステークホルダー(任意)
チームの体制が決まっている場合はチーム全員で実施します。体制が決まっていない場合は、プロジェクトの決定権を持つ人や参画予定のメンバーで開始し、スプリント0を進めながら体制を決定しましょう。開発スコープやリリース計画などは、チームで固まった時点で、必要に応じて企画部門や運用部門のステークホルダーに共有する時間を設けるようにしましょう。
[やること]
・スクラムチームの構築(キックオフ)
・スプリント0で実施するタスクの洗い出し
・洗い出したタスクの実施
・プロダクトバックログの準備(最低限スプリント1が開始できる分が作成できればOK)
ステップ1:キックオフを実施する
スプリント0のはじめに「キックオフ」を実施することをおすすめします。一緒に働くチームメンバーの顔合わせやプロジェクトの概要の認識を合わせ、プロジェクト開始を宣言しましょう。
[アジェンダ]
・メンバー顔合わせ
PO、SM、開発者の紹介は当然ながら、ステークホルダーである事業部門、企画部門、運用部門の担当者なども顔写真付きで確認するようにしましょう。各部門との関係性なども補足してあげるとGoodです。
・プロジェクトの概要確認
これから開発するプロダクトのコンセプトやリリース計画などをチームメンバー全員で確認します。プロダクトの目的や開発スコープが曖昧な可能性もありますが、現時点で決まっている範囲で共有し、不明確な点はスプリント0のタスクとして深堀り、整理しましょう。
・コミュニケーションパスの確認
キックオフ後も適宜コミュニケーションを取りながら進める必要があるため、各部門への連絡手段を確認します。slackやハングアウト等のプロダクトチャンネルの作成や、参考情報等を格納するドライブのパスなども確認しておくと良いでしょう。
・スプリント0の進め方の確認
共通認識を持ってスプリント1を開始するために、不足している観点やスプリント0のスケジュール感を確認します。次回ミーティング(タスク洗い出し)までのAIがないかも確認し、事前準備や確認が必要な場合は担当者を明確に決めましょう。
ステップ2:タスクを洗い出す
キックオフ後の初回のMTGでスプリント0で実施するタスクを洗い出します。どのようなタスクを実施するべきかはプロジェクトやスクラムチームの状況によって異なりますが、スクラム開発をはじめたばかりのチームは検討するにしてもなかなか難しいと思います。
まずは以下の4つの観点で、ご自身のチームで実施するべきスプリント0のタスクを考えてみましょう。
・プロダクトの観点
・人の観点
・技術、品質の観点
・計画、マネジメントの観点
プロダクトの観点
「プロダクト」の観点では、プロダクト自体の価値やビジョンを明確にするタスクを検討しましょう。このプロダクトをなぜ開発するのか、利用者は誰なのかなど、チーム全員がプロダクトビジョンやゴールに対する共通認識を持てるようなプラクティス(タスク)を実践するとよいでしょう。スプリント0の段階でチーム全員がプロダクトに対する共通認識を持つことで、開発がより効果的かつ効率的に行えます。
[タスクの具体例]
・プロダクトビジョンを明確にする。
・ペルソナを明確にする。
・ユーザーがプロダクトを利用する時の流れを確認する。
・本プロジェクトでやること、やらないことを決める。
・初回リリースまでに必要な機能を決定する。
人の観点
「人」の観点では、スクラムチーム内の役割やそれぞれの働き方、得意不得意、コミュニケーションの取り方やステークホルダーとの関係などを明確にします。スプリント0の段階でチームとして効率的に開発を進められるように準備しましょう。
[タスクの具体例]
・アジャイルやスクラムに関する基本知識や考え方の認識を合わせる。
・チームメンバー及びロール(役割)を決定する。
・チームメンバーの得意、不得意を確認する。
・チーム内、ステークホルダーとのコミュニケーションパスを確認する。
・スクラム開発を進める上でのチームルールを決める。
技術、品質の観点
「技術、品質」の観点では、開発言語やアーキテクチャー、非機能要件、開発環境などを明確にします。プロダクトの品質を保証するためのルールやツール導入の検討も必要です。
[タスクの具体例]
・非機能要件を確認する。
・開発言語、システムアーキテクト、コーディング規約を決定する。
・完成の定義(DoD)を決定する。
・開発する上での優先度を明確にする。
・静的解析ツールやテスト自動化、CI/CDの環境に関して検討する。
・ローカルの開発環境や受入環境の準備をする。
計画、マネジメントの観点
「計画、マネジメント」の観点では、スプリント0時点での開発スケジュールやステークホルダーとコミュニケーション計画を検討しましょう。また、スプリントの長さやスクラムイベントの開催日時も決定します。リスクマネジメントやステークホルダーへの報告時の内容も先方と事前に合意できているとスムーズにスプリントを進めることができます。
[具体例]
・開発時のマイルストーンの確認や初回リリースまでの期間などの見通しを立てる。
・現時点での開発者の不安やリスクについて洗い出す。
・報告や承認時に必要な準備やリードタイムを確認する。
・課題管理の手段や確認タイミングを決める。
・開発場所や必要な備品(ホワイトボードやモニター、付箋など)を準備する。
ステップ3:タスクを実行する
ステップ3で洗い出したタスクをチームで実行します。スプリント0のタイムボックスは最大で1ヶ月です。時間をかけて各タスクを詳細化したとしてもスプリントを進める中で必ず変更や更新が必要となります。そのため、アウトプットの品質にこだわり過ぎずに「最低限スプリントを開始できるだけの共通認識が持てているか」という考えを忘れずに作業するようにしましょう。
タスクの実行期間を考慮して、チームとして優先度の高いタスクから実行します。
(例)スプリント0の期間を1ヶ月(20営業日)とする場合
・キックオフ:1日
・タスクの洗い出し:3日
・タスク実行:6日 ※洗い出したタスクに優先度をつけて、タイムボックスを意識してチームで取り組む
・バックログ作成:10日 (作成7日間、スプリント1のタスク詳細化3日間)
また、実行したタスクのアウトプットはスプリント中にいつでも確認できるようにしておくことが大切です。
➡︎Gitのwiki、Jiraのショートカット作成、googleサイトなどの利用も検討しましょう。
ステップ4:プロダクトバックログを作成する
ステップ3まで完了するとプロダクトビジョンの共通認識やチームのルール、開発環境が整ってきているはずです。
最後のステップとして、プロダクトバックログを作成+スプリント1のスコープとなるプロダクトバックログアイテムの詳細化を実施します。
プロダクトバックログとは、プロダクトの開発・改善に必要なタスクが優先度の高い順に並べられた一覧です。スクラムチームが行う作業が記載された唯一の情報源であり、以下の式で表すことができます。
プロダクトバックログ = プロダクトゴール + プロダクトバックログアイテム
スプリント0の時点では、プロダクトゴールの明確化とスプリント1で実施するプロダクトバックログアイテムの作成&詳細化ができていれば問題ありません。スプリント2以降のタスクはスクラムイベントのバックログリファイメントやスプリントプランニングで都度作成&詳細化を実施しましょう。
プロダクトバックログの作成方法は以下で詳しく説明していますので、ご確認ください。
おすすめのプラクティス
ステップ2で洗い出したタスクの実施時に役に立つおすすめのプラクティスを紹介します。タスクを洗い出してもどのようにまとめていけばよいかイメージがつかない方は、以降紹介するプラクティスを参考に進めてみてください。
インセプションデッキ
インセプションデッキは、10個の質問に答える形でチームの共通理解を形成するプラクティスです。
以下のタスクを実施するのに役立ちます。
・プロダクトビジョンを明確にする。
・本プロジェクトでやること、やらないことを決める。
・チーム内、ステークホルダーとのコミュニケーションパスを確認する。
・開発時のマイルストーンの確認や初回リリースまでの期間などの見通しを立てる。
・現時点での開発者の不安やリスクについて洗い出す。
ユーザーストーリーマップ
ユーザーストーリーマップは、ユーザーの行動を軸に必要な機能や優先度を明確するプラクティスです。
以下のタスクを実施するのに役立ちます。
・ペルソナを明確にする。
・ユーザーがプロダクトを利用する時の流れを確認する。
・開発する上での優先度を明確にする。
・非機能要件を確認する。
・初回リリースまでに必要な機能を決定する。
ワーキングアグリーメント
ワーキングアグリーメントは、チームの働き方や仕事の進め方を決めるためのプラクティスです。簡単なルールを決めておくことで、チームの判断基準を明確にでき、生産性を向上させる手助けになります。
以下のタスクを実施するのに役立ちます。
・スクラム開発を進める上でのチームルールを決める。
完成の定義(DoD)
完成の定義(Definition of Done)は、プロダクトの品質基準を満たすためにスクラムチームで決定するルールです。プラクティスではなく、スクラムガイドにも記載されている定義されているチームの成果物の一つです。重要なタスクですので忘れずに実施しましょう。
スキルマップ
画像引用:【資料公開】スクラムプロジェクト開始のベストプラクティス
スキルマップは、チームメンバーのスキルの見える化のためのプラクティスです。それぞれの得意、不得意を共有し、チームに不足しているスキルセットや強みを明確化します。また各スキルに対する意欲を表明することでメンバー間のスキルアップや個人の成長へ向けた取り組みが検討しやすくなります。
以下のタスクを実施するのに役立ちます。
・チームメンバー及びロール(役割)を決定する。
・チームメンバーの得意、不得意を確認する。
・現時点での開発者の不安やリスクについて洗い出す。
参考資料
・ryuzee.com:【資料公開】スクラムプロジェクト開始のベストプラクティス
・enlyt.co.jp:「スプリントゼロ」とは?アジャイル開発の始め方
コメント