こんにちは、クラウドエース編集部です。

アジャイル開発はサービスインまでの時間の短さに代表される様々なメリットから注目を集めている開発手法です。
プロジェクトによって最適な開発手法は異なります。本記事では、アジャイル開発のメリット・デメリットを解説するとともに、向いているケースや成功事例の紹介を行います。

アジャイル開発の基礎知識

この項目では、アジャイル開発がどのような開発手法なのか?また、従来の開発手法であるウォーターフォール開発との違いな何なのかを解説します。

アジャイル開発とは?

アジャイル開発とは、ソフトウェアやサービスの開発手法の一つで、開発を小単位に分けてそれぞれで実装やテストなどを行いながらプロジェクトを進める手法です。
アジャイルは直訳すると「素早い」「機敏な」「頭の回転が早い」などの意味があり、アジャイル開発の特徴である、サービスの提供までの時間を大幅に短縮できる点を表しています。

ウォーターフォール開発との違いは?

アジャイル開発と対比する形で紹介される事が多い、ウォーターフォール型とは、プロジェクトの最初の段階であらかじめ全ての開発工程や全体のスケジュールを立てて進める開発手法です。
最初に立てた計画に沿ってプロジェクトを進めていく特性上、急な仕様変更に対応する事が難しく、イレギュラーが発生した場合は、大幅な開発期間の延長や追加資金の投入を余儀なくされます。
仕様変更への柔軟な対応が可能であるアジャイル開発とは正反対の性質を持つ開発手法と言えます。

アジャイル開発のメリット

アジャイル開発のメリットについて、特に強みである3点を紹介します。

仕様変更などのイレギュラーに強い

アジャイル開発の一番のメリットは、従来主流であったウォーターフォール開発と比較した場合、不具合や仕様変更に対して強いという点です。

ウォーターフォール開発は、当初に決定した設計や要件定義を重視する為、開発途中で発生した急な仕様変更に代表されるトラブルはイレギュラーそのもので、全体の工数およびスケジュールに多大な影響を与えます。

一方で、アジャイル開発は、小単位での設計、開発、テスト、実装の各工程を行っている為、急な仕様変更が発生しても、柔軟に対応する事が可能で、戻り工数も最小限で済みます。

顧客ニーズに応じやすい

前述した通り、アジャイル開発は仕様変更に強いです。
従って、クライアントからの急な要望が発生したとしても、多くの場合は柔軟に対応可能なので、結果として大きな顧客満足の獲得に繋がる点もメリットと言えます。

サービスインまでの時間を短縮できる

アジャイル開発は、「素早い」「機敏」「頭の回転が早い」などを表す名前の通り、従来の開発手法と比べて開発期間が短縮されています。
アジャイル開発は、小単位で各機能を切り分けて開発し、優先度順にテスト・リリースを行うので、開発にかかる時間を短縮できます。
アジャイル開発はウォーターフォール開発と違い、手戻りが少ない点もサービスインまでの時間を短縮できる要因の一つと言えるでしょう。
サービスインまでの時間の短縮を図る事によって、クライアントは競合他社より早く製品をリリースする事が可能となり、優位性を得る事が出来ます。

アジャイル開発のデメリット

アジャイル開発は非常にメリットの多い開発手法ですが、当然デメリットも抱えています。
ここでは導入する際に抑えておきたい2つのデメリットを紹介します。

開発の方向性がブレやすい

アジャイル開発のメリットとして、仕様変更への強さを挙げましたが、裏を返せばデメリットになり得ます。
仕様変更に対して柔軟な対応が可能ゆえに、テストや改善を繰り返した結果、当初の計画の方向性がブレてしまう可能性があるからです。
また、あまりに多くの仕様変更や要望を受け入れてしまい、かえって予定より工期がかかり、コストも高くなってしまうという事も十分に考えられます。

スケジュールや進捗の把握が難しい

ウォーターフォール開発の場合は、初期段階で機能設計や開発スケジュールを設定します。
あらかじめスケジュール設定を行う事で、全体の進捗を把握する事が可能になります。
反面、アジャイル開発の場合は、計画の詳細を立案しない為、全体のスケジュールや工数単位、チーム単位での進捗の把握が難しくなります。
結果、プロジェクト全体の足並みが揃わず、最終的に納期に間に合わなくなる可能性が出てきます。

アジャイル開発が向いているケース

前述した通り、アジャイル開発には様々なメリット・デメリットがあります。
この項目ではそれらを踏まえた上で、アジャイル開発が向いているケースの一例を紹介します。

時代や状況の変化で仕様変更の可能性が大いにある場合

アジャイル開発は特性上、仕様変更や追加に対して柔軟な対応が可能な開発手法です。
その為、時代や状況によってニーズが大きく変化しやすい業界のプロジェクトに向いていると言えます。
最も代表的な業界はIT業界で、昨今ではWebサービス(SNS、ECサイト)やスマートフォンアプリなどが日々仕様変更や追加が行われるので、開発手法としてアジャイル開発が非常にマッチしています。
アジャイル開発は短期間でリリースし、その後のフィードバックを次回に活かし、良いサイクルでプロジェクトを回す事が可能です。

プロジェクト全体が不明瞭な場合

ウォーターフォール開発は、初期段階で綿密な設計、スケジュールを組むのに対して、アジャイル開発は小単位でこれらを行います。
実際の開発においては、全体の要件や仕様が決定する前にプロジェクトを開始しなければならない場合も少なからずあります。
アジャイル開発を採用する場合は、プロジェクト全体が不明瞭な場合でも、進行状況に応じて適宜対応していけば良い為、さほど大きな問題にはなりません。

クライアント参画型のプロジェクト

プロジェクトの中には、クライアントも開発に関わるものもあります。
アジャイル開発は、仕様変更に強い為、クライアントが途中で要望を加えたり、双方のすり合わせが容易です。
その為、クライアントが直接プロジェクトに関わる事が少ない、ウォーターフォール型と比べると、アジャイル開発はクライアントも開発メンバーの一員のように参画しやすく、結果として、限りなくクライアントの要望に近い成果物の完成が実現出来ます。

アジャイル開発の主な手法

ひとことでアジャイル開発といっても、様々な手法があります。
手法ごとにそれぞれ特徴があり、プロジェクトの性質によって適切に選択する事が重要と言えます。
ここでは主なアジャイル開発の手法の紹介をします。

スクラム

ビジネスの場でスクラムを組むという言葉を耳にする方は多いでしょう。
アジャイル開発の手法におけるスクラムとは、チーム単位で開発を行う手法を指します。
スクラムはメンバー各自の役割を決めますが、実際に携わる工程の割り振りは行われず、メンバー自身が立案します。
スクラムにはリーダーが存在し、全体の調整や管理を行い、メンバーに対しての役割の設定も行います。
スクラムでは、スクラムマスターも含めたメンバー全員で責任を共有するのが基本の在り方で、チーム主体の開発手法のため、コミュニケーションが最重視されます。
ゆえに、メンバーのスキルや進捗を把握しやすく、臨機応変かつ効率的にプロジェクトを進める事が可能になります。

エクストリーム・プログラミング(XP)

エクストリーム・プログラミングとは、プロジェクトの仕様や要件の変更に対して柔軟に対応する為の手法です。略してXPとも呼ばれます。
また、エクストリーム・プログラミングは10人前後くらいまでの開発チームに適した手法とされています。
エンジニアがペアを組み、コーディング内容をお互いに確認しながら作業を行う手法で、エラーや仕様の変更・追加に対応しやすい点が最大の強みです。
一方で、ペアプログラミングという特性から、エンジニア同士の相性の問題や、エンジニア自身の力量によってプロジェクトの効率に大きな影響を与えるといったケースも想定されます。

ユーザー機能駆動開発(FDD)

ユーザー機能駆動開発とは、ユーザーの目線で価値のある機能を選定し、その機能を中心に開発を進める手法です。
開発する機能単位ごとにチームを編成し、計画・設計を行います。
この手法の性質上、まずはユーザーが最も求めているものを明確にする必要がある為、クライアントとの綿密な打ち合わせおよび定期的なフィードバックが重要になります。
総じて、ユーザーの求める価値の高い機能を実装しやすい手法と言えます。

アジャイル開発を導入した成功事例

ここでは実際にアジャイル開発を導入して成功した事例を紹介します。

KDDIの登録エリア災害・避難情報メール

KDDI株式会社の提供する「登録エリア災害・避難情報メール」の開発にアジャイル開発が用いられました。
開発元は、プロジェクトを行うに辺り開発手法として「スクラム開発」を採用、他社と連携しプロジェクト開始前に「ビジョンステートメント」や「チームアグリーメント」の作成を行いました。
チームの在り方やプロジェクトの目的を定め、関わるメンバー全員でしっかりとゴールの共有を行う事により、スムーズなプロジェクト進行とフレキシブルな開発が可能になり、見事成功を収めました。

(引用元: KDDI株式会社, au.com

NTTデータのDigital CAFIS

CAFISはNTTデータが長年に渡り提供している決済サービスです。
この周辺サービスにアジャイル開発を活用したのが「Dital CAFIS」で、当該サービスを運用するに辺り組織としての柔軟性や最新テクノロジーへの追従の不足が課題でした。
これらの課題を解消する為に、アジャイルの専門チームが参画し、各種社内インフラや商品開発プロセスの見直しを実施。
最終的に決済インフラに求められる、安定運用を実現しました。

(引用元: NTTデータ

アクサ生命がアジャイルでCRM刷新

生命保険の大手企業であるアクサ生命は、業界でありがちな顧客データが複数のシステムに散財しており正確な情報を把握するのに時間がかかる問題を抱えていました。
同社はCRM(顧客関係管理)システムを刷新し、顧客一人一人の情報を一元的に参照できるようにし、2019年に本格稼働をしました。
アクサ生命はこのシステムの刷新に際して、初めて本格的にアジャイル開発を取り入れました。

(引用元: 日経クロステック

まとめ

アジャイル開発は、従来のウォーターフォール開発と比較すると、サービスインまでの時間が大幅に短縮でき、仕様変更などのイレギュラーに対しても柔軟に対処できる開発手法です。
反面、単位ごとに作業を進めるため、全体像やスケジュールが把握しにくなどのデメリットもあります。
アジャイル開発は近年の流行にマッチした開発手法であるものの、全てのプロジェクトに適している分けではありません。
プロジェクトの性質によっては、従来のウォーターフォール開発を採用、場合によっては両者を併用することも必要でしょう。
しっかりとプロジェクトの目的や性質を見極め、適切な開発手法を採用する事が重要です。

合わせて読みたい