ウォーターフォール・モデル

ソフトウェアを開発するプロセスは、注文住宅で自宅を建てるのに似ています。
どんな家に住みたいか、立地、間取り、デザイン、水回り、外装など、
お客様である注文オーナーとそのご家族の意見を聞きながら、
一級建築士やインテリアデザイナーが詳細な設計図に落としていきます。

昔ながらの一般的なソフトウェア開発モデルを、
ウォーターフォール・モデルと呼びます。
その名のとおり、滝が上から下に落ちていくように、
上流から下流へ一方通行で流れていきます。

本来、後戻りはできないのですが、
実際は上流工程がしっかりできていなくて、
後戻りするプロジェクトも少なからず存在します。

上流から下流まで以下のような工程を経て、
ソフトウェアを開発します。

要件定義

どんなシステムをつくりたいか、コンセプトワークから、
具体的なイメージづくりまでを行います。
特に、目的、予算、期間、こだわりをはっきりさせて、
文章化しておくことが重要です。

家に例えると、家族4人で住む、都心から通勤1時間以内、
○○千万円、来年の3月までに引っ越したい、
オープンキッチンから見渡せるリビングは必須、
できれば書斎とゲスト宿泊用の和室があると良い、
災害(地震、水害)に強い、
など。

基本設計

要件定義を実現するための、基本的な設計を行います。
どんなOS,言語、DBを使うのか。
(木造、在来工法、ツーバイフォー、鉄骨造、RC構造など)
画面フロー、UI(ユーザーインターフェース)デザイン
(間取り、窓、外壁)

詳細設計

各画面や機能の詳細な設計を行います。
(エアコン・照明などの選定、取付位置、壁紙、カーテンなど)

プログラミング(狭義の開発)

詳細設計にもとづき、各画面や機能のプログラミングを行います。
(各専門家が骨組み、配線、取付などを行います)

単体テスト

開発されたプログラム単体レベルでのテストを行います。
(取り付けた器具などが正常に動くか確認します)

結合テスト

全てのプログラムがそろったところで全体の流れをテストします。
要件定義を満たしているか確認します。
(オーナーが内覧会で完成した家をチェックします、
希望通りに出来ているか、欠陥がないか)

移行/運用

本番環境にプログラムを移行して、本番運用を開始します。
関連する部署や他システムとうまく連携する必要があります。
(引っ越し、電気などの移転手続き、役所への届けなど)