ソフトウェア開発の現場でよくウォーターフォール開発やアジャイル開発という言葉を耳にすることありますよね。
それぞれソフトウェア開発を行う際の手法なのですが、近年では、従来のウォーターフォール開発に変わってアジャイル開発が主流になっています。
開発手法は効率的なソフトウェア開発を行う上でとても重要なのですが、それぞれの具体的な違いや特徴をしっかり説明できない方もいるでしょう。
今回はそんなウォーターフォール開発の意味や手法についてお伝えします。
ウォーターフォール開発とは
ウォーターフォール開発とは、ソフトウェア開発の現場でよく用いられる手法で、開発手順を1つずつ確認しながら工程を進めていく手法のことです。
ウォーターフォール開発は開発担当者や責任者、クライアントが各工程の成果物を共に確認し、双方の合意を得たうえで各工程を完了と見なし、ひとつひとつの工程に抜け漏れがないかどうか厳重に管理しながら進めます。
クライアントに丁寧なヒアリング調査を行い、要件定義が完了次第作られる基本設計を土台にして詳細設計のフェーズへと進んでいくため、前の工程に不備があると次の工程へ進めないのが特徴です。
ウォーターフォール開発は開発を以下の各工程に分けて進めます。
- 企画
- 要件定義
- 設計
- 実装
- テスト
各工程が終わると次の工程に進み、前の工程には戻らないという開発スタイルです。
つまり、工程が進んだあとの仕様変更などの対応が難しいという特徴があります。
ウォーターフォール開発とアジャイル開発の違い
それでは、アジャイル開発の特徴とアジャイル開発とウォーターフォール開発の違いについてお話ししましょう。
アジャイル開発とは、一般的に1週間から4週間の反復期間を設定し、「企画」「設計」「実装」「テスト」という開発工程を小さな機能開発毎に行っていきます。
このサイクルを「イテレーション」とよび、機能毎に「イテレーション」を繰り返していきます。
また、アジャイル開発は機能毎に開発が独立して完結するので、開発途中の仕様変更などの対応が柔軟に行えます。
アジャイル開発とウォーターフォール開発の違い
アジャイル開発では、開発期間中ならいつでもクライアントが仕様の変更や追加を求めることができますが、ウォーターフォール開発では、クライアントが仕様の変更や追加は開発開始前に行う必要があります。
ですが、ウォーターフォール開発は企画や案件定義の段階で仕様を完全に決めるため、開発の計画や予算の見積りが容易になります。
また、アジャイル開発ではエンジニアが全ての開発を担当しなくてはならないので、組織の人材育成にむいています。
一方、ウォーターフォール開発では各工程毎の担当者が決まっているため、必要な人材の採用が比較的容易です。
まとめ
ウォーターフォール開発とは、ソフトウェア開発の現場でよく用いられる手法で、開発手順を1つずつ確認しながら工程を進めていく手法のことです。
ウォーターフォール開発は開発を以下の各工程に分けて進めます。
- 企画
- 要件定義
- 設計
- 実装
- テスト