QCDとは何か
作りたいシステムの全体像(自動化したい手続き)が決まったら、システム開発全体の指標を考える必要がある。システム開発を管理するためには基準が必要で、それに基づいて開発が進められるからである。
ここで、IT業界は当然ながら、製造業の業務指標となるQCDについて説明しておく。
Quality | 開発したシステムの品質 |
Cost | システム開発のするためのコスト |
Delivery | システム開発が完了する納期 |
システムの具現化
作りたいシステムの内容と、QCDに基づいたスケジュール、開発体制が整ったところで、システムを実際に開発していく。システム開発の大まかな流れは次の通りである。括弧の意味は、別名を指す。
- 要件定義(要求分析)
- 外部設計(基本設計)
- 内部設計(機能設計)
- 詳細設計(プログラム設計)
- プログラミング(製造、実装、コーディング)
- テスト
システム開発の流れにおいて、上記のような作業割りを、開発フェーズ(工程)と言う。外部、内部という言葉は、システムやシステム内の機能の関連を意味していて、外部設計では外部システムとの関連を示した設計を行う。内部設計では、開発するシステム内で関連する機能の振る舞いを設計する。 各開発フェーズの作業スコープは、開発現場(プロジェクト)によって定義が異なっている場合が多く、例えば外部設計と内部設計にフェーズを分けずに、概要設計フェーズとして管理単位をまとめる場合もある。これは、内部設計を進める上で、外部設計の設計漏れによる後戻りを、あらかじめ想定していることによるものである。
上流・下流工程という言葉があるが、大まかにいうと次のような意味である。
上流工程 | 外部設計までの工程 |
下流工程 | 内部設計からテストまでの工程 |
これらの明確かつ厳密な定義は存在しないが、システムの要件を定義する工程を上流工程と言い、システムを実際に設計し、作る工程を下流工程と言う場合が多い。 上流工程ほどシステム開発におけるリスクが大きく、システムの要件を確実に決めておくことが、プロジェクトの成功に直結する。