• facebookロゴ
  • twitterロゴ

明日のワクワクを創り出すビジネスメディア

  1. HOME
  2. IM-Press
  3. お役立ち情報
  4. アジャイル開発のメリットやデメリットから進める方法まで徹底解説

アジャイル開発のメリットやデメリットから進める方法まで徹底解説

アジャイル開発とは、開発対象のソフトウェアを機能単位に分解し、それぞれの機能単位で「計画→設計→実装→テスト」のサイクルを回しながら開発を進めていくソフトウェア開発手法の総称です。ソフトウェア開発手法の総称で、「アジャイルソフトウェア開発」ともよばれます。従来のウォーターフォール開発の欠点を改善するために生まれた手法です。

本コラムでは、アジャイル開発の概要と手法、メリット・デメリットをご紹介いたします。

 

1. アジャイル開発とは

アジャイル開発とは、開発対象のソフトウェアを機能単位に分解して、それぞれの機能単位で「計画→設計→実装→テスト」のサイクルを回しながら開発を進めていくソフトウェア開発手法の総称です。ソフトウェア開発手法の総称で、「アジャイルソフトウェア開発」ともよばれます。従来のウォーターフォール開発の欠点を改善するために生まれた手法です。

アジャイルとは?

そもそもアジャイル(agile)とは、「機敏な」などと訳され、これの名詞系である「アジリティ(agility)」は、変化を生み出し、それに対応する能力を指します。つまり、アジャイルとは、不確実な環境に対処して成果を上げるためのマインドセットだといえます。


ウォーターフォール開発とは?

ウォーターフォール開発とは、「前工程に誤りがない」ことを前提として前工程を終えてから次の工程に進む開発手法で、滝が流れ落ちるように進められることからこの名前が付いています。ソフトウェア開発だけではなく、宇宙開発や製造業などでも採用されており、1970年頃から存在する古い手法です。

進捗管理がしやすく人員配置を含め計画を立てやすいなどのメリットを持つウォーターフォール開発ですが、前工程に誤りがあった場合の手戻り工数が大きく、ユーザーなどの意見を反映できないというデメリットがあります。

一方、アジャイル開発は、その名前の通り、柔軟性が高く、迅速性に富んだ開発手法です。各機能単位における「テスト」の際に得たユーザーなどからの意見を反映させられる点もメリットです。アジャイル開発のメリットについては、「アジャイル開発のメリット」で詳しくご紹介いたします。


アジャイルソフトウェア開発宣言

アジャイル開発の元となっているのは、1990年代後半にウォーターフォール開発の欠点を改善するために顧客と連携しながらソフトウェア開発を行う、「軽量ソフトウェア開発」とよばれるいくつかの手法でした。このような開発手法に詳しいメンバーが、2001年、米国のユタ州に集まり、複数の手法の中から重要部分を統合して発表したのが、次の「アジャイルソフトウェア開発宣言」です。

プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、

価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。


 

2. アジャイル開発の手法

上でもお伝えしたように、「アジャイル開発」は開発手法の総称です。
具体的な手法としては、主に「XP(エクストリーム・プログラミング)」と「スクラム」があります。

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

XPとは、Extreme Programming(エクストリーム・プログラミング)の頭文字を取ったものです。技術者(プログラマー)を重視した開発手法で、プログラマーが2人1組のペアになり、プログラミング、コードレビュー、ユニットテストを実施します。

XPは、「コーディング」「テスト」「傾聴」「設計」の5つのプロセスで構成され、短サイクルで頻繁にリリースを行います。開発チーム内では、「コミュニケーション」「シンプル」「フィードバック」「勇気」「尊重」の5つの価値を共有しながら開発を進めます。


スクラム

スクラム開発とは、技術者が顧客と一体となって開発を行う手法です。ラグビー用語の「スクラム(Scrum)」が語源となっています。スクラム開発は、「透明性/Transparency」「検査/Inspection」「適応/Adaptation」という3つの柱に基づいて行われます。

成果物の責任者として「プロダクトオーナー」を立て、開発チームの価値と取り組みの責任者として「スクラムマスター」を立てます。そして、開発チームの中で、日々、活発なコミュニケーションを取りながら開発を進めていくのが特徴です。

スクラム開発は工程の大枠を差し、具体的には「ユーザー機能駆動開発(FDD)」で開発が行われます。

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

ユーザー機能駆動開発(FDD /Feature Driven Development)は、「顧客にとっての機能価値」を重視して進める開発方法で、顧客やエンドユーザーが求める機能ごとに設計・開発を行います。

「全体モデルの開発」「機能のリストアップ」「計画」「設計」「構築」という5つのプロセスで構成され、「計画」までを行った後は、機能ごとに「設計」「構築」を繰り返して開発を進めます。


 

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

ウォーターフォール開発のデメリットを解消する目的で生まれたアジャイル開発ですが、アジャイル開発にもメリットとデメリットがあります。

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

まずは、メリットから見ていきましょう。

開発途中の仕様変更に柔軟に対応できる

アジャイル開発は、ウォーターフォール開発のデメリットである、開発途中での仕様変更がしにくい点を改善する目的で生まれたものであり、開発途中の仕様変更を想定した方法であるため、柔軟に対応できる点が最大のメリットといえます。

当初の仕様から変更があっても、ウォーターフォール開発における仕様変更のように、金銭的コストや時間がかかることはありません。

開発スピードが速い

従来のソフトウェア開発の中心であったウォーターフォール開発では、プログラミングを行うまでに、要件定義書や詳細設計書、運用マニュアルといった多くの書類を作成する必要がありました。これは、ソフトウェア開発のプロジェクトに関わるメンバーへの情報共有を行うことで、共通認識を持つために必要なものですが、これらのドキュメント作成に多大な時間がかかっていました。

アジャイル開発では、「アジャイルソフトウェア開発宣言」にもあるように、ドキュメントよりも「動くソフトウェア」に比重を置きます。アジャイル開発では最初に仕様をかっちりと決めて開発をスタートするわけではなく、成果物として整ったドキュメントを作成する必要もないため、ドキュメント作成にかける時間を省略できます。

また、仕様変更が発生しても、ウォーターフォール開発における仕様変更のように、手戻りが発生しないため、その点でも、開発のスピードを速められます。

ユーザビリティが向上する

アジャイル開発では、開発工程で何度もリリースとテストが行われ、そのたびにクライアントやテストユーザーからの意見を取り入れるため、ソフトウェアにユーザーの意見が反映されます。その結果、よりユーザビリティの高いソフトウェアの完成が期待できます。

チームワークが向上する

アジャイル開発では、少人数の開発チームが組まれ、毎日、同じ時間に集まってミーティングを行います。ミーティングでは、開発の調整に必要な情報を全員が把握するために、進捗状況やトラブルについて報告し合います。
こうした開発プロセスを経ることから、開発チームのチームワークが向上するメリットも得られます。


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

一方、アジャイル開発にもデメリットがあります。

スケジュールのコントロールが難しい

アジャイル開発のメリットである仕様変更に対する柔軟さですが、これが逆にデメリットとなる場合もあります。というのも、何度も仕様変更が起きた結果、全体がリリースできるまでのスケジュールが伸びる可能性が高いからです。

開発チームによる日々のミーティングにより、個々の単位ではスケジュールや進捗状態の把握がしやすいですが、全体のスケジュール感や進捗状態を把握するのは困難です。
よって、予定していたリリース日に間に合わなかったり、予算オーバーとなったりする恐れがあります。

方向性がブレやすい

同様に、小さな仕様変更を繰り返すうちに、全体の方向性もブレやすくなってきます。
個々の機能単位における開発では、それぞれ、開発の目的を意識して進められますが、ソフトウェアとしての全体設計や方向性を見失いやすくなってしまう点がデメリットです。

これを避けるためには、定期的な振り返りを行う必要があります。


 

4. まとめ

アジャイル開発は、それまでソフトウェア開発の主流だったウォーターフォール開発の欠点を改善するべく生まれた開発手法です。開発スピードが早く、仕様変更に柔軟に対応でき、ユーザーニーズを取り込みやすいというメリットがある反面、全体のスケジュールやコストの管理、方向性がズレやすくなる点には注意が必要です。

アジャイル開発、ウォーターフォール開発にはそれぞれ、向くプロジェクトが異なるため、メリットを生かせるプロジェクトで採用すると良いでしょう。

NTTデータ イントラマートでは、「アジャイル」の本来の意味である「不確実な環境に対処して成果を上げる」のに最適なローコード開発ツール「Accel-Mart(アクセルマート)」を提供しております。プログラミング不要で、現場の担当者が業務や環境の変化に応じてシステム変更を手軽に行えるツールとなっております。
お問い合わせは、下記よりお気軽にご連絡ください。

 

Concept Book

ローコード開発・業務プロセスのデジタル化で豊富な実績を持つintra-martが、お客様のビジネスにどのような効果をもたらすのか、特長や導入効果など製品コンセプトを詳しくご紹介しています。

Concept Book

お困りごとがありましたら、お気軽にご相談頂ければと思います。

お役立ち資料ダウンロード

お役立ち資料