いまさら聞けない「ウオーターフォール」と「アジャイル」の基本的な違い:2大開発手法を比較【前編】
代表的なシステム開発手法として、ウオーターフォール型開発とアジャイル型開発がある。それぞれどのようなルーツや特徴を持つのか、基本をおさらいしよう。
上流工程から下流工程へと順番に開発を進める「ウオーターフォール」型開発と、小規模な変更を短期間のうちに繰り返す「アジャイル」型開発は、どちらも代表的なシステム開発手法だ。それぞれの基本的なメリットとデメリット、を解説する。
「ウオーターフォール」「アジャイル」の特徴をおさらい
ウオーターフォール型開発
ウオーターフォール型開発は、もともと製造業や建築業の大規模プロジェクトを正確に進めるために生まれた手法だ。ソフトウェア開発が複雑化、大規模化するに伴い、同分野でも用いられるようになった。
ウオーターフォール型開発では、開発ライフサイクルを以下のように独立したフェーズに分割する。
- 要件定義
- 機能やデザインの設計
- プログラムの構築、実装
- テストと検証
- 本番稼働
- 継続的なメンテナンス
各フェーズの要件や作業範囲を明確化するため、進捗管理や予算の見積もりがしやすいというメリットがある。一方でデメリットとしては、仕様変更がしづらい、修正が発生した際の工数やコストが大幅にかかるなどの点が挙げられる。このような課題を克服するために編み出された手法がアジャイル開発だ。
アジャイル型開発
アジャイル型開発は、ソフトウェア開発にルーツを持つ。アジャイル型開発の価値観や原則を概説した文書「Manifesto for Agile Software Development」(アジャイルソフトウェア開発宣言)には、以下の内容が含まれる。
- プロセスやツールよりも、個人との対話を優先する
- 包括的なドキュメントよりも動くソフトウェアを優先する
- 契約交渉よりも顧客との協調を優先する
- 計画に従うことよりも変化への対処を優先する
アジャイル型開発の代表的なフレームワーク(基本的な考え方や進め方)が「スクラム」だ。スクラムは、アジャイルソフトウェア開発宣言の署名者であるケン・シュウェーバー氏とジェフ・サザーランド氏が考案したもので、アジャイルの要素を以下のように取り入れている。
- 1カ月以上先の計画を立てない
- 2〜4週間ごとに、実際に機能する製品をクライアントに共有する
- 開発期間中に、クライアントに製品のフィードバックを提供するように促す
- 開発者は短期的なゴールに向けて、日々計画を調整する
開発チームは、実際に機能するソフトウェアを定期的にクライアントに提供する。クライアントのフィードバックを受けたら、その内容を次のスプリント(短く区切った開発期間)までにシステムに反映する。
変化に柔軟に対処でき、修正が発生しても手戻り工数を抑えられるというのがスクラムのメリットだ。一方で日常的に要件が変わる可能性があるため、タイムラインや予算の見積もりを立てづらいというデメリットがある。
次回以降、アジャイル型とウオーターフォール型が適するケースについて詳しく解説する。
TechTarget発 先取りITトレンド
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.