アジャイル開発とスクラム開発の違いを解説!開発の流れも!
ソフトウェアの開発方法にはさまざまな種類がありますが、開発方法ごとに特化している点が大きく異なるため、違いを正確に把握した上で導入する必要があります。
数ある方法の中でも速度に特化しているものをアジャイル開発といい、アジャイル開発の欠点をカバーしたものをスクラム開発といいます。
本記事では、両者の主な違いや流れについて詳しく紹介します。
アジャイル開発とスクラム開発の違い
ここではまず、両者の概要についてご紹介します。
アジャイル開発とは
アジャイル開発はシステム・ソフトウェア開発のプロジェクト開発手法のひとつで、短期間での開発・試験を繰り返して進行します。
2001年にアメリカ・ユタ州にて、17人の技術者並びにプログラマーによって出された「アジャイルソフトウェア開発宣言」がはじまりとされています。この宣言では、より素早く効率的に製品開発を行うために、個人との対話・動的なソフトウェア・顧客との強調・変化への柔軟な対応の4つに価値を置いています。
スクラム開発とは
アジャイル開発のひとつとして分類されるのがスクラム開発です。ラグビーでも使われている「スクラム」という言葉がもとになっており、チーム一丸でスクラムを組むように開発に取り組むという特徴があります。
1986年に野中郁次郎氏と竹内弘高氏によって書かれた研究論文「The New New Product Development Game」の中で紹介されたのがはじまりです。
その後、1993年に実際に開発チームを発足させ、2003年に「アジャイルソフトウェア開発スクラム」として正式に手法として確立されました。
その他の手法
アジャイル開発・スクラム開発以外にもソフトウェア開発の手法がいくつかあるため、ご紹介します。
- エクストリーム・プログラミング
開発の要件・仕様変更の対応に特化した手法です。コミュニケーション・シンプル・フィードバック・勇気からなる4つの価値をチーム内で共有する必要があります。
開発計画に縛られず進行させることが可能ですが、開発には高い技術や豊富な経験をもったメンバーを揃えることが必須なため、人材確保のハードルが高い開発手法です。 - ユーザー機能駆動開発
顧客側の機能価値に注力した手法のことを指します。顧客側の仕事を可視化し、短期間で機能の選別を繰り返し開発を行います。
また、短期での開発により、ユーザーへの提供が適切な間隔で行える強みがあります。
アジャイル開発・スクラム開発の流れ
ここでは、両者の流れについてご紹介します。
アジャイル開発の流れ
開発のはじめには、ソフトウェアの大まかな仕様と要求を決定するリリース計画が必要ですが、開発途中の設計・仕様の変更に備えて、全体のスケジュールは決めるものの、細かな工程までは決めません。これにより、顧客の要望に合わせて臨機応変に開発が行えます。
その後はイテレーションと呼ばれる小単位に分けた開発を、計画・設計・実装・テストの順で行い、リリースを繰り返ながら進めます。
スクラム開発の流れ
スクラム開発はプロダクトオーナー・スクラムマスター・開発メンバーの構成で行われます。プロダクトオーナーは目的のソフトウェアの展望を開発チームに共有する役割を担い、開発チームのリーダーであるスクラムマスターはプロジェクトの進捗を管理するポジションです。そして、開発メンバーは自身でマネジメントを行い、ミーティングをしながら開発に取り組みます。
スクラム開発の流れを詳しく挙げていきましょう。
- バックログの作成
はじめに、プロジェクトチームの作業計画「バックログ」で、以下の2種類を作成します。 - プロダクトバックログ
開発における機能や改善要素などの優先順位を記したリストです。定期的に顧客側と開発の進行状況を共有するのに用います。 - スプリントバックログ
1〜2週間の短期間をスプリントと表現し、スプリントバックログはプロダクトバックログをスプリントごとに分割したものです。スプリントバックログは開発チームにとっての計画書になります。 - スプリントプランニングミーティング
作成したバックログを参考に、優先度の高いものから順に選び、実装します。 - デイリースクラム
スプリントプランニングミーティング後は、毎日決められた時間にミーティングで進捗報告を行います。そのときの状況次第で作業を決定するため、今後の課題・問題点などの共有も必要不可欠です。 - スプリントレビュー
開発が進んだら、機能が実装される度にテストを実施し、作成したバックログの基準を満たしているか評価します。
スプリントレビューでは、チームメンバー以外にも営業担当や連携システムの担当者、ユーザーなどにも参加・レビューをしてもらいます。 - スプリントレトロスペクティブ
スプリントレビュー後は、課題を発見し、次のスプリントで改善するために振り返りミーティングを行います。
関連用語について
ここでは、アジャイル開発に関連する主な用語と、意味について解説します。
- ユーザーストーリー
主に開発に必要な要件の代用として使われる、ユーザーが持つ要求と意図が文章化されたものを指します。具体的には、付箋紙やメモ書きでストーリー・マッピングを作成し、開発からその後のフィードバックに至るまでの要素を、今後効率よくサイクルを回していくためのヒントとして活用します。 - ベロシティ
作業スピードをチーム単位で可視化したもののことを指し、進捗状況を計ることが可能です。また、チーム全体の成長指標として活用される場合もあります。
アジャイル開発・スクラム開発のメリット・デメリット
以下ではそれぞれの開発方法のメリット・デメリットについてご紹介します。
アジャイル開発のメリット・デメリット
主なメリット・デメリットを見ていきましょう。
- メリット
システムの動作を実際に動かしながら確認するため、顧客側と開発側のすれ違いを早期に発見できます。また、開発は試行錯誤を繰り返して進行するため、急なシステムの変更などにもスムーズに対応可能です。 - デメリット
完成品の評価をするために、顧客もプロジェクトに参加しなければなりません。また、いくらでもシステムの変更が可能なため、必要以上に開発期間やコストがかかってしまう場合があります。
スクラム開発のメリット・デメリット
スクラム開発に関するメリット・デメリットも見ていきましょう。
- メリット
日々ミーティングを行って仕事の方向性の確認・修正ができるため、進捗状況を把握しながらスケジュールどおりに進行させやすくなります。また、チームメンバーの能力を把握しやすく、生産性の改善につなげやすいという点もメリットと言えるでしょう。
また、作業工数の見積もりも、1スプリント単位での見積もりをするだけで正確に行うことが可能です。 - デメリット
開発の進行がチームメンバーに依存しやすいため、経験の少ない者がいると進行が遅れたり、離脱者が出たりした場合プロジェクト全体に支障が出てしまう可能性があります。
アジャイル開発を行う際の注意点
アジャイル開発を行う際は、以下の2点に注意して進めましょう。
目的を明確化する
開発の目的を明確にしないと、コストを無駄に消費しながら延々と到達点のないプロジェクトを進めることになってしまいます。また、目的が定まっていないとチームメンバー内の意思疎通も円滑に行えません。
チームとしてプロジェクトを推進する
チームを中心としてプロジェクトが進むため、メンバー同士が互いのもつスキルを活用して、協力しあいながら課題の解決を行う必要があります。また、顧客側も開発チームの一員である自覚をもって役割を果たすことが求められます。
まとめ
アジャイル開発を円滑に進めるため、チームの要素を加えたスクラム開発は、メンバー間のコミュニケーションを重要視しています。また、チームの団結力がプロジェクト進行に大きく影響するため、日々のミーティングを徹底し、チーム内で情報共有をこまめに行うことが大切です。
本記事がそれぞれの開発を導入する上で参考になれば幸いです。
▼関連記事
常に「守・破・離」を重視すること。ミッションドリブンで成果の最大化を目指すCTOが語る、IT業界の正しいキャリアパス。
【2021年最新】エンジニアのおすすめプログラミング言語を徹底解説!
フルスタックエンジニアとは?求められる能力やキャリアパスなどを紹介