このページではスクラム開発について、意味、特徴、アジャイル開発との違い、メリット・デメリット、開発の手順・流れ、スクラムチームのメンバーの役割を紹介します。
スクラム(スクラム開発)とは、アジャイル開発の1つで、スクラムチームと呼ばれる開発チームを組み、短期間・少人数でコミュニケーションを重視する開発手法です。
以下の記事では、スクラムの特徴やスクラムチームの役割など、初心者の方にもわかりやすく解説します。
スクラム開発とは
スクラム開発=スクラムチームによるアジャイル開発
スクラム(スクラム開発)とは、アジャイル開発の1つで、スクラムチームと呼ばれる開発チームを組み、短期間・少人数でコミュニケーションを重視する開発手法です。
【意味・定義】スクラム開発とは?
スクラム開発とは、スクラム(スクラム開発)とは、アジャイル開発の1つで、スクラムチームと呼ばれる開発チームを組み、短期間・少人数でスプリント(一定期間の開発)を繰り返し、コミュニケーションを重視する開発手法をいう。
スクラム=目的達成のために一丸となること
スクラムの本来の意味は、大勢の人やメンバーが目的を達成するために、一致団結すること、チームを組むことを意味しています。
ラグビーのスクラムを参考に名付けられたと言われています。
【意味・定義】スクラムとは?
スクラムは、大勢の人やメンバーが目的を達成するために、一致団結し、チームを組むことをいう。
スクラムチーム=スクラム開発チーム
スクラムチームとは、スクラム開発において、開発を進めるときの1つのチームを指します。
【意味・定義】スクラムチームとは?
スクラムチームとは、スクラム開発において開発を担当するチームをいう。
通常、スクラムチームは「プロダクトオーナー」「スクラムマスター」「開発メンバー」で構成されます。
スプリントとは
スプリントとは、スクラム開発でスクラムチームが定めた一定の開発期間のことです。
スプリントは、作業単位を目安に細かく設定されます。
【意味・定義】スプリントとは?
スプリントとは、スクラム開発において、スクラムチームが定めた一定の開発期間をいう。
スクラム開発の特徴
スクラム開発の特徴には以下のようなものがあります。
スクラム開発の3つの特徴
- 特徴1:少人数で開発を進める
- 特徴2:コミュニケーションを大事にする
- 特徴3:短期間で開発をくりかえす
特徴1:少人数で開発を進める
スクラム開発は、少人数でこまめにコミュニケーションを取りながら開発を進めます。
スクラムチームの全員が、開発行程の全てに関わります。
特徴2:コミュニケーションを大事にする
スクラム開発では、少人数で密に連携を取りながら開発を進めるためコミュニケーションを非常に重視します。
コミュニケーションを上手にとることで、開発スケジュールの把握や連携に繋げます。
特徴3:短期間で開発をくりかえす
スクラム開発は「スプリント」と呼ばれる短期間の開発期間があります。
この短いサイクルを開発スケジュールの中で繰り返して開発を進めていきます。
1つのスプリントの目安は約4週間で設定されます。
スクラム開発のメリット
スクラム開発の4つのメリット
- メリット1:効率的に作業ができる
- メリット2:仕様変更に柔軟に対応できる
- メリット3:問題や課題を早く発見できる
- メリット4:開発工数の見積もりがしやすい
メリット1:効率的に作業ができる
スクラム開発のメリット1つ目は、効率的に作業ができる点です。
スクラムチームのメンバーが協力をしながら、それぞれの作業に集中して開発を進めるため作業を効率的に行えます。
メリット2:仕様変更に柔軟に対応できる
スクラム開発のメリット2つ目は、仕様変更に柔軟に対応できる点です。
スクラム開発ではスプリントで開発期間を区切り進めていくため、次のスプリントに入る前に、仕様の変更などが可能です。
メリット3:問題や課題を早く発見できる
スクラム開発のメリット3つ目は、問題や課題を早く発見できる点です。
スクラム開発の特徴として、こまめなコミュニケーションがあり、ミーティングなども頻繁に開催されます。
メンバーの開発進捗や課題も共有をするため、早期発見、解決に繋がりやすいです。
メリット4:開発工数の見積もりがしやすい
スクラム開発のメリット4つ目は、開発工数の見積もりがしやすい点です。
一般的にソフトウェア開発では、開発を進めていくと変更なども起きるため、開発前の正確な見積は難しいです。
しかし、スクラム開発では、スプリントごとに見積を出すことも可能なため、正確に近い見積りが取れます。
スクラム開発のデメリット
スクラム開発の5つのデメリット
- デメリット1:開発メンバーに経験や知識が求められる
- デメリット2:開発スケジュールの全体的な把握が難しい
- デメリット3:メンバー内のコミュニケーションが必須
- デメリット4:トラブルを防ぐ手続きが煩雑
- デメリット5:発注側(プロダクトオーナー)にも一定の業務・責任がある
- デメリット6:完成が保証されないため失敗する可能性もある
デメリット1:開発メンバーに経験や知識が求められる
スクラム開発のデメリット1つ目は、開発メンバーに経験や知識が求められる点です。
スクラム開発は少人数で短期間でスピード感を持って開発が進められます。
経験や知識がないと、フォローが必要になり開発が遅れたり、離脱者が出る場合もあります。
デメリット2:開発スケジュールの全体的な把握が難しい
スクラム開発のデメリット2つ目は、開発スケジュールの全体的な把握が難しい点です。
開発前にある程度開発の全体像は見えます。
しかし、仕様変更に柔軟に対応できる分、変更が起きると全体像の把握が困難になります。
デメリット3:メンバー内のコミュニケーションが必須
スクラム開発のデメリット3つ目は、メンバー内のコミュニケーションが必須な点です。
スクラム開発は密にコミュニケーションをとることを重視します。
そのため、他のメンバーとの協力や会話が必要不可欠になります。
開発のみに集中したいなどの場合は、知識や経験にかかわらずスクラム開発には不向きであると言えます。
デメリット4:トラブルを防ぐ手続きが煩雑
スクラム開発のデメリット4つ目は、トラブルを防ぐ手続きが煩雑な点です。
スクラム開発では、仕様変更が柔軟に対応できたり、開発計画を変更することも一部可能なことから、仕様変更等によるトラブルも発生します。
このようなトラブルを未然に防ぐために、開発時の記録を全て残すことや、仕様変更が起こるたびに覚書などの対応も必要です。
デメリット5:発注側(プロダクトオーナー)にも一定の業務・責任がある
スクラム開発のデメリット5つ目は、発注側(プロダクトオーナー)にも一定の業務・責任がある点です。
スクラムチームには、プロダクトオーナーという役割があり(後述参照)、主に発注者が担います。
プロダクトオーナーもスクラムチームの一員として、開発の方針を決めたり開発に関する管理業務も行う必要があります。
これは、受注側に「丸投げ」ができるウォーターフォール開発と大きく異なる点です。
デメリット6:完成が保証されないため失敗する可能性もある
スクラム開発のデメリット6つ目は、完成が保証されないため失敗する可能性もある点です。
ソフトウェア開発の一種でアジャイル開発、スクラム開発とよく比較されるものに「ウォーターフォール開発」があります。
ウォーターフォール開発は、「仕事の完成」を目的とした「請負型」で契約されることが多いです。
これに対して、スクラム開発では、予め定めた契約期間や開発期間の満期により開発終了とし、「仕事の完成」ではなく「開発の実施」そのものが目的となる「準委任型」の契約となります。
準委任型では、製品が完成したかは問われないため、開発が失敗に終わることもあります。
準委任型で失敗しないためには、業者の選定や開発中の連携がポイントになります。
3つのスクラムチームのメンバーと役割
スクラムチームには主に「プロダクトオーナー」「スクラムマスター」「開発メンバー」の3つの役割があります。
プロダクトオーナー
プロダクトオーナーとは、製品(プロダクト)のオーナーを指します。
プロダクトオーナーの主な役割は、開発プロジェクトのオーナーとして製品のビジョンや方針を決定することです。
要件定義や開発に必要なものの決定権を持ちます。
それ以外にも、開発には直接関わりませんが、プロダクトバックログの管理や開発進捗の把握なども行います。
スクラムマスター
スクラムマスターは、開発のプロジェクト全体を調整する役割を持ち、プロダクトオーナーと開発メンバーのサポートをします。
開発の進め方やチーム内でのルールなどをスクラムチーム内に共有したり、課題に取り組む際の指揮を取ります。
スクラムマスターは、前に立ってプロジェクトを進めるよりかは、全体のサポートにまわる役割を持ちます。
開発メンバー
開発メンバーは、実際にデザインやプログラミングを担当するメンバーです。
開発メンバーは開発スキルとともに設計やドキュメントの作成、テスト、運用といった、一連の流れに対応できることが求められます。
スクラム開発の手順・流れ
スクラム開発は以下の7つのSTEPで進めます。
スクラム開発の手順・流れ
- STEP1:プロダクトバックログの作成
- STEP2:スプリントプランニングを立てる
- STEP3:開発を実施
- STEP4:毎日情報を共有(デイリースクラム)
- STEP5:スプリントレビュー(検証・確認)をする
- STEP6:スプリントレトロスペクティブ(振り返り)をする
- STEP7:次のスプリントプランニングを立てる
STEP1:プロダクトバックログの作成
STEP1では、プロダクトバックログの作成を行います。
プロダクトバックログは、開発に必要なプロダクトへの要望をまとめたリストやドキュメントです。
【意味・定義】プロダクトバックログとは?
プロダクトバックログとは、アプリ開発・システム開発に必要となる発注者側の要求事項のリストをいう。
プロダクトバックログの作成は主にプロダクトオーナーが行います。
受注側の意見を取り入れたり、スクラムマスターのサポートを受けながら作成することもあります。
このため、受注側がいかにプロダクトバックログを引き出せるかも重要となります。
STEP2:スプリントプランニングを立てる
STEP2では、スプリントプランニングを立てます。
プロダクトバックログを元に、個々のスプリントの目標の明確化や作業内容やタスクの振り分けなどを行います。
スプリントプランニングを立てるために、ミーティングを設定し、ドキュメントにまとめます。
スプリントプランニングでまとめたものをスプリントバックログといいます。
【意味・定義】スプリントバックログとは?
スプリントバックログとは、個々のスプリントにおける開発対象となった要求事項のリストについて、目標、作業内容、タスクのリストをまとめたログ(記録)をいう。
STEP3:開発を実施
STEP3では、開発を実施します。
実際の開発では、スプリントバックログを元に「要求内容の確認」「設計」「実装(プログラミング・デザイン等)」「テスト」を行います。
STEP4:毎日情報を共有(デイリースクラム)
STEP4では、毎日情報を共有(デイリースクラム)します。
デイリースクラムとは、毎日同じ時間にスクラムチームで集まり、情報や進捗、課題などの共有を短時間で行うミーティングのことです。
【意味・定義】デイリースクラムとは?
デイリースクラムとは、毎日同じ時間にスクラムチームで集まり、情報や進捗、課題などの共有を短時間で行うミーティングを言う。
STEP5:スプリントレビュー(検証・確認)をする
STEP5では、スプリントレビュー(検証・確認)をします。
スプリントの最終日にプロダクトオーナーと成果物の確認・検証を行うフェーズです。
スプリントバックログが満たされているか確認し、無事にリリースできるか最終チェックをします。
STEP6:スプリントレトロスペクティブ(振り返り)をする
STEP6では、スプリントレトロスペクティブ(振り返り)をします。
レトロスペクティブとは、英語で「振り返り、回顧」を意味し、スプリントレトロスペクティブとは、スプリントのプロセスに着目し振り返りをするミーティングです。
【意味・定義】スプリントレトロスペクティブとは?
スプリントレトロスペクティブとは、スプリントのプロセスに着目し振り返りをするミーティングです。
スプリントでの問題や、うまくいった点、改善点などを話し合い、次回に役立てます。
STEP7:次のスプリントプランニングを立てる
STEP7では、次のスプリントプランニングを立てます。
次の開発に向けて、スプリントレトロスペクティブで振り返った点を反映しながら、次のスプリントプランニングを立てます。
以降、開発の終了まで、STEP2~7を繰り返すこととなります。
スクラム開発に関するよくある質問
- スクラムとはなんですか?
- スクラムの本来の意味は、大勢の人やメンバーが目的を達成するために、一致団結すること、チームを組むことを意味しています。アジャイル開発の手法の一つである、スクラム(スクラム開発)でも、スクラムチームを組み、短期間で短期間・少人数でコミュニケーションを重視する開発手法です。
- スクラム開発の特徴はなんですか?
- スクラム開発の特徴は、以下のとおりです。
- 特徴1:少人数で開発を進める
- 特徴2:コミュニケーションを大事にする
- 特徴3:短期間で開発をくりかえす