アジャイル開発とは?従来の開発手法との違いやメリット・デメリット

アジャイル開発とは?従来の開発手法との違いやメリット・デメリット

Michitoshi Kudo

Michitoshi Kudo

Technology事業部マネージャーの工藤です。

システムやソフトウェアを開発する手法は、顧客ニーズに応えるために数多く存在します。そんな数ある手法のなかでも近年注目されているのがアジャイル開発です。

このページでは、アジャイル開発とはそもそも何なのか、従来のウォーターフォール開発との違い、アジャイル開発のメリットデメリットについて解説します。アジャイル開発を用いてシステムやソフトウェアの開発を行いたいとお考えの企業さまは、ぜひ参考にしてください。

アジャイル開発の成功には会社選びが重要です
アジャイル開発で失敗をしないためには、実績のある会社を選ぶことが大前提。システム開発業界でも知名度が高く、安心して依頼できる会社を以下記事でまとめました!
>>アジャイル開発におすすめの会社はこちら

そもそもアジャイル開発とは?

アジャイル開発とは

アジャイルとは、日本語で「素早い」「敏捷」といった意味をもちます。

アジャイル開発はシステムやソフトウェアを開発する方法論のひとつで、開発を進めながら柔軟に計画の変更・修正ができることが特徴です。開発を進めていく上では、「スプリント(またはイテレーション)」とよばれる機能単位での企画→設計→開発→テストの工程を繰り返していくことで、システムやソフトウェアを開発していきます。

アジャイル開発のプロセスイメージ図

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

従来の開発手法としてはウォーターフォール開発が一般的でした。ウォーターフォール開発とは、要件定義から設計・開発・実装・テスト・運用までの各工程を、上流から下流へ一つずつ順番に完了させていく開発手法です。

ウォーターフォール開発ではあらかじめ要件定義を固めたうえで開発に着手するため、アジャイル開発と比較して予算や開発期間などの予測が立てやすいというメリットがあります。

一方で、隣り合った工程で多少反復が行われることはあるものの基本的には後戻りができない仕組みになっており、開発途中での仕様変更や修正などが困難であるというデメリットがあります。

ウォーターフォール開発のプロセスイメージ図

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

ここまで紹介してきたように、アジャイル開発は機能単位での開発を繰り返していく開発手法であり、柔軟に計画の変更・修正が可能です。

ここでは、そんなアジャイル開発のメリット・デメリットについて解説します。

メリット
  • 不具合が発生しても修正がしやすい
  • 開発スピードが早い
  • 顧客やユーザーの意見を反映させやすい
デメリット
  • 見積もりの見通しがつきづらい
  • コミュニケーションが複雑になりやすい

それぞれ詳しく見ていきましょう。

メリット1.不具合が発生しても修正がしやすい

アジャイル開発では、機能単位の小さな開発サイクルを繰り返すことで、システムやソフトウェアを構築します。その特性上、顧客やチームメンバーと密にコミュニケーションをとる必要があり不具合に気付きやすく、仮に不具合が生じてしまっても戻る工数が少ないというメリットがあります。

従来のウォーターフォール開発の場合は、最初に決定した設計・計画をもとに各工程を1つずつ完了させるのが基本です。この場合、トラブルの発生箇所によっては戻る工数が大きく、時間やコストが膨大に膨らんでしまうことがあります。

アジャイル開発であればこのような事態を防ぐことが可能です。

メリット2.開発スピードが早い

アジャイル開発では、必要な機能を切り分けてスプリントごとに開発を進めます。スプリントは優先度が高いものから順に進めることができるため、主要な機能だけ実装し、早期にサービスをリリースすることが可能です。

また、前述したように不具合が発生しても修正がしやすいこともあり、スピード感のある開発ができるようになります。

メリット3.顧客やユーザーの意見を反映させやすい

アジャイル開発では、開発チームと顧客やエンドユーザーが連携し、開発進捗や要件の詳細を共有することができます。そのため、顧客やエンドユーザーのフィードバックを得ながら、製品を改善しやすいのもメリットです。

「顧客や市場の反応を早期に確認したい」「変化の早い業界でのシステムを開発したい」という場合は、アジャイル開発のメリットを存分に発揮することができるでしょう。

デメリット1.コストやスケジュールの見通しがつきづらい

アジャイル開発では、見積もりをスプリントごとにおこなうのが一般的です。そのため、最終的にどれくらいコストがかかるのかの見通しがつきづらく、またいつまでに完成させる、といったスケジュールの確約も難しくなります。

デメリット2.コミュニケーションが複雑になりやすい

アジャイル開発は、コミュニケーションが複雑になりやすい、というのもデメリットとして挙げられます。顧客ニーズを理解し、それをシステムに反映させることが基本の考え方であるため、より頻繁にコミュニケーションをとる必要があります。

受託開発などであれば、要件定義を固めてあとは開発チームに任せる、といった進め方でも問題ありませんが、アジャイル開発の場合は発注者と依頼された側が同じチームとして開発を進めていくというスタンスをもつことが重要です。

アジャイル開発を実行するためのフレームワーク

アジャイル開発を実行していくためには、いくつかのフレームワークがあります。ここでは代表的な3つのフレームワークを解説します。

代表的なアジャイル開発のフレームワーク
  • スクラム
  • エクストリーム・プログラミング(XP)
  • カンバン

スクラム

アジャイル開発のなかでもっとも主流なのが、スクラムです。スクラムは、顧客ニーズを満たすためのソフトウェアやシステムを迅速に開発するためのフレームワークで、小さなスプリントを繰り返しながら開発を進めていきます。

スクラムでは、スプリントごとに少人数でチームを組み、チームごとに開発サイクルを管理します。そのため、開発チーム全員がプロジェクトに参加しやすい、またタスクを分散させて成果物を仕上げることができるといったメリットがあります。アジャイル開発のなかでも、チーム間のコミュニケーションがより大切になる手法です。

※スプリントとは
開発チームが実装する機能を開発するための短い期間(通常1〜4週間)のことを指します。

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

エクストリーム・プログラミング(以下、XP)は、柔軟なプロセスを採用することを目的としたフレームワークです。小さなスプリント(イテレーションともいいます)を繰り返しながら開発を進めるという点ではスクラムと同じですが、XPではそれを実行するための12のプラクティスまでがセットとなった、いわば方法論ということになります。

XPの12のプラクティス例(一部)
  • ペアプログラミング:2人のプログラマーが同じコンピューターで1つのタスクを共同で行うこと。
  • 持続的テスト:ソフトウェアを常にテストし、問題が発生した場合はすぐに修正すること。
  • ショートイテレーション:短い期間(通常1~2週間)で開発を進めること……etc

XPは、アジャイル開発のなかでも小規模で特に高い変更頻度があるプロジェクトに適しています。

カンバン

カンバンとは、プロジェクトのタスクや作業を可視化する手法です。ワークフローを可視化することで、アジャイル開発の遅延防止や開発チームのワークフローを効率化することに役立ちます。

プロジェクト管理ツールなどで「カンバンボード」を作成し、ワークフローを可視化した上で、開発を進めていきます。

カンバンはこれまで紹介したスクラムやXPよりも作成しやすく、小規模チームから大規模チームまで対応の幅が広い手法です。スクラムやXPなどのフレームワークに組み込んで活用される場合もあります。

アジャイル開発が向いているプロジェクトとは

アジャイル開発は高品質なソフトウェアを迅速に開発するためのアプローチであり、顧客ニーズが変化しやすいプロジェクトや、短期間での開発を目指すプロジェクトに向いているといえます。

例えば、ECサイトなどのWebサービスや、スマートフォンやWebのアプリなどです。

Webサービスの場合、開発途中に顧客のニーズが変化することが多々あり、柔軟な対応が求められます。また、似たようなサービスが拮抗しやすいこともあり、迅速に開発を進めていくことが競合他社との差別化につながるのです。

アプリの場合、一度リリースしたあとにユーザーの使いやすさなどを考慮して、アップデートを繰り返すことが前提となるので、このような場合にもアジャイル開発は有効な手法であるといえるでしょう。

一方で、アジャイル開発は基幹システムのリプレースなど、要件が明確で変更がないプロジェクトには不向きです

要件を事前に固めやすく、また品質の高さや納期遵守が重要視される場合は、従来のウォーターフォール開発のほうが相性がよいと言えます。

開発工程・進め方について

では、実際にはどのように開発を進めていくのでしょうか。ここでは、アジャイル開発の流れを、主要フレームワークであるスクラムを例にとり解説していきます。

前提知識
  • スクラムは小さな開発を繰り返して顧客ニーズに沿ったプロダクトを完成させる方法論であり、この小さな開発単位をスプリントと呼びます。
  • スプリントは通常1〜4週間の短期間で設定され、その間にプロダクトを作成します。
  • 一般的には少人数のチームを組み、スプリントに取り組んでいきます。

1.プロダクトバックログを作成する

バックログのイメージ画像出典:https://backlog.com/ja/features/
プロダクトバックログとは、顧客の要求(追加したい機能や改善点)などを記述したものです。開発を進めるうえでは、まずこのプロダクトバックログを作成し、タスクを可視化させていきます。

各タスクには優先度やタスクを達成するために必要な時間を記載し、これをもとに開発の方針を決定していきます。

2.スプリントのプランニングをする

プロダクトバックログから、スプリントで達成するべきタスクを選出し、さらに細かなタスクに落とし込んでいきます。

これをスプリクトプランニングといいます。

タスクやその目標を明確にすることで、スプリントの進捗を管理しやすくなる・納期の遅れを防ぐといった効果が期待できます。

3.スプリントごとに開発を進める

2でプランニングした内容をもとに、実際に開発をすすめていきます。

スプリントを進めていくうえでは、「デイリースクラム」と呼ばれる短時間のミーティングを毎日行い、進捗状況や問題点を共有します。

4.スプリントのレビューを行う

スプリントが終了したら、開発チーム全員でレビューを行います。

レビューでは、開発した機能や実現したタスクを確認し、次のスプリントでの作業を改善するための意見交換をするのが一般的です。

また、顧客やステークホルダーとも確認を行うことにより、開発の方針や目標についての確認をします。

5.別のスプリントに取り組む(以降繰り返し)

1つのスプリントが完了したら、作成したプロダクトバックログをもとに、次のスプリントに取り組みます。

アジャイル開発の費用

アジャイル開発の費用は、依頼する会社により様々です。参考までに、一例として紹介いたします。

  • 人件費(チーム単価):開発チームの人数や経験によって費用が異なる。費用のなかでもっとも比重を占める要素。
  • スプリント数:スプリントの数によって費用が異なる。スプリント数が少なければ費用は安くなる。
  • 使用する技術:使用する技術やツールによって費用が異なる。
  • 進捗管理、品質管理の費用:スプリントにおける定期的なレビューなどの費用がかかる。

上記のうち、開発費用を大きく左右するのは、人件費とスプリント数です。仮にこの2つの要素で開発費用を概算する場合、

開発費用 = 人件費(チーム単価) × スプリント数

ということになります。スクラムを用いたアジャイル開発の場合、チームは主に以下の三者で構成されることが多いです。スプリント数は開発するシステムによって異なります。

役割
プロダクトオーナー プロダクトの責任者。プロジェクトの方向性を決定する。
スクラムマスター 開発チームのリーダー。スムーズに作業を進められるようにチームマネジメントを行う。
プログラマー 開発チームの一員として手を動かす。

依頼時のポイント

アジャイル開発を開発会社に依頼するときは、最低でも「得意領域」「開発実績」を確認することをおすすめします。

デザインや上流工程に強みを持っていたり、戦略策定に強みを持っているなど、企業によって得意領域はさまざまです。

また、アジャイル開発と従来のウォーターフォール開発では根本的な考え方が異なるため、実績があるのかをしっかりと確認するようにしましょう。

ちなみに、「システム開発を依頼するなら大手のほうが安心」というイメージがあるかもしれませんが、大手SIerは受注案件の規模も大きくウォーターフォール開発を得意とする企業が多い傾向にあります。

柔軟な開発手法が魅力のアジャイル開発を依頼するなら、ベンチャー企業のほうがスピード感を持って対応してくれるかもしれません。

上記以外にも、アジャイル開発を依頼するときには担当者との相性も大切になります。

詳しい見極め方やおすすめの開発会社は以下の記事で紹介しているので、併せてご覧ください。

さいごに

アジャイル開発とはどんなものなのか紹介しましたが、理解は深まったでしょうか。

アジャイル開発は短期間での小さな開発を繰り返しながらプロダクトを完成させる開発手法であり、柔軟に計画の変更・修正がしやすいのが最大の特徴です。

新規事業などでニーズの変化が激しいサービスの開発を検討中であれば、アジャイル開発での開発を検討してみてください。

LIGなら
  • 戦略からデザイン、保守まで一気通貫でのサポートが可能。これによりパートナー会社の分散による不要なコミュニケーションコストを削減。
  • オフショアを利用したアジャイル開発が可能であり、ベトナム・フィリピンにいる150名以上の優秀なエンジニアからプロジェクトに合わせて最適なエンジニアをアサイン。コストを抑え且つクオリティを担保した開発を実現。
  • 複数のアジャイル開発経験から、プロジェクトに応じたスプリントプランニングを提供可能。
  • 大規模案件におけるアジャイル開発(SAFeなど)のソリューションも提供可能。
  • ブリッジSEは日本人が担当するため、日本語でのコミュニケーションが可能。

>>LIGのシステム開発の強みについて見てみる

よくある質問

スクラムとXPの違いはなんですか?

そもそもの目的が異なります。スクラムが開発サイクルを管理することを目的としたワークフレームであるのに対し、XPは柔軟なプロセスで高品質な開発をすることを目的としたフレームワークです。XPでは、12のプラクティスに沿って、高品質なソフトウェアを迅速に開発していきます。

アジャイル開発ではどのようなツールを使用しますか?

プロダクトバックログの管理・タスクや課題の追跡を行うためのツールや、コミュニケーションツールなどを活用して開発を進めていきます。

この記事のシェア数

アクセンチュア株式会社にて、スクラッチ・パッケージ開発のデリバリー部隊に所属。100人規模のSIプロジェクトを多数経験。SI経験15年以上。経験領域はアプリ、IF、データ基盤、インフラ。クライアントファーストを信条にソリューションの提案からデリバリーまで幅広く実施。

このメンバーの記事をもっと読む