SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発の要約です。PdMとしてwebサービスの開発を見てきた知見をもとに解説も混ぜていきます。
これからwebサービスをアジャイルで開発したい経営者、PdM向けです。
要約
- アジャイル開発とは?スクラムとは?
- 各役割
- 具体的な運用
- 運用する上での悩み
SCRUM BOOT CAMP THE BOOKはこれからスクラムを始めたい組織向けに具体的に進め方を書いている本になります。
ただのノウハウだけでなく、結構実際に起こるよなという悩みも書かれていて実践的です。
スクラムの前にアジャイルを知ろう
この本ではスクラムの話から始まっているがアジャイルから勉強するのをお勧めします。アジャイルというのが思想でスクラムはその思想を実現するためのフレームワークになります。
アジャイルとは?
アジャイル開発とは、ソフトウェア開発の手法の一つで、迅速かつ柔軟に対応することを重視した開発プロセスです。従来のウォーターフォール型開発とは異なり、アジャイル開発では以下のような特徴があります。
- 短期間の開発サイクル (スプリント) を繰り返す: 通常1〜4週間程度の短い期間で、計画、設計、開発、テストを行います
- 開発チーム内のコミュニケーションと協力が重要視され、顧客やステークホルダーとも頻繁に連携を取る。
- 要求や仕様の変更に柔軟に対応できるように設計されており、計画の変更が許容される。
- 包括的なドキュメントよりも動くソフトウェアを重視
すごくざっくりいうと常に変更していくものを作ることに特化した開発フローになっており、スプリントという一定期間で常に見直しが発生するのが大きな特徴になっています。
スクラムとは?
スクラムはアジャイルを実行するための具体的な開発手法になります。
チームが自己組織化し、共通の目標に向けて効率的に作業を進めるためのフレームワークです。ラグビーの「スクラム」に由来する名前で、チームメンバーが密接にコミュニケーションを取りながらプロジェクトを進めることが特徴です。
いくつかの役割とイベントで構成されており、詳細は下記で説明します。
アジャイルとスクラムの違いは?
アジャイルは開発の哲学でスクラムはそれを実現するための具体的な手法です。
役割
- プロダクトオーナー: プロジェクトのステークホルダーであり、開発する製品のビジョンを持ち、プロダクトバックログを管理します。
- スクラムマスター: チームが効率的に作業を進められるようにサポートし、障害を取り除く役割を担います。
- 開発チーム: 自己組織化されたチームで、デイリースクラムなどのミーティングを通じて進捗を確認しながら開発を進めます。
プロダクトオーナーとスクラムマスターは兼任してはいけない
プロダクトオーナーとスクラムマスターの役割を兼任すると、利益相反が発生する可能性があります。プロダクトオーナーは製品の機能やリリースのスケジュールに重点を置きがちで、一方スクラムマスターはチームの健全性やプロセスの改善に重点を置きます。この二つの視点が同じ人物により管理されると、バランスが崩れ、片方の役割が優先されるリスクがあります。
プロダクトオーナーと開発チームの棲み分け
仕様を決めていく際にプロダクトオーナーとエンジニア、デザイナーの棲み分けがよく議論に上がります。基本的にはプロダクトオーナーがwhat、何を作るかを決め、デザイナー、エンジニアがhow、どう作るかを決めるという棲み分けになります。
スクラムマスターって実際に設置しているチームあるの?
スクラムマスターを実際に選任でおいているところは結構少ないと思います。実際にはディレクターがやるところがメインなんじゃないでしょうか?プロダクトオーナーとはバッティングするため検認できないですが、チームの進捗をよくすると言う面ではディレクターとの兼任でもいいと思います。
イベント
スクラムでは下記のイベントで開発を回していきます。スプリントと呼ばれる通常2〜4週間の短期間で行われる開発サイクルの中に下記のイベントがあります。
- スプリントプランニング: スプリントの開始時に行われる計画会議。
- デイリースクラム: 毎日行われる短い進捗確認ミーティング。
- スプリントレビュー: スプリント終了時に行われる成果物のレビュー会議。
- スプリントレトロスペクティブ: スプリントの振り返りを行い、改善点を見つける会議。
スプリントプランニング:スクラムでは見積もりは不要なのか?
スプリントプランニングは見積もりし、計画を立てるイベントです。
よくありがちな勘違いがスクラムでは見積もりしないというものでこれは誤りです。スプリントプランニングでちゃんと見積もりし、計画することをイベントとして設定されています。ただ、スクラムでは見積もりはあくまで予測で不確実なものとしておいています。
スプリントレビュー、レトロスペクティブなどを通し、振り返り、だんだん精度を上げていくものになります。
ベロシティとは?
プランニングではベロシティをもとに期間の予測を立てます。ベロシティというのがそのチームが消化できる量です。
スクラムにおけるベロシティ(Velocity)は、チームの作業速度を測定するための指標で、特定のスプリント(通常は2〜4週間)に完了した作業量を示します。ベロシティは、過去のスプリントに基づいて計算され、チームが将来のスプリントで達成できる作業量を予測するのに役立ちます。
ベロシティはストーリーポイントで測定されることが多いです。
ストーリーポイントは、スクラムなどのアジャイル開発手法で使用される、作業の量や複雑さを評価するための相対的な単位です。これにより、チームはバックログアイテム(ユーザーストーリーやタスクなど)の大きさや難易度を評価し、スプリント計画やリリース計画を立てる際の参考にします。
ベロシティは上がったほうがいいのか?
ベロシティが上がればできる量が増えるのでいい気がしますが、ベロシティはあくまで予測のためなので予測観点で言うと上げることよりも安定しているほうがいいです。
スプリントレビューでは成果物が必要か?
スプリントレビューではドキュメントではなく成果物を持ってコミュニケーションします。これはアジャイルの思想からきています。成果物ベースでやり取りすることで開発陣以外のステークホルダーにもわかりやすいですし、進捗を誤魔化せなくなります。
インクリメントとは?
スクラムにおけるインクリメントとは、スプリント中に完成した成果物のことを指します。
プロダクトバックログとは?
プロダクトバックログはチームのやる施策を実行する順番で並べたものです。ここで注意しないといけないのが優先度順とは別という点です。チームで開発するにあたって常に優先度通りにできません。
この施策とこの施策は一緒にやってしまったほうが効率がいいなどもあるためそれらも考慮された実際に実行する順番に並べることが重要です。
タイムボックスとは?
スクラムにおけるタイムボックスとは、特定のイベントや活動に対して固定の時間枠を設定する手法です。これは、スクラムフレームワークの重要な要素の一つで、効率性と集中力を高めるために使用されます。
タイムボックスを守る重要性
タイムボックスを守る重要性はいくつかあり、リズムを作ることも重要ですが、予定を推測しやすいというのも大きいです。
完璧な開発フローはない
今までSCRUM BOOT CAMP THE BOOKをもとにスクラム開発について説明してきましたが、この通りにする必要はありません。えっ?って感じかもしれませんが、全ての会社で条件やメンバーのスキルも違うのでそれに合わせる必要があり、全ての会社にあった開発フローなどありません。
上記をもとにしつつも自社に合ったやり方を考えていくことが重要です。