Facebook Twitter

ジャンル

開発工程 2023.06.06
twitter hatenabookmark

スクラム開発とは?アジャイル開発、ウォーターフォール型開発との違いや仕組みを詳しく解説

執筆: Qbook編集部

ライター

スクラム開発とは?アジャイル開発、ウォーターフォール型開発との違いや仕組みを詳しく解説

さまざまな開発手法があるなかで、最近では「ウォーターフォール型開発」よりも「アジャイル開発」に注目が集まっています。

「スクラム開発」はアジャイル開発の一種で、開発現場でも活用されはじめています。
しかし、スクラム開発という言葉を聞いたことがあっても、具体的な手法まで理解している方は少ないのではないでしょうか。
そこで、この記事ではスクラム開発の概要具体的な進め方を解説します。

※スクラム開発は、アジャイル開発の中の「スクラム」「スクラムフレームワーク」と呼ばれることもありますが、本記事では「スクラム開発」と表現します。

もくじ
  1. スクラム開発とは?概要や定義
  2. スクラム開発の3つの柱
  3. スクラム開発のチーム体制とは
  4. スクラム開発で発生するイベント
  5. スクラム開発で必要な3つの成果物
  6. スクラム開発を取り入れる3つのメリット
  7. まとめ

1.スクラム開発とは?概要や定義

スクラム開発とはアジャイル開発の一種で、チーム内で役割ごとに担当者を割り振り、密にコミュニケーションを図りながら進めていく手法です。

しかし、そもそもアジャイル開発がどのような手法なのか、ウォーターフォール型開発との違いがわからない方もいるのではないでしょうか。
そこで、はじめにアジャイル開発の特徴について見ていきましょう。

そもそもアジャイル開発とは

アジャイル開発とは、システム開発で必要となる「要件定義・基本設計・詳細設計・開発・テスト・運用」のサイクルを機能ごとに繰り返していく開発手法です。
機能ごとに上記のサイクルを繰り返していくため、急な仕様変更や顧客の要望に対しても素早く対応できます。

昨今は、一度サービスをリリースしてからも、顧客からのフィードバックをもとに更なるサービス改善をしていく企業が生き残っていく傾向があります。
アジャイル開発は、こうした顧客のフィードバックを柔軟に取り入れ、アップデートを繰り返すことに向いている開発手法といえるでしょう。

スクラム開発とアジャイル開発の関係性

スクラム開発はアジャイル開発の手法の一つで、役割ごとに担当者を割り振り、チームとして開発を進めていく方法です。
チーム内でタスクを割り振り、日々のコミュニケーションを取りながら進めるため、アジャイル開発のなかでもコミュニケーションを重視した手法となります。

役割を明確にしたうえで開発に着手するため、各タスクを同時並行で進められ、効率的に開発を進めることができます。
ただし、日々のコミュニケーションを煩雑にしてしまうと、それぞれのタスクに影響して開発が遅延してしまいます。

スクラム開発とウォーターフォール型開発の違い

ウォーターフォール型開発は、各工程(要件定義・基本設計・詳細設計・開発・テスト・本番リリース)を完了させてから次の工程に進む開発手法です。
そのため、ウォーターフォール型開発では後工程になるほど仕様変更に多くの工数がかかります。
設計を十分にしておかないと大きな手戻りが発生してしまうので、リリースまでに遅れが出てしまうケースもあります。

一方で、スクラム開発は機能ごとに設計や実装を繰り返す開発手法です。
機能ごとに開発を繰り返していくため、急な仕様変更にも対応できる柔軟性があります。

2.スクラム開発の3つの柱

スクラム開発は「経験主義」と「リーン思考」と呼ばれるものに基づいています。

経験主義とは、経験から知識が生まれ、開発で必要となる意思決定が観察に基づいておこなわれるとしたものです。リーン思考とは、開発に不要なことを徹底的に排除し、本質だけに集中する考え方です。

これらの考え方をもとに、スクラム開発では「スプリント」と呼ばれるイベントの組み合わせが繰り返し実施されます。
イベントを機能させるためには、3つの柱が重要です。それぞれの詳細を解説します。

Transparency(透明性)

透明性とは、スクラム開発でおこなわれるタスクを「見える化」し、チーム内で共有できる状況を指します。

スクラム開発の意思決定は、後ほど解説する3つの成果物によっておこなわれるため、透明性の高い成果物でなければなりません。もし、担当者の作業が「見える化」されておらず、透明性の低い成果物になると、意思決定の精度が落ちてしまうでしょう。

Inspection(検査)

検査とは、スクラム開発のゴールに向けて成果物が正しく評価された状態を指します。事前に課題を検知し、適応すべき事柄を洗い出すことが目的です。

Adaptation(適応)

適応とは、スクラム開発で実施される業務のなかで、いずれかの側面が許容範囲を外れていたり、成果物が受け入れられなかったりしたときに修正を加えることです。
それ以上の異常を防ぐためにできるだけ早く適応しなければなりません。

3.スクラム開発のチーム体制とは

役割.png

スクラム開発は、チームを組んで各タスクを進めていきます。スクラムチームは、以下の役割で構成されています。

・プロダクトオーナー(PO)
・スクラムマスター(SM)
・開発者

なお、スクラムチームは5~9名で構成されており、POとSMが1名ずつ、その他は開発者となります。それぞれの役割を解説しましょう。

プロダクトオーナー(PO)

プロダクトオーナーは、プロダクトの価値を最大化させるためにあらゆる責任を持つ役割です。例えば、プロダクトの改善に必要なタスクを一覧化した「プロダクトバックログ」の管理をするために以下のような責任を持ちます。

  • プロダクトゴールを明確にして共有
  • プロダクトバックログアイテム(プロダクトゴールの実現に必要な要素)の作成や共有

プロダクトオーナーは一人の人間が担当し、複数人で構成されるものではありません。

そのため、うまく機能させるには、プロダクトオーナーの決定をチーム内で尊重する必要があります。

また、顧客の要望はプロダクトバックログに記載されますが、実際に変更を加えるときにはプロダクトオーナーの同意が必要です。

スクラムマスター(SM)

スクラムマスターは、開発業務の進捗管理が主な役割です。スクラム開発はスクラムガイドにしたがって進められるため、開発チームがスクラムガイドを遵守しているかの確認をスクラムマスターがおこないます。

具体的には、以下の形で開発を支援します。

  • 進捗を妨げる障害物の排除
  • 質の高い成果物を作成できるような支援作業
  • スクラムイベントが正しく機能するための管理

ほかにも、スクラムマスターの役割にはプロダクトオーナーの支援も含まれ、主な内容は以下のとおりです。

  • プロダクトゴールの定義とプロダクトバックログの管理方法の検討
  • スクラムチーム内への共有
  • ステークホルダーとのコラボレーション促進

開発者

開発者は、各スプリントでプロダクトの開発を進めることが主な役割です。主に以下の責任を求められます。

  • スプリントの計画作成
  • 定義を遵守した開発
  • スプリントゴールに向けた計画への適応

4.スクラム開発で発生するイベント

スクラム開発.png

スクラム開発は、以下のような5つのイベントで構成されています。

  1. スプリント
  2. スプリントプランニング
  3. デイリースクラム
  4. スプリントレビュー
  5. スプリントレトロスペクティブ

それぞれのイベントを解説しましょう。

① スプリント

スプリントは1カ月以内の期間で構成され、プロダクトゴールの達成に必要な「スプリントプランニング」「デイリースクラム」「スプリントレビュー」「スプリントレトロスペクティブ」がおこなわれます。

スプリントでは、スプリントゴールの達成に大きな影響を与える変更をせず、必要に応じてプロダクトバックログをリファインメント(改良・改善)しながら進めていきます。スプリントの期間は1カ月に設定すると、短い期間で多くの学習サイクルを繰り返していけるため、PDCAサイクルを素早く回していけるでしょう。

② スプリントプランニング

スプリントプランニングは、スプリントで実施する作業計画を立てることです。主に、以下の手順に沿って進められます。

1.スプリントの価値を定義

まずは、プロダクトオーナーが今回のスプリントで高めるべきプロダクトの価値を提案します。続いて、ステークホルダーへ伝えるべきスプリントゴールをスクラムチーム全体で定義しなければなりません。

2.スプリントで実施すべき作業の洗い出し

開発者は定義されたスプリントの価値をもとに、今回のスプリントに含めるべきアイテムをプロダクトバックログから選択します。このとき、プロダクトバックログアイテムを修正するケースがあります。

スプリント内にどれだけのアイテムを含めるべきかの選択が難しいですが、過去のパフォーマンスや完成の定義を理解していけば徐々に精度の高いスプリントを計画できるでしょう。

3.作業の達成に向けた方法の策定

最後に、選択されたアイテムごとに、完成の定義を満たす成果物を作成するために必要な作業を洗い出します。多くの場合、アイテムを1日以内で完了できる小さなタスクに分解して策定していきます。開発者の裁量によって洗い出されるため、価値の高い成果物を作成する方法はスクラムチーム内で決めなければなりません。

スプリントに含めたプロダクトバックログアイテム、、スプリントゴールの達成に必要な成果物を作成するための計画をまとめて「スプリントバックログ」と呼びます。

③ デイリースクラム

デイリースクラムは毎日実施されるイベントで、スプリントゴールに向けた進捗状況を検査し、必要性に応じてスプリントバックログを修正することが目的です。

毎日15分を目安に実施され、プロダクトオーナーやスクラムマスターが全体の状況を検査し、開発者が1日の作業計画を共有します。デイリースクラムの実施により、担当者が抱える障害物を特定できるため、スプリントを円滑に進めていけるでしょう。

④ スプリントレビュー

スプリントレビューとは、スプリントの成果を検査して改善点を洗い出すことです。

検査では、スプリントで作成されたプロダクトをステークホルダーに提示し、プロダクトゴールに向けた進捗を話し合います。具体的には、このスプリントで達成したことや、それに伴う変化をスクラムチームとステークホルダーがレビューします。場合によってはプロダクトバックログの調整をするケースもあるでしょう。

スプリントレビューで重要なポイントは、成果物を提示するだけではなく、ディスカッションを重ねて次にやるべきことを明確にすることです。

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

スプリントレトロスペクティブとは、スプリントの最後に実施される振り返りの会議です。

スプリントレビューと違い、成果物にフォーカスした振り返りではなく、チームとしての対応や進め方に着目して振り返りを実施します。作業者、プロセス、ツール、完成の定義について、スプリントを通しての結果を検査します。

スプリント内でどのような問題が発生したのか、問題をどのように解決したのかを話し合い、次回以降に活かしていくことが目的です。スプリントは、スプリントレトロスペクティブをもって終了となります。

5.スクラム開発で必要な3つの成果物

スクラム開発では、3つの成果物が必要です。それぞれ解説していきます。

プロダクトバックログ

プロダクトバックログとは、プロダクトの改善に必要な作業を一覧にまとめたもので、主にスクラムチームが参考にする情報です。

スプリントプランニングを実施するときに、スプリント内で実施すべきタスクをプロダクトバックログから選択します。つまり、スプリントプランニングをする前にはプロダクトバックログを準備しておかなければなりません。

プロダクトバックログは、プロダクトの将来の状態を表した「プロダクトゴール」を最終的に成し遂げるものとしています。プロダクトゴールだけではなく、プロダクトゴールの達成に向けた作業も含まれています。

スクラムチームにとって、プロダクトゴールは長期的な目標です。次の目標を策定するときには、すでに立てている目標を達成もしくは放棄しなければなりません。

スプリントバックログ

スプリントバックログとは、「スプリントゴール」「スプリントで選択されたプロダクトバックログアイテム」「インクリメントの作成に向けた計画」で構成されたものです。主に、開発者が実施すべきタスクを洗い出したもので、スプリントゴールの達成に向けてリアルタイムに更新されます。

例えば、スプリントゴールの達成に向けて作業を進めるときに、スプリントバックログに含まれていない作業が発覚した場合には、プロダクトオーナーと交渉をしてスプリントバックログのスコープを変更します。

インクリメント

インクリメントとは、プロダクトゴールの達成に向けて必要となる、完成の定義に沿って作成された具体的な成果物です。

スプリントでは複数のインクリメントを作成し、スプリントレビューのときに提示して検査をします。場合によってはステークホルダーに提示するケースもあり、完成の定義を満たさない限りインクリメントは成果物としてみなされないため注意が必要です。

インクリメントは、プロダクトバックログアイテムが完成の定義を満たしたときに誕生するため、完成の定義を満たさないとリリースができず、スプリントレビューへの提示もできません。

6.スクラム開発を取り入れる3つのメリット

スクラム開発を取り入れることで、以下の3つのメリットがあります。それぞれのメリットを解説していきます。

タスクをチームごとに分担して効率的に進められる

スクラム開発は、チーム内で3つの担当に分かれるため、それぞれの役割が明確化されて効率的に進められます。

「プロダクトオーナー」「スクラムマスター」「開発者」の3つの役割に分担して進められるため、それぞれの担当者が実施すべきタスクが明らかになり、誰がどのタスクをやるべきか悩む必要がありません。

また、タスクの責任分界点が明確になることで、タスクの分担も効率的に進められるでしょう。

PDCAサイクルを回せる

PDCAサイクルとは、「Plan(計画)、Do(実行)、Check(評価)、Action(行動)」のプロセスを効率的に回すことです。

スクラム開発は、スプリントプランニングで計画を立て、計画に沿って日々のタスクをこなしていきます。デイリースクラムやスプリントレビューで評価をして、最終的にはスプリントレトロスペクティブで今後に向けた改善点を洗い出して次回以降に活かしていきます。

このように、スクラム開発を通じてPDCAサイクルを短期的に回していけるため、スプリントの精度も徐々に高まるでしょう。

ステークホルダーとのコラボレーションが促進される

スクラム開発は、スプリントレビューで成果物をステークホルダーに提示するなど、定期的にフィードバックを得ながら進められます。スプリントは長くても1カ月程度が想定されるため、認識の齟齬があっても早期に発見でき、プロジェクト全体の進捗に大きな影響を与えにくいです。

また、コラボレーションの促進により、ステークホルダーからの急な仕様変更にも対応しやすく、ユーザーの要望に応じたシステム開発ができるでしょう。

まとめ

スクラム開発はアジャイル開発の一種で、チーム内で役割ごとに担当者を割り振り、密にコミュニケーションを図りながら進めていく手法です。

昨今は顧客の多様化が進んでいるため、スクラム開発を取り入れることで顧客の要望に寄り添ったプロダクトを開発していけるでしょう。

ほかにも、役割が明確になることで効率的にタスクをこなしていけたり、PDCAサイクルを回して徐々にスクラム開発自体の精度を向上させたりできます。

本記事を参考に、スクラム開発の概要を理解し、今後の開発に活かしてみてはいかがでしょうか。

開発工程
twitter hatenabookmark

執筆: Qbook編集部

ライター

バルテス株式会社 Qbook編集部。 ソフトウェアテストや品質向上に関する記事を執筆しています。