セレモニー(スクラムイベント)とは
今回はセレモニー(スクラムイベント)について説明します。
スクラムにおける各イベントは、スクラムの作成物の検査と適応をするための公式の機会です。
これらのイベントは必要な透明性を確保するために明確に設計され、規定通りに実施されなければ、検査と適応の機会が失われます。
スクラムにおけるイベントは規則性を生み出し、スクラムで定義されていない会議の必要性を最小限に抑えるために使用されます。全てのイベントは複雑さを低減するために同じ時間と場所で開催されることが望ましいとされています。
スプリント
スプリントはイベントとは異なりますが、イベントを理解する上で知っておくと良いでしょう。
スクラムでは、一定期間を区切って繰り返し開発を行います。この一定期間をスプリントと呼びます。
一貫性を保つため、スプリントは最長1か月までの決まった長さとします。前のスプリントが終わり次第、新しいスプリントが始まり、作業が残っていてもスプリントが延長することはありません。
このように、一定期間を区切って開発を繰り返すことで、開発チームにリズムが生まれ、集中しやすくなり、プロジェクトのゴールに対する進捗が把握しやすくなったり、リスクに対応しやすくなったりします。
スプリントプランニング、デイリースクラム、スプリントレビュー、スプリントレトロスペクティブなど、この後説明するセレモニーを含む、プロダクトゴールを達成するために必要なすべての作業は、スプリント内で行われます。
スプリントでは以下の点に注意が必要です。
- スプリントゴールの達成を危険にさらすような変更は行わないこと。
- 品質を低下させないこと。
- プロダクトバックログを必要に応じてリファインメントすること
- スプリントの進捗によってスコープがより明確化され、必要に応じてプロダクトオーナーと再度交渉する必要が生じる場合がある。
プロダクトバックログ
プロダクトバックログはセレモニーではなくアーティファクトですが、軽く説明します。
バックログは、プロダクトに必要な全ての項目が一覧にされたものであり、プロダクトに対する変更要求の唯一の情報源です。タスクの一覧のようなものです。
スプリントバックログ
スプリントバックログも次回以降詳しく説明しますが、ここでは軽く説明します。
スプリントバックログは、プロダクトバックログからスプリント期間で行う作業を抜き出したものであり、チームのタスクリストのようなものです。
スプリントプランニング(短期計画)
スプリントを始める前に、どの順番(優先順位)で開発を進めるか、何を実現しようとしているかを明確にする必要があります。
スプリントプランニングでは、どのように開発するか(How)と、何を実現しようとするか(What)を計画します。
スプリントプランニングに使える時間は、1ヶ月スプリントであれば8時間、2週間スプリントであれば4時間です。あらかじめ受け入れ基準(何を持って完了とするか)を用意することで、開発チームがタスクを完了するための目標を明確にします。
また、スプリントプランニングは次のトピックに対応します。
1. このスプリントはなぜ価値があるのか?
プロダクトオーナーは、今回のスプリントでどのようにプロダクトの価値と有用性を高めることができるか提案します。
次に、スクラムチーム全体が協力して、スプリントゴールを定義します。スプリントゴールは、スプリントプランニングの終了までに確定する必要があります。
2. このスプリントで何ができるのか?
開発者は、プロダクトオーナーと話し合いを行い、プロダクトバックログアイテム(タスク)を選択して、スプリントに含めます。
スクラムチームは、このプロセスの中でプロダクトバックログアイテムのリファインメントをする場合があります。
これにより、チームの理解と自信が高まります。スプリント内でどれくらい完了できるかを選択するのは難しいですが、過去の実績であるベロシティと、今回のキャパシティ、そして完成の定義の理解を深めていけば、スプリントの予測に自信が持てるようになります。
3. 選択した作業をどのように成し遂げるのか?
開発者は、選択したプロダクトバックログアイテム(タスク)ごとに、完成の定義を満たすインクリメントを作成するために必要な作業を計画します。
これは、多くの場合、プロダクトバックログアイテム(タスク)を1日以内の小さな作業アイテムに分解することによって行われます。
これをどのように行うかは、開発者だけの裁量となります。プロダクトバックログアイテム(タスク)を価値のインクリメントに変換する方法は誰も教えてくれません。
デイリースクラム
デイリースクラムの目的は、計画された今後の作業を調整しながら、スプリントゴールに対する進捗を確認し、必要に応じてスプリントバックログを適応させることです。
デイリースクラムでは以下の3点について報告します。
- 前回のデイリースクラムからやったこと
- 次回のデイリースクラムまでにやること
- 困っていること
デイリースクラムは、開発者の人数に限らず15分のタイムボックスで行われます。スプリント期間中は毎日、同じ時間・場所で開催することで、複雑さを低減します。
コミュニケーションを改善し、障害物を特定し、迅速な意思決定を促進することができます。その結果、他の会議を不要にすることができます。
開発者が計画を調整できるのは、デイリースクラムのときだけではありません。スプリントの残りの作業を適応または再計画するために、開発者は一日を通じて頻繁に話し合うこともあります。
また、デイリースクラムは問題解決の場ではありません。開発チームのメンバーが問題を報告した場合は、デイリースクラム終了後にあらためて、問題解決に必要な人を集めた別の会議を設定します。これによって、開発チームのメンバーの貴重な時間が会議によって浪費されることを避けることができます。
プロダクトバックログリファインメント
プロダクトバックログリファインメントは、現在のスプリントには含まれない中長期の計画を含め、プロダクトバックログの見直しや整理を行うプロセスです。マーケット動向や開発リスクを考慮し、戦略(優先順位)の見直しも行います。
このプロセスを十分に行わないと、スプリントプランニングの負荷が一気に高まることがあります。多くの場合、プロダクトバックログリファインメントはスプリントの最後に行われますが、実際にはいつでも行うことができます。
プロダクトバックログリファインメントには、スプリントの5〜10%の時間を割くことが一般的です。こうすることで、スプリントの計画に取り入れるアイテムが十分に整理され、開発チームの生産性が向上すると期待されます。
スプリントレビュー
スプリントの最後にプロダクトオーナーがプロダクトを確認する機会を設定します。
これをスプリントレビューと呼びます。スプリントプランニングでコミットした内容が実現されているのかを検証し、プロダクトを改善するための議論を行います。
スプリントレビューに基づいて、参加者は次にやるべきことに協力して取り組みます。新たな機会に見合うようにプロダクトバックログを調整することもあります。スプリントレビューはワーキングセッションであり、スクラムチームはスプリントレビューをプレゼンテーションだけに限定しないようにします。
スプリントレビューでは、以下のようなことについて報告・議論を行います。
- 開発チームが完了できなかったプロダクトバックログの項目について説明する。
- プロダクトオーナーがプロダクトの状況やビジネスの環境について説明する。
- プロダクトバックログに追加すべき項目の有無について議論する。
- プロジェクトを進めるうえで問題となる事項について関係者で議論する。
- 現在の進捗を踏まえて、リリース日や完了日を予測する。
スプリントレビューは、スプリントの最後から 2 番目のイベントであり、スプリントが 1 か月の場合、タイムボックスは最大 4 時間です。スプリントの期間が短ければ、スプリントレビューの時間も短くすることが多くなります。
スプリントレトロスペクティブ
スプリントの最後には、スプリントレトロスペクティブを行います。これは、直近のスプリントでのプロダクト開発に関わる活動において問題がなかったか、もっと成果を出すためにできることがないか検討し、チームが生産性を向上するための具体的なアクションを1つ以上コミットする、いわゆる「働き方の振り返り」です。
このように、仕事のやり方を常に検討して、より良いやり方に変え続けることはアジャイル開発における重要なポイントの1つであり、スクラムではスプリント単位でそれが行われるように仕組み化されています。
スプリントレトロスペクティブでは、以下のようなことが行われます。
- スプリントでの課題や問題点、成功した点などを振り返り、何が原因だったかを明確にします。
- 次のスプリントで改善すべき点を洗い出し、具体的なアクションを1つ以上コミットします。
- チーム全体がスプリントに参加した感想や反省点を共有し、コミュニケーションの改善につなげます。
スプリントレトロスペクティブは、スプリントの最後から2番目のイベントであり、スプリントが1か月の場合、タイムボックスは最大3時間です。スプリント期間が短い場合は、それに応じて時間を調整します。プロダクトの振り返りではなく、働き方の振り返りを行うことに注意してください。