開発期間を短縮できる手法のアジャイル開発。近年のWebアプリやスマホアプリ開発に多く用いられているアジャイル開発とはどのようなものなのでしょうか。本コラムでは、アジャイル開発の概要から開発工程、そしてメリット・デメリットを交えながらアジャイル開発における三つの手法についても解説します。
アジャイル開発とは
アジャイル開発とは、システム開発手法の一つです。
アジャイルは「Agile」のことで、日本語では「機敏な」「素早い」という意味があります。つまり、アジャイル開発とは、システム開発の手法の中でも「素早い開発ができる手法」だということです。
素早い開発は「短納期の開発」に向いています。例えば、Web系のシステム開発で、1ヶ月単位の開発を行う場合や、短期間のリリースを反復して行う場合などにアジャイル開発が向いています。
アジャイル開発とウォーターフォール開発の違い
アジャイル開発は、しばしばウォーターフォール開発と比較されます。ここでは、双方の開発工程の違いを確認していきましょう。
アジャイルでの開発工程
アジャイル開発では、少単位のシステム開発を繰り返して進めていきます。
1.少単位機能の開発
- 要件定義
- 設計
- コーディング
- 機能テスト
2.少単位機能の開発
- 要件定義
- 設計
- コーディング
- 機能テスト
3.少単位機能の開発
- 要件定義
- 設計
- コーディング
- 機能テスト
・・・
例えば、短納期のリリースが必要な場合です。後に少しずつアップデートを繰り返すようなWebアプリケーション開発などはアジャイル開発でリリースし、徐々に機能を追加しながら全体のシステムを完成させていきます。
ウォーターフォールでの開発工程
ウォーターフォールでは、システム全体の構成や細かな仕様までをすべて最初に定義・設計して、上から順に開発工程を進めていきます。
- 要求定義
- 要件定義
- 機能設計
- 詳細設計
- コーディング
- 機能テスト
- 結合テスト
- システムテスト
アジャイル開発に比べてリリースまでに時間はかかりますが、要件定義と仕様設計がしっかりと固まりますので高い品質を確保できる特徴があります。
ウォーターフォール開発については「ウォーターフォールモデルとは?開発工程やメリット・デメリットをふまえた開発分野の向き不向きを解説」で詳しく解説していますので、合わせて参考にしてください。
アジャイル開発のメリット
それでは、アジャイル開発のメリットをみていきましょう。
開発スピードが早い
アジャイル開発は、開発スピードが早いというメリットがあります。上述してきたとおり、短期間でのシステム開発に向いており、例えばWeb系のシステム開発ではウォーターフォール開発よりもアジャイル開発が選択されています。
不具合が発生しても手戻りが少ない
少単位での機能開発を繰り返すアジャイル開発は、不具合が発生しても開発工程の手戻りが少ないこともメリットの一つです。また、少単位での機能開発を反復するため、現在発生している不具合を次のリリースで改修することもできます。
急な仕様変更でも対応しやすい
少単位の機能開発を行うため、急な仕様変更に対応しやすいといったメリットもあります。上述の「不具合発生時」と同じように仕様変更の部分を次回のリリースで修正できるため、ウォーターフォール開発のように「やり直し」の形を取らなくてよいのです。
顧客満足度に貢献できる
アジャイル開発は、開発手法の中でも「顧客に形が見えやすい」ものです。もちろん、Web系の開発が多いということもありますが、見える形で顧客が確認できるため、都度要求を聞きながら対応できます。顧客としては、要望が形になって見えるため、結果顧客満足度を高めることができるのです。
アジャイル開発のデメリット
続いて、アジャイル開発のデメリットも把握しておきましょう。
全体のスケジュール調整が難しい
アジャイル開発は少単位の機能開発を繰り返すため、顧客の要望による急な仕様変更にも対応しながら開発が進みます。裏を返せば、最終的な成果物が詳細に確定していない状態でスケジューリングをするため、全体のスケジュールを調整しにくいデメリットがあるということです。
スケジューリングについては、「スケジューリングはプロジェクト全体を左右する?意識すべきポイントやスケジューリングの手順を紹介」にて詳しく解説していますので、合わせて参考にしてください。
開発の全体像を把握しにくい
全体のスケジュール調整が難しい理由に関連したものですが、開発スタート時に明確な成果物をイメージしにくいというデメリットもあります。開発の全体像を把握しにくいため、プロジェクトが完了してみれば、最初に固めた仕様とは異なった成果物が完成する場合も多々あります。
アジャイル開発の手法
アジャイル開発の中にも、いくつかの手法があります。ここでは、代表的な3つの手法をみていきましょう。
スクラム
スクラムは、アジャイル開発を進めるためにチームで連携を取って開発を進めていく手法です。
ラグビーの「スクラム」をイメージするとわかりやすいでしょう。チームで密なコミュニケーションを取って確認し合うことで、高い品質の成果物を制作していきます。
XP(エクストリーム・プログラミング)
XPは、開発の中で顧客との密なコミュニケーションを重点に置いた開発手法です。
顧客が開発に深く関わることで、開発をしながら仕様変更を伝えます。これにより「完成してから仕様変更する」よりも、仕様変更に対して迅速で柔軟な対応ができるのです。
FDD(ユーザー機能駆動開発)
FDDは、顧客目線の品質で開発することに重点を置いた開発手法です。顧客が求めるサービスに必要な機能を明確化して、顧客に寄り添った開発を行うことで品質の高いシステム構築を目指します。
アジャイル開発に向いている分野
それでは最後に、アジャイル開発に向いている分野を確認していきましょう。
ここまでみてきたように、アジャイル開発は少単位の機能を反復して開発を進めていく手法です。したがって、仕様変更が起こりやすいものや、リリース後にさまざまな機能を追加(アップデート)していくシステム開発に向いています。
具体的には、Webアプリケーションやスマートフォンアプリをイメージするとわかりやすいでしょう。一度リリースしたら完了するアプリケーションではなく、定期的にアップデートや機能変更を加えるものに適しているのです。
まとめ
アジャイル開発は、Web系やスマホアプリなどの比較的短納期である開発に向いています。近年、Web系やスマートフォンアプリ開発が増えたこともあり、アジャイル開発を選択するシーンも増えているのです。アジャイル開発の特徴を理解するために、ウォーターフォール開発などの知識も得て、開発するシステムに合わせた手法を選択できるようにしましょう。
- カテゴリ:
- プロジェクト管理