DX Column

2022年12月21日

アジャイル開発手法であるスクラムとは?ビジネス・開発面のメリットも解説

カテゴリー:,

タグ:,

システムを開発する方法は様々です。従来は要件定義から実装まで滝の流れのように進めていくウォーターフォール開発が一般的でしたが、近年ではビジネス環境の変化に柔軟に対応できるアジャイル開発が普及しています。
スクラム(Scrum)はアジャイル開発手法の一つです。アジャイル開発を実施する際によく利用されるスクラムとは、どのような開発手法なのでしょうか。
この記事では、スクラムの概要やビジネス側、開発側から見たメリット、一般的なフローについて解説します。

1. スクラムとは

スクラムとはアジャイル開発手法の一つであり、まるでラグビーのスクラムのようにチームとして開発を進めることから、その名前がついています。スクラムでは反復を繰り返して少しずつシステムを開発していきます。この反復の単位を「スプリント」と呼びます。各スプリントにおいては最低限動作するシステムを構築し、早期に実際に動作するシステムを確認したり、最低限の機能でリリースしたりできるようにします。

スクラムのポイントは、優先順位付けに応じた開発です。一度にすべての機能を開発するわけではなく、求める機能に対して優先順位をつけて、重要なものから各スプリント期間で開発していきます。スクラム開発においては、ウォーターフォール型の「プロセス順守」や「発注者と受注者」ではなく、すべてのメンバーがひとつの開発チームとして活動します。その中で、メンバーの役割は以下の通りです。

プロダクトオーナー :スクラムにおいて、求める機能の洗い出しや優先順位付けをおこないます。プロダクトオーナーは機能の範囲や内容を「プロダクトバックログ」としてまとめ、開発チームへ開発内容を提示します。

開発チーム:実際にプログラムを開発する役割を担います。開発チームは複数名のメンバーで構成され、プロダクトバックログに基づきスプリントの計画を作成し、ゴールに向けて活動を行います。

スクラムマスター:チームにおいてスクラムの手法を有効に機能させるべく活動を行います。プロジェクトマネージャー役だと考えがちですが、スクラムのスタイルでプロジェクトを円滑に実施できるよう、陰になり日向になり組織に奉仕するサーバントリーダーとなることが望ましいとされています。

アジャイル型のプロジェクトの進め方については以下の記事でも紹介しています。

※関連記事:

現代ビジネスにサービスデザインの視点が重要な理由 – 具体的な進め方も紹介

2. スクラムの一般的なフロー

以下では、スクラムによるシステム開発のフローを紹介します。

プロダクトバックログの作成

上述したとおり、プロダクトバックログとはシステム開発に必要となる要求のリストです。各要求には優先度をつけ、重要なものから開発を行います。たとえばAIによる求人マッチングサービスを例にすると、機能としては以下のようなものが洗い出されるでしょう。

  • 求人検索機能
  • AIによるマッチング機能
  • 応募機能
  • 応募状況管理機能 など


スプリントの実施

上述のとおり、スクラムにおいてはスプリントと呼ばれる一定の期間を繰り返すことで開発を行います。スプリントの期間はプロジェクトによりますが、2週間や4週間などで設定されることが多いといえます。

スプリントを始めるにあたっては、スプリントの実施計画を立てます。これをスプリントプランニングと呼びます。スプリントプランニングでは、このスプリント内でどの機能を開発するか、またそのゴールをどうするかを定義します。

たとえば、AIによる求人マッチングサービスにおいて、とにかくリリースを優先させたい場合は「求人検索機能」や「応募機能」などのユーザー側の機能を先に開発します。一方で、AIによるマッチング機能をビジネスコアととらえており、その精度を継続的に評価・向上させたい場合は「AIによるマッチング機能」を重点的に開発し、一定の成果が出たところでその他の機能を開発してリリースを目指すことも考えられるでしょう。

各スプリントにおいては、コーディング作業だけではなくテストも実施し、スプリント完了時には最低限動作するシステムをリリースすることを目指します。スクラムにおいては、何度もコードを修正し、テスト・リリースを実施していくことから、テストの自動化やリファクタリングによるコード品質の向上などが重要です。

デイリースクラムの実施

スプリント期間中は、デイリースクラムとして日々ミーティングを実施し、本日の実施作業やこれまでの達成状況をチーム内で報告します。一般的には、以下の3つを報告することが多いといえます。

  • 昨日実施したこと
  • 本日実施すること
  • 直面している問題・懸念点

スクラムにおいては短期間で動作するシステムを作り上げる必要があるため、デイリーで速やかに状況を把握・共有することが重要です。

スプリントレビューの実施

スプリントの終了時には、スプリントレビューと呼ぶレビューを実施してスプリントの成果を確認し、今後何を行うべきかを決定します。プロダクトオーナーを含めてスプリントの成果を確認し、ゴールがどの程度達成できたかを判断。要求通りに機能が完成できたか、もしくはできていなければどのような改善が必要なのかを検討します。

たとえば、求人検索機能において当初想定していた検索項目では、思ったような結果が表示されないと分かれば、検索項目の追加などを検討します。

また、スプリントレトロスペクティブとよぶふりかえりを実施して、スプリントの活動を省みて開発チームにおける改善事項がないかを検討する活動も行います。

3. スクラムを採用するビジネス側・開発側のメリット

スクラムを採用することで、ビジネス側や開発側でどのようなメリットがあるのでしょうか。
以下でそれぞれ紹介します。

ビジネス側のメリット

柔軟な要件変更:ウォーターフォール型開発と比較して、要件の変更がしやすい。実際に開発されたシステムを見て、機能面やデザイン面の改善もできる。

早期リリース:最低限動作するシステムを構築するという特性上、早期にリリースすることが可能になります。リリース後、実際のユーザーに利用・評価してもらい、そのフィードバックをもとに機能を追加・改善していくという取り組みができる。

各スプリントの正確な見積:スプリントごとに見積・発注を行う場合、短期間かつ機能が明確であるため見積が正確なものとなり、ベンダー側が一定のコストで長期に継続的な開発が可能になる。

開発側のメリット

ビジネス側の深いプロジェクト参画:
プロダクトオーナーがチームの一員として活動するスクラムにおいては、発注者などのビジネスサイドがシステムの確認やレビューを行う機会も多く、深くプロジェクトに参加してもらえる。結果としてシステムの品質を向上させやすい。

リソースの有効活用:
スプリントという短い期間において作業内容を検討するため、エンジニアのリソースが無駄になりにくい。

4.まとめ

この記事では、アジャイル開発手法の一つであるスクラムについて紹介しました。スピード感や柔軟性を意識すべき現代的なシステム開発において、スクラムは有効な手法といえます。一方で、スクラムは必ずしも万能ではありません。たとえば要求仕様やリリース期限が明確となっている場合など、ケースによりウォーターフォール型の開発が望ましいケースもあります。使いどころを意識することで、より優れたシステム開発プロセスを実現できるでしょう。

関連ページ