読み方 : アジャイルかいはつ

アジャイル開発 【agile software development】 アジャイルソフトウェア開発

概要

アジャイル開発(agile software development)とは、ソフトウェアを迅速に、また、状況の変化に柔軟に対応できるように開発する手法の総称。短いプロセスを何度も反復して次第に全体を組み立てていくアプローチの手法が多い。

解説 従来から主流であるウォーターフォール型などの開発プロセスでは、要件定義、設計、実装、テストなどの各工程を順番に一度だけ行なうことを前提にしているが、アジャイル開発では一度ですべてを作ろうとせずに、当初は最低限の機能だけを持ったソフトウェアの完成を目指し、各工程を迅速に進める。「アジャイル」(agile)には、俊敏な、しなやかな、素早い、などの意味がある。

とりあえず動作するソフトウェアを元に、開発チーム内あるいは顧客とチームが密接に議論を交わし、変更する箇所や追加する機能を決め、もう一度各工程を反復する。このサイクルを短い周期(多くの手法では数週間以下)で何度も繰り返すことにより徐々にソフトウェアの完成度を高めていく。

適用範囲

アジャイル開発はどのような開発プロジェクトにも適しているわけではなく、一ヵ所に集まった10人程度までの少人数の開発チームが、インターネット関連など変化の速い分野や、最初からはっきりとした要件を定義するのが難しい案件のソフトウェアを開発する際に最も適しているとされる。

一方、開発途上で要件がほとんど変化しないことが最初から分かっている場合や、大人数や大規模なプロジェクト、不具合が人命や財産に大きく関わるような社会的に重要なシステムなどの開発には適さないとされる。

代表的な開発手法

どのような条件を満たせばアジャイルであると言えるのかという厳密な定義や要件が決まっているわけではないが、2001年に著名な軽量開発手法の提唱者が集まって共同で策定した「アジャイルソフトウェア開発宣言」の主旨に適う手法が該当するとされる。

代表的な手法として、「エクストリームプログラミング」(XP:eXtreme Programming)や「Scrum」(スクラム)、「Crystal」(クリスタル)、「フィーチャ駆動型開発」(FDD:Feature Driven Development)、「適応的ソフトウェア開発」(ASD:Adaptive Software Development)、「リーンソフトウェア開発」(LSDLean Software Development)などがよく知られている。

(2020.4.16更新)

他の用語辞典による「アジャイル開発」の解説 (外部サイト)

資格試験などの「アジャイル開発」の出題履歴

▼ ITパスポート試験
令7 問39】 ソフトウェア開発モデルであるアジャイルモデルの特徴に関して,次の記述中の a,b に入れる字句の適切な組合せはどれか。アジャイルモデルとは,要件を確定してから開発を実施するウォーターフォールモデルの [ a ] する形で提唱された,[ b ] できるようにソフトウェアを開発するための手法の総称である。
令6 問40】 アジャイル開発に関する記述として、最も適切なものはどれか。
令3 問51】 アジャイル開発を実施している事例として、最も適切なものはどれか。
令2秋 問37】 開発対象のソフトウェアを、比較的短い期間で開発できる小さな機能の単位に分割しておき、各機能の開発が終了するたびにそれをリリースすることを繰り返すことで、ソフトウェアを完成させる。
令1秋 問49】 アジャイル開発の特徴として、適切なものはどれか。
平31春 問47】 アジャイル開発の特徴として、適切なものはどれか。