とあるITエンジニアたちの備忘録

新米エンジニア5人がお送りする、ちょっとためになる話

アジャイル型開発とは

こんにちは、Burroughsです。

久しぶりの投稿です。

今回はウォーターフォール型開発と対比されることの多いアジャイル型開発とはどのようなものかについて説明したいと思います。 

アジャイル型開発とは

 アジャイル型開発とはソフトウェア開発手法の一つで、開発を行う際に短い開発期間を繰り返すようにすることでリスクを最小化しようとするものです。この繰り返される開発期間のことを反復(イテレーション)と呼びます。

 従来のウォーターフォール型開発の場合では、プロダクトはプロジェクト立ち上げ時に作成した要求仕様の通りに実装し、その仕様を全て満たした時点で開発完了という考え方でした。

 一方で、アジャイル型開発の場合では、プロジェクトを常に変化するものだと考え、イテレーションを何度も回し、プロジェクトが生み出すプロダクトを最大化することを重視します。つまり、当初計画された機能すべてを完成させることが目的ではなく、代わりに、プロダクトがリリースされる時点で、顧客を含む開発関係者が最大の価値があると思えるようなプロダクトを完成させることが目的となります。

アジャイル型開発のプロセス

 アジャイル型開発の基本的な流れは次のようになります。

  1. 顧客とエンジニアで少数精鋭の開発チームを作る。
  2. 開発期間全体をいくつもの1~4週間ほどのイテレーションに区分し、業務プロセスの優先度を考慮し、リリース計画を立てる。
  3. リリース計画に沿って、実装、テスト、修正、リリースを行う。
  4. リリース出来た機能やまだ残っている業務プロセスの範囲や優先度を検討し、リリース計画に修正を加える。

 3,4の項目を繰り返すことで開発を進めていく。

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

 メリット
  1. 優先度の高い機能から実装することができ、顧客がイテレーション毎のリリースされる動く画面や機能を試して確認することができるので、仕様の間違いや要求漏れを早い段階で発見することができる。
  2. 開発途中で業務プロセスが変更になってしまった場合でも、未着手の部分は変更された内容で実装することができ、手戻りを最小限に抑えることができる。
 デメリット
  1. イテレーション内で開発からリリースまでの工程を行うので参加メンバーは各工程作業を習熟している必要があるので、開発体制を作るのが難しい。
  2. 実際に動くソフトウェアとメンバー同士のコミュニケーションを重視し、従来の開発に比べてドキュメントをあまり作成しないので、ソフトウェア設計工程が不十分になってしまう場合がある。 

アジャイル型開発を採用する理由

 市場や開発環境の変化、知識の増加や新しいアイデアなどの様々な理由によって、仕様要求が開発期間中に変化していきます。その変化に迅速な対応をするために、アジャイル型開発が有効なのです。

 以上のことから、アジャイル型開発は以下のようなプロジェクトに向いていると言われています。

  1. 開発にクライアントが密に関わる(ex.開発メンバーとして参加できる・打ち合わせの機会を高い頻度で設けられる)ことができるプロジェクト。
  2. プロジェクト開始段階で開発要件が完全には定まっていないプロジェクト。

 

今回は以上になります。

ありがとうございました。