MENU
Archives

アジャイル開発とは?他の手法との違いから開発の流れ、メリット・デメリットまで

ITシステムに関係している多くの方が「アジャイル開発」という単語を聞いたことがあるのではないでしょうか?

アジャイル開発という言葉やなんとなくの意味はご存じでも、他の開発手法との違いや開発の流れ等までは知らないという方も多いのではないでしょうか。

この記事では、アジャイル開発の概要や流れ、どのようなメリットやデメリットがあるのかなどを解説していきます。システム開発を検討しているご担当者様はぜひご一読ください。

目次

アジャイル開発とは

まずは、アジャイル開発とは何なのか、これまで主流となっていたウォーターフォール開発との違いについてご説明します。

アジャイル開発の意味

アジャイル開発とは、システムやソフトウェアの開発手法のひとつで、システム開発を小さな単位に分け、実装とテストを繰り返しながらプロジェクトを進める手法です。

「アジャイル(Agile)」という言葉には「素早い」「機敏な」という意味があり、従来の開発手法に比べて開発期間が短縮されるため、アジャイルと呼ばれています。

アジャイル開発では、機能ごとに1~4週間ほどの期間をひとつのサイクルとして、

そのサイクル内で要件定義→設計→開発→テスト→リリースの工程を行います。

計画段階で決めるのは大まかな概要のみで、開発を進めていく中で生じた問題点やクライアントのニーズに適宜対応しながらプロジェクトを進めていきます。

開発途中に仕様や設計の変更があることを前提としており、開発状況をクライアントとこまめにすり合わせられるため、納品時の方向性の違いやトラブルを防ぐことができます。

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

従来のソフトウェア開発は、ウォーターフォールモデルによる開発が主流でした。

ウォーターフォール開発は、最初に全体の機能設計・計画を決定し、その計画に従って開発・実装していく手法です。

最初に必要なリソースを確保し、計画に沿ってプロジェクトを進めていくため、仕様や要求の変更があった場合に追加の費用や開発期間が必要になることがあります。

そのため、修正や変更を前提とした開発には向きません。

一般的で主流な開発方法ですが、仕様変更への適応を重視しているアジャイル開発とは正反対ともいえる手法です。

どちらにもメリット・デメリットがあるため、特徴を理解した上で最適なプロジェクトに適用する必要があります。

アジャイル開発の流れ

アジャイル開発とは何なのかをご理解いただいたところで、次は具体的な開発の流れをご紹介します。

リリース計画

まずは、大まかな仕様や要求、スケジュールを決めます。この仕様やスケジュールを取りまとめる過程のことを、リリース計画と呼びます。

ユーザーストーリーと呼ばれる発注側のシステムへの要求を、開発側が簡潔にまとめる流れが一般的です。

リリース計画はあくまで開発をすすめるにあたっての、おおよその方向性を示したもので、開発の過程でリリース計画にはなかった仕様や要求が加わることもあります。

イテレーション(スプリント)

リリース計画で大まかな仕様と要求を決めたら、イテレーションと呼ばれるサイクルを繰り返して開発を進めます。

イテレーションとは「反復」という意味で、小さな単位に分けられた開発を「計画」→「設計」→「実装」→「テスト」と行いながら、機能のリリースを繰り返します。

イテレーションは1週間~4週間ごとが一般的で、イテレーションごとに毎回機能をリリースします。

また、この後ご紹介するアジャイル開発の手法の一つである「スクラム」ではイテレーションのことを一般的に「スプリント」と呼びます。

アジャイル開発の手法

アジャイル開発と一言でいっても、その中には多くの手法が存在します。ここでは、アジャイル開発における代表的な3つの手法をご紹介します。

スクラム

スクラムとは、スプリント(=イテレーション)ごとに少人数でチームを組んで、1つ以上の成果物を仕上げる手法です。

プロジェクトのスケジュール・進捗を円滑にすることに重点を置いており、

・1つのスプリントが短期間で計画が立てやすい

・スプリント中は毎日デイリースクラムと呼ばれる短時間のミーティングで進捗を共有する

といった特徴があります。

シンプルな構成のスクラムは他の手法と組み合わせやすく、様々な開発に応用しやすいため、今回ご紹介する3種類の中でもっとも活用されています。

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

エクストリームプログラミング(Extreme Programing)とは、事前の計画よりも仕様・要件の途中変更への柔軟な対応を重視した手法です。

最初にプロジェクト全体の細かな計画は立てず短期間の開発サイクルを繰り返す中で計画を決めていくことで仕様変更が発生した際のコストを抑え、状況変化への対応力を高めています。

以下の4つの価値をチーム内で共有することが特徴です。

①コミュニケーション

 ステークホルダー間のコミュニケーションを重視する

②シンプル

 設計は必要最低限に止める

③フィードバック

 頻繁にテストを行い、フィードバックを重視する

④勇気

 仕様変更や設計変更に立ち向かう勇気を持つ

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

ユーザー機能駆動開発(Feature Driven Development)とは、顧客にとっての機能価値(feature)を重視した開発手法です。

基本的に1~3日内で実装可能なように可能な限り機能を細分化し、プランニング、設計、構築を進めます。

短期間で開発することからコミュニケーションが簡単であり、大規模開発であっても機能しやすいことが特徴です。

実際に動作する機能を開発するには、ユーザー側の業務の可視化を行うため、事前にビジネスモデリングを実施する必要があります。

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

アジャイル開発の概要や手法を知ったうえで、メリットとデメリットを見ていきましょう。まずはメリットを解説します。

開発スピードが速い

ウォーターフォール開発では、プログラミングを行うまでに要件定義書や詳細設計書、運用マニュアルといった多くのドキュメントを作成する必要がありました。

開発プロジェクトに関わるメンバーへの情報共有を行い共通認識を持つために必要なものである一方、これらのドキュメント作成に多大な時間がかかってしまいます。

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

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

要求の変化に柔軟な対応が可能

アジャイル開発は、ウォーターフォール開発のデメリットである、開発途中での仕様変更がしにくい点を改善する目的で生まれたものです。

そのため、開発途中の仕様変更を想定し、柔軟に対応できる手法である点が大きなメリットです。

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

品質と顧客満足度の向上

アジャイル開発では、開発工程で何度もリリースとテストが行われ、その度にクライアントやテストユーザーからの意見を取り入れるため、ユーザーの意見が反映されたソフトウェアが出来上がります。

また、前述しているように顧客からの要求の変化にも柔軟に対応しやすいため、要求を満たした満足度の高い機能の開発が実現できます。

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

メリットが多く見える一方で、もちろんデメリットも存在します。

デメリットも理解し、適切な開発手法の選択に生かしましょう。

全体のスケジュールを管理しにくい

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

個々の単位ではスケジュールや進捗状態の把握がしやすいですが、全体のスケジュール感や進捗状態を把握するのは困難です。

予定していたリリース日に間に合わなかったり、予算オーバーとなったりする恐れがあります。

開発の方向性がぶれやすい

計画段階では大まかにしか仕様や要件を決めないことや、要件変更や機能追加を受け入れやすいという点から、開発の方向性がぶれやすくなります。

個々の機能単位における開発では、それぞれ開発の目的を意識して進められますが、ソフトウェアとしての全体設計や方向性を見失いやすくなってしまいます。

例えば、顧客に言われるがまま仕様変更を繰り返していくと、本来の目的を見失ったものができあがってしまうということもあり得ます。

定期的な振り返りを行うことで全体の方向性を見失わないようにする必要があります。

まとめ

アジャイル開発の概要や手法、メリット・デメリットについてご紹介しました。

アジャイル開発は、開発スピードが早く、仕様変更に柔軟に対応でき、ユーザーニーズを取り込みやすいというメリットがある反面、全体のスケジュールやコストの管理、方向性がズレやすくなる点には注意が必要です。

アジャイル開発・ウォーターフォール開発それぞれに向き不向きがあるため、プロジェクトごとに適切な手法を選択しましょう!システム開発のプロジェクト立ち上げの際に、本記事がご参考になれば幸いです。

株式会社KUIXはデータ活用を中心として企業のDXのご支援を行うコンサルテーション事業から実際のシステム開発まで幅広く対応を行っております。

システム開発のご検討や、開発手法の選択にお困りの際はぜひ一度にご連絡ください!お問い合わせはこちらから

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次