Site cover image

Site icon image MEGUMI SHIMABUKURO

This blog is all about things I've tried and found out.

👩🏻‍💻 SCRUM BOOT CAMP THE BOOK を読んだ備忘録

はじめに

SCRUM BOOT CAMP THE BOOK を読んだ備忘録を書きました。スクラム開発で使われる用語を雰囲気で使っているところがあったので、正しく活用できるように、主要なスクラム用語をまとめてみました。SCRUM BOOT CAMP THE BOOK以外にも、スクラムガイドやインターネットで調べた記事などを参考にしています。

スクラムガイド

スクラムガイド(日本語)

SCRUM BOOT CAMP THE BOOK

SCRUM MASTER THE BOOK

ryuzee.com の FAQ

用語

スクラムとは

スクラムとは
  • アジャイル開発手法の一つ。最低限のルールセットとして、5つのイベント、3つのロール、3つの作成物で構成されます。
  • スクラムとは、複雑な問題に対応する適応型のソリューションを通じて、⼈々、チーム、組織が価値を⽣み出すための軽量級フレームワークです。

アジャイル開発とは

以下のような進め方をする開発のことです。

  • 目的の達成のために関係者がお互いに協力し合いながら進める。
  • 一度にまとめてではなく少しずつ作り、早い段階から実際に動作するものを届け続けて評価を繰り返す。
  • 利用者の反応や関係者からのフィードバックを継続的に得ながら、作っているもの自体や計画を調整する。

アジャイル開発のメリット
  • 「事前にすべてを正確に予測し、計画することはできない」という考え方があって、重要なことや優先度が高いものから作っていくので、効率よく開発できることがメリット。
  • 逆に、「事前にすべてを正確に予測し、計画することはできる」という考え方で、最初に全ての要求に対して、期間や人数などのコストを見積もって開発すると、途中で優先度ややりたいことが変わると手戻りが発生する。

5つのイベントとは

3つのロールとは

3つの作成物とは

スクラムマスターとは

スクラムマスターとは
  • チームの自己組織化を促進する役割の人
  • チームの自発的な行動を促すことを通じて、障害物を取り除く
  • 1つのスクラムチームだけでなく組織全体に目を配り、みんながよりうまく働けるようにする

📌 プロダクトオーナーとスクラムマスターが兼務することがよくない理由
  • ほとんどの場合、スクラムマスターの役割は軽く扱われ、プロダクトオーナーがすべてをコントロールします。そのようなチームは一般的に、スクラムへの深い理解を欠き、自己組織化しません。
  • 権限が集中するので、他のメンバーが意思決定する機会が減り、自己組織化がされにくくなります。

自己組織化とは

自己組織化とは
  • 自己組織化したチームとは、境界内で、日々のタスクをどのように処理するかを決めることができるチームのこと
  • 境界内というのは、スプリントゴールとスプリントバックログの範囲内のことで、自由に全てを自分たちで決めれるというわけではない
  • 「日々のタスクをどのように処理するかを決めることができる」をもう少し詳しくいうと、「誰がどのタスクに取り組むか、チームメンバーがどう助け合うか、新しいことを学ぶ必要があるのはいつか、1日の作業の優先順位をどうつけるかを、外部の権威にとらわれず、チームが決められるようにしておける」ということ

📌 なぜ自己組織化することが重要なのか
  • 自己組織化すると、境界内のことはチームで決めることができるので、上位の管理者などにエスカレーションすることなく、チーム内で意思決定ができるので迅速な対応が可能になる。
  • 自己組織化したチームでは、各メンバーがより高いレベルの自由度と責任を持つため、新たなスキルを習得したり、新しい解決策を試したりする機会が増える。
  • 自己組織化したチームは、失敗を学びの機会として捉える文化を持つことが多く、失敗から学ぶことは、チームの成長と改善に大きなメリットがある。

プロダクトオーナーとは

プロダクトオーナーとは
  • プロダクトオーナーは、スクラムチームから⽣み出されるプロダクトの価値を最⼤化することの結果に責任を持つ人
  • 効果的なプロダクトバックログ管理に責任を持つ
  • プロダクトゴールを策定し、明⽰的に伝える
  • プロダクトバックログアイテムを作成し、明確に伝える
  • プロダクトバックログアイテムを優先度順に並び替える
  • プロダクトバックログに透明性があり、⾒える化され、理解されるようにする
  • プロダクトバックログの管理は、プロダクトオーナーが⾏うこともできるが、他の⼈に委任することもできる。いずれの場合も、最終的な責任はプロダクトオーナーが持つ。
  • プロダクトの What を担当する。

📌 誰がプロダクトオーナーをやるとよいのか?

プロダクトバックログとは

プロダクトバックログとは
  • プロダクトバックログは、創発的かつ順番に並べられた、プロダクトの改善に必要なものの⼀覧である。スクラムチームが⾏う作業の唯⼀の情報源です。
  • プロダクトバックログアイテムは、完成の定義が必要です。

📌 プロダクトバックログアイテムは何を元に作るのか
  • スクラムチームで達成すべきゴール
  • 開発して実現するものの概要
  • インセプションデッキ
  • システムの機能一覧

📌 プロダクトバックログアイテムは誰が作るのか
  • 基本的に誰が作ってもいいです。
  • とはいえ、誰でも自由に作ると、プロダクトバックログ全体がどうなっているか誰にもわからなくなってしまうので、プロダクトバックログの手入れ(リファインメント)が必要です。
  • 誰でも自由にさまざまな意見を書いていいが、プロダクトバックログの管理の責任者はプロダクトオーナーです。

📌 プロダクトバックログアイテムに書く内容とは

特に決まりはない。例えば以下のようなものです。

📌 1つのプロダクトバックログアイテムが大きくて1スプリントでは作れません。複数スプリントにまたいで開発していいですか?
1つの機能が大きい場合、その機能には多くのサブ機能が含まれていることが多々あるので、意味のある単位で分割する必要がある(コンポーネント単位では分割してはいけません)
別の観点として、その機能の設計や調査も含めて時間がかかる、といった場合は、その機能はまだスプリントで着手する準備ができていない状態の可能性もあります。 スプリントに入る前に事前に「機能として何ができていれば完了なのか」「それはどうやってテストできるのか」等が合意できているものだけを着手してください。

📌 プロダクトバックログアイテムの実現イメージをどれぐらい持っている必要があるか

📝 プロダクトバックログアイテムを実現するイメージは、全員が持っていた方が良くて、持っていないとプランニングで確認することになるので、プランニングの時間が長くなりがち。実現イメージを持っていない場合はリファインメントで準備します。

全員がプロダクトバックログアイテムの実現イメージを持てていることが重要です

スプリントプランニングだけで全員が実現イメージを共有するのは困難です。つまり、スプリントプランニングより前のプロダクトバックログリファインメントの段階で、開発者たちがスプリントで完成できそうなプロダクトバックログアイテムである、という認識を持てるようにするのが理想です。

プロダクトゴールとは

プロダクトゴールとは
  • プロダクトゴールは、プロダクトの将来の状態を表しています。それがスクラムチームの計画のターゲットになります。
  • プロダクトゴールはプロダクトバックログに含まれる。プロダクトバックログの残りの部分は、プロダクトゴールを達成する「何か(what)」を定義するものです。
  • プロダクトゴールは、プロダクトオーナーが策定します。

開発者とは

開発者とは
  • プロダクトの How を担当する役割の人
  • 以下の結果に責任を持つ人
    • スプリントの計画(スプリントバックログ)を作成する。
    • 完成の定義を忠実に守ることにより品質を作り込む。
    • スプリントゴールに向けて毎⽇計画を適応させる。
    • 専⾨家としてお互いに責任を持つ

スプリントプランニングとは

スプリントプランニングとは
  • スプリントの起点。スプリントで実⾏する作業の計画を⽴てるイベント。結果としてできる計画は、スクラムチーム全体の共同作業によって作成します。
  • プロダクトオーナーは参加者に対して、最も重要なプロダクトバックログアイテムと、それらとプロダクトゴールとの関連性について話し合う準備ができているかを確認する。
  • 以下の2つのことプロダクトオーナーと開発者で話し合う
    • このスプリントで何ができるか。このスプリントで達成できるプロダクトバックログを決める。(スプリントゴールを決める)プロダクトバックログは優先度順に並んでいるので、上からいくつか選択すると良い。完成かどういう状態がどうかも決める。
    • どのように達成するか。優先度の高いプロダクトバックログアイテムについて、詳細な計画を立て、確実に達成できる範囲を確認する。タスクの洗い出し。洗い出した作業の管理は開発者に任せられてる。
      • 例. 「画面の構成を考えて、設計して、実装して、テストして…」など

📌 スプリントプランニングにとても時間がかかるのですが、どうしたらいいですか?

📌 作業計画と見積もり

📝リファインメントで見積もりができてるなら作業計画は不要なのでは?と思ったのでメモ

  • プロダクトバックログアイテムの見積もりは、そのアイテムを完了するためにどれくらいの労力が必要かを理解するための一部です。
  • スプリントプランニングの一部として行われる作業計画は、詳細を明らかにする。開発チームは各アイテムをさらに細かいタスクに分解し、それぞれのタスクに対する計画を立てます。これにより、チームはスプリント中に何を行うべきか、どのタスクが依存関係を持っているか、どのタスクが最も早く開始するべきかなどを理解できます。
  • 見積もりは、通常はリファイニングの段階であらかじめ行っておくことが推奨されてる。(スプリントプランニングは主に次のスプリントで何を達成するべきか(ゴール)を定め、どのプロダクトバックログアイテムがそのゴール達成に必要かを選択するためのイベントなので、見積もりは前もってやってた方が効率的)

📌 スプリントプランニングの変遷
  • 📝 いろいろ変わっていってるのか。面白い。

📌 スプリントプランニングが効果的でない場合のケース

スプリントバックログとは

スプリントバックログとは
  • スプリントゴール、スプリント向けに選択したプロダクトバックログアイテム、およびそれらを提供するための計画をまとめてスプリントバックログと呼びます。
  • 今スプリントで選択したプロダクトバックログアイテムと実行計画です。
  • プロダクトバックログアイテムをを具体的な作業に分割してものです。
  • 1タスクは1日以内で終わるサイズが目安です。

スプリントゴールとは

スプリントゴールとは
  • スプリントの目標です。
  • スプリントゴールはスプリントの唯⼀の⽬的です。

📌 スプリントゴールはいつ決めるのか?
  • スプリントプランニングの時です。

インクリメントとは

インクリメントとは
  • これまでのスプリントでの成果と今スプリントで完成したプロダクトバックログアイテムを合わせたものです。
  • リリースするかどうかに関係なく、動作して検査可能でなければいけないです。
  • インクリメントをまとめたものをスプリントレビューで提⽰します。
  • 完成の定義を満たさない限り、作業をインクリメントの⼀部と⾒なすことはできないです。

リファインメントとは

リファインメントとは
  • プロダクトバックログアイテムの要求を詳細化することです。(少なくとも開発できるぐらいに具体的にする)
  • スプリントプランニングを開始する前のプロダクトバックログの上位の項目についての事前準備作業のことです。
  • 準備の内容はさまざまですが、以下のようなことを行います。
    • 項目の中身を具体的にする
    • 項目の疑問点を解決する
    • 項目は何ができたら完成なのか(受け入れ基準)を明らかにする
    • 項目を自分たちが扱えるサイズに分割する
    • 項目を見積もる
  • 見積もりの最新化や優先順位の並び替えなどを行います。

📌 リファインメントはいつ誰が行うのか

デイリースクラムとは

デイリースクラムとは
  • デイリースクラムは、スプリントゴールを達成できるかを検査するイベントのことです。
  • 1日1回15分、同じ時間に同じ場所で毎日開催します。
  • デイリースクラムでの定形質問
    • スプリントゴールの達成のために自分が昨日やったことは何か
    • スプリントゴールの達成のために自分が今日やることは何か
    • スプリントゴールを達成する上で、障害となるものがあるか

スプリントレビューとは

スプリントレビューとは
  • スクラムチームは、主要なステークホルダーに作業の結果を提⽰し、プロダクトゴールに対する進捗について話し合います。
  • スプリントレビューの⽬的は、スプリントの成果を検査し、今後の適応を決定することです。
  • スプリントのインクリメントを提示します。

📌 スプリントで何も完成しなかった場合スプリントレビューをキャンセルしてもいいですか?
ダメ。スクラムをやっているなら全てのイベントは必須
  • 📝 個人的な感想としては、インクリメントに変化がない場合は、やることが少なそうなので、キャンセルしてもよさそうと思ったけど、インクリメントに変化がないこと自体が問題なので、そこを改善する必要がありそう。(インクリメントが変化がないということはつまりスプリントゴールを達成していないということ。プロダクトバックログアイテムが大きすぎる問題などもありそう)

📌 スプリントレビューの目的や参加者、進め方、コツなどを深掘り

スプリントレトロスペクティブとは

スプリントレトロスペクティブとは
  • スプリントでの作業の進め方を確認して、次のスプリントをよりうまく進めていくために用意されているイベントです。
  • 「振り返り」と呼ばれる活動のことです。

全体の流れ

まとめるとこんな感じの流れ

flowchart TD

subgraph リファインメント
   プロダクトバックログの作成や更新する
   -->
   プロダクトバックログを優先度順に並べる
   -->
   プロダクトバックログから直近のスプリントでやる分の見積もりをする
end

subgraph プランニング
   スプリントの期間で実現できそうな分のプロダクトバックログアイテムを選ぶ
   -->
   選んだプロダクトバックログが本当にスプリント内に実現できるか細かくタスク分割したりスプリントの作業計画を立てる
end

subgraph デイリースクラム
スプリントゴールを達成できるかデイリースクラムで確認する
end

subgraph スプリントレビュー
スプリントのインクリメントを確認してプロダクトゴールに近づいてるか確認する
end

subgraph レトロスペクティブ
スプリントを振り返ってその結果を次回のスプリントに生かせるようにする
end

リファインメント
-->
プランニング
-->
デイリースクラム
-->
スプリントレビュー
-->
レトロスペクティブ
-->
この繰り返し