2021.07.26 【責任編集】ラーニング・ツリー【解説】スクラムとアジャイルの違い
ソフトウェア開発において「アジャイル」という言葉と「スクラム」という言葉を聞く機会が多いと思います。なんとなく理解している方が多いと思いますが、両者の違いを明確にしていただくために、この記事ではスクラムとアジャイルの違いを分かりやすく解説していきます。
アジャイルとは?
アジャイル(Agile)とは「俊敏性の高いソフトウェア開発」の概念を意味します。アジャイル(Agile)は「俊敏な」とか「素早い」という意味で使用されますが、短い期間でのサイクルを実現する開発概念の総称です。
2001年に17名のエンジニアがこれからのソフトウェア開発のあるべき姿について議論し、その内容が『アジャイルソフトウェア開発宣言』にまとめられ公表されました。
ソフトウェア開発手法の代表的な手法であるウォーターフォールと比べ短い期間での開発体制を取る手法として世界中で採用されています。
アジャイルの詳細は以下の2記事で解説していますので、ぜひ目を通してください。
>>アジャイル開発とは(アジャイル開発とは | ラーニング・ツリー・ インターナショナル株式会社 公式ブログ (learningtree.co.jp))
>>アジャイル開発とウォーターフォール開発の違い(【徹底解説】アジャイル開発とウォーターフォール開発との違い | ラーニング・ツリー・ インターナショナル株式会社 公式ブログ (learningtree.co.jp))
スクラムとは?
一方、「アジャイル」が「概念」であるのに対し、「スクラム」とは「俊敏性の高いソフトウェア開発」の「手法」の一つです。
前述の17名のエンジニアのうち、ケン・シュエイバーとマイク・ビードルの共著『アジャイルソフトウェア開発スクラム(初版2002年)』が出版されたことで認知されるようになります。
本書は既に発表されていたスクラムを他の手法とともにまとめられた『アジャイルソフトウェア開発宣言』で記された内容を実践に落とし込むべく、ソフトウェア開発現場での体制作りや開発プロセスなどが具体的に示されたものです。
アジャイルの手法には、スクラムの他、代表的なものとして、XP(eXtream Programing)カンバン等がありますが、スクラムまたはスクラムと他のハイブリッドで利用されるケースが一番多くの割合を占めています。
スクラムの特徴
スクラムの特徴として「チームワークを重視する」ことが挙げられます。
ラグビーにおいて8人の選手が肩を組み、相手チームと押し合いながらボールを前に進めていくプレイをスクラム(Scrum)と呼び、これが語源です。
スクラムでは固定的なメンバーで開発が進められ、メンバーごとにプロダクトオーナー、開発者、スクラムマスターの役割が与えられます。
- プロダクトオーナー
プロダクトの方向性などを意思決定し、スプリントごとの評価を行う。
- 開発者
プロダクトオーナーの意向に沿って開発を進め、スプリントへの責任を持つ。
- スクラムマスター
全体の調整役としてプロダクトオーナーや開発チームが抱える課題の解決に取り組む。
これらのメンバーは固定的かつ長期的であり、チームワークを高めることで生産性の最大化と、ビジネス目標の達成を目指します。
ちなみにスプリントとは、スクラムにおける開発サイクルの単位です。
スクラム導入の3つのメリット
スクラムを導入した際の、代表的な3つのメリットを紹介します。
ビジネス側の要求に最大限応えられる
アジャイル手法の一種であるスクラムは、俊敏性の高さからビジネス側の要求に柔軟に応えられるというメリットがあります。
ソフトウェア開発の現場では要求変更が起きて当たり前と考えているので、開発途中で変更が生じても柔軟に対応できます。これが従来型のソフトウェア開発と決定的に違う点です。
ビッグバンテストを回避できる
開発プロジェクト全体を上流から下流へと一連の流れで進めていく場合、リリース前の「ビッグバンテスト(大型テスト)」を実施する必要があります。
プロジェクト最終段階で重大の問題に気づくことも多く、その解決には多くの作業と時間が必要であり生産性を著しく低下させる要因をはらんでいます。
スクラムではスプリント毎にテストを実施するのでプロジェクト終盤でのビッグバンテストを回避できます。
チームワーク強化による生産性向上が期待できる
メンバー同士の得手/不得手を理解し、チーム全体がスクラム開発に最適化されていくことで生産性を大幅にアップできます。
日頃から固定的なメンバーで開発することが多い場合は、スクラム導入を検討してもいいかと思います。
スクラム開発の4つのプロセス
次に、スクラムへ取り組むにあたり理解すべき4つのイベントを紹介します。
1.スプリントプランイング
スプリント期間の最初に行われます。プロダクトバックログ(プロジェクト全体でやるべきタスクの一覧)から優先度の高い要件を抽出し、実現するためのタスク化を行いますが、チーム内でメンバーの認識差異が無い事を確認しておきます。
2.デイリースクラム
デイリースクラムでは平日決まった時間、場所で15~30分程度の短いミーティングを実施して、メンバー全員で進捗管理や要求変化の確認などを行います。スクラムマスターがチーム全員に対し質問し、その回答を確認する事のみが実施されます。
問題があった場合、別な会議を開くこともありますが、スクラムマスターが問題解決意思決定の責任を負います。
3.スプリントレビュー
スプリント後は必ず開発されたソフトウェアのレビューを行い、必要に応じ新たなバックログを追加します。スプリントとスプリントレビューは製品の機能や品質が十分であると判断されるまで繰り返されます。
4.スプリントレトロスペクティブ
スプリントレトロスペクティブ
まとめ
世界では様々なアジャイル手法が展開されています。スクラムはその中で、最も取り入れられているアジャイル手法だと言えます。
スクラムはメンバー全員がオーナーシップを持ちながら開発を進めるアジャイルの手法です。そのためプロジェクトに対する責任感が芽生えやすく、質の高いプロダクトを作り出せる可能性が高いでしょう。
この記事を読んだ方へお勧めの講座
【公開講座・オンラインライブ研修】はじめてのスクラム│ラーニング・ツリー・インターナショナル (learningtree.co.jp)
【公開講座・オンラインライブ研修】スクラムを利用したアジャイルプロジェクトマネジメント│ラーニング・ツリー・インターナショナル (learningtree.co.jp)