ウォーターフォール型

 システムやソフトウェア開発の手法。各工程を一方通行で進むため、上流から下流にかけて水が流れ落ちる「滝」に例えている。

 ウォーターフォール型は、1960年代には概念が提唱され、現在も各企業で取り入れられている。「ウォーターフォール」という言葉が使われるようになったのは、70年代に入ってからだといわれている。

 工程を順番に並べて開発を進めるため、開発の計画が立てやすく、進捗も管理しやすいのが特徴。前の工程が終わらなければ次に進めないため、品質を保ったまま開発を進めることができる。

 具体的には、要件定義、設計、開発、テスト、リリースの各工程で構成されることが多い。原則として、各工程で後戻りしないことを定めている。大勢の開発者が携わる大規模なシステムや、仕様がはっきりと決まっているシステムやソフトを開発する場合に向いている。

 ただ、一つの工程で問題が起こると開発が進まず、全体のスケジュールに影響することがある。事前にしっかりと要件定義をするため、突然の仕様変更への対応は難しい。個々の技術者にとってプロジェクトの全体が見えにくいことを問題点として指摘する意見もある。

 従来は、多くがウォーターフォール型で開発されていた。しかし、最近は顧客のニーズが激しく変化し、開発にスピードが求められるようになってきた。このため、より柔軟な開発をするため、ウォーターフォール型の開発からの脱却を目指す動きがある。

アジャイル型

 2000年に入ってから登場した開発手法。ウォーターフォール型と比較されることが多い。すばやさと柔軟性を重視しているのが特徴だ。

 アジャイルは、日本語で「俊敏な」といった意味がある。ウォーターフォール型の欠点を踏まえ、新たな開発手法を模索していた開発者17人が「アジャイルソフトウェア開発宣言」をしたことがきっかけで、用語として広まったといえる。

 アジャイル型の開発では、計画、設計、開発、テスト、リリースのサイクルを短期間で繰り返し、品質を高めていくのが一般的。開発のスピードアップが期待できるほか、突然の仕様変更やニーズの変化にも対応しやすい。

 情報処理推進機構が技術者を対象に実施した数年前のアンケート調査では、アジャイル型の開発をしている技術者のほうが、ウォーターフォール型の開発をしている技術者よりも仕事が好きな割合が多かった。

 モバイル端末向けのアプリケーションやウェブ関係など、これまでは比較的小規模の開発に向いているといわれていた。最近では、大規模の開発に採用される場合もある。

 試行錯誤しながら対応するため、完成品の品質が、当初の計画を下回ることがある。全体の計画を把握しにくい。そもそも完成にこぎつけられないリスクがあることを弱点として指摘する意見もある。

 国内では、ウォーターフォール型が主流だといわれているが、IoTや人工知能(AI)などの技術を迅速に活用するために、アジャイル型が広がるとの見方もある。