システム開発の流れとは?要件定義からリリースまでの工程と発注者がやるべきこと
初めてシステム開発を外部に依頼する方にとって、「発注してから完成するまで、実際に何が行われているのか」は見えにくいものです。全体の流れが分からないまま進めると、確認すべきタイミングを逃したり、後になって「思っていたものと違う」と気づいたりする原因になります。
本記事では、システム開発の代表的な工程を順を追って解説し、それぞれの工程で発注者が何をすべきかを整理します。
1. システム開発の全体像
一般的なシステム開発は、次のような工程で進みます。
| 工程 | 主な内容 | 発注者の関わり |
|---|---|---|
| 1. 企画・要件定義 | 目的や必要な機能・条件を決める | 非常に大きい |
| 2. 基本設計 | 画面・帳票・データなど「利用者から見える部分」を設計する | 大きい |
| 3. 詳細設計 | プログラムの内部構造を設計する | 小さい |
| 4. 開発(実装) | 設計にもとづいてプログラムを作る | 小さい(進捗確認が中心) |
| 5. テスト | 不具合がないか、要件どおり動くかを検証する | 受入テストで大きい |
| 6. リリース(本番稼働) | 本番環境へ導入し、利用を開始する | 大きい |
| 7. 運用・保守 | 安定稼働の維持、不具合対応、改善を行う | 継続的 |
表から分かるとおり、発注者の関わりが特に大きいのは開発の「最初」と「最後」です。この2つの山を意識しておくことが、プロジェクトを成功させる第一歩になります。
2. 工程ごとの内容と発注者がやるべきこと
ここからは、各工程で行われることと、発注者が意識すべきポイントを順番に見ていきましょう。
「何のために、どのようなシステムを作るのか」を決める工程です。業務の課題を洗い出し、必要な機能(機能要件)と、性能・セキュリティ・使用環境などの条件(非機能要件)を定義します。成果物は「要件定義書」としてまとめられるのが一般的です。
✅ 発注者がやるべきこと
- 現状の業務の流れと課題を開発会社に説明する
- 実際にシステムを使う現場担当者の意見を集める
- 機能の優先順位を決め、「今回はやらないこと」を明確にする
- 要件定義書の内容を読み込み、認識のずれがないか確認する
要件定義の抜け漏れは、後工程になるほど修正のコストが大きくなります。システム開発の失敗原因として最も多く挙げられるのもこの工程です。時間をかけてでも丁寧に進める価値があります。
要件定義の内容をもとに、画面のレイアウトや項目、操作の流れ、出力する帳票、扱うデータの構造などを決めていきます。利用者から見える部分を具体化する工程のため、「外部設計」と呼ばれることもあります。
✅ 発注者がやるべきこと
- 画面イメージや操作の流れを確認し、実際の業務で使えるかを想像する
- 入力項目や表示項目に過不足がないかをチェックする
- 必要に応じて現場担当者にも見てもらう
基本設計の承認後に大きな変更を加えると、作り直しによる追加費用やスケジュール遅延につながりやすくなります。「なんとなくOK」ではなく、納得したうえで承認することが大切です。
基本設計で決めた内容を実現するために、プログラムの内部構造や処理の詳細を設計します。技術的な内容が中心となるため、発注者が細部まで確認する必要は通常ありません。
ただし、この段階で開発会社から仕様に関する質問が来ることがあります。回答が遅れると全体の遅延につながるため、迅速な回答を心がけましょう。
設計書にもとづき、エンジニアが実際にプログラムを作成する工程です。期間としては最も長くなることが多い工程です。
✅ 発注者がやるべきこと
- 定例会議などで進捗状況と課題を確認する
- 途中段階の画面や機能を見せてもらえる場合は、積極的に確認する
- 仕様変更の要望が出た場合は、影響(費用・期間)を確認してから判断する
開発中に「やっぱりこの機能も欲しい」と思うことはよくあります。変更自体が悪いわけではありませんが、その都度の影響を把握せずに積み重ねると、予算やスケジュールが大きく膨らみます。
テストはいくつかの段階に分かれています。
- 単体テスト:プログラムの部品ごとに正しく動くかを確認する
- 結合テスト:部品を組み合わせたときに正しく連携するかを確認する
- 総合テスト(システムテスト):システム全体が要件どおりに動くかを確認する
- 受入テスト:発注者がシステムを実際に操作し、業務で使えるかを確認する
このうち受入テストは、発注者が主体となって行う重要な工程です。実際の業務データや業務シナリオに近い形で操作し、要件を満たしているかを確かめます。受入テストで合格とした後に見つかった問題は、対応の扱いが契約内容によって変わる場合もあるため、十分な時間と人員を確保しておきましょう。
テストを終えたシステムを本番環境に導入し、利用を開始します。既存システムからのデータ移行や、利用者への操作説明もこのタイミングで行われます。
✅ 発注者がやるべきこと
- リリース日と切り替え手順を社内に周知する
- 利用者向けの操作説明会やマニュアルを準備する
- 移行データの内容を確認する
- トラブル発生時の連絡体制を開発会社と取り決めておく
システムはリリースして終わりではありません。稼働後の不具合対応、OSやライブラリの更新への対応、業務の変化に合わせた機能改善など、継続的な運用・保守が必要です。保守の範囲や費用は、開発の契約とは別に取り決めるのが一般的なので、リリース前に内容を確認しておきましょう。
3. 工程の区切りでは「承認」を意識する
ウォーターフォール型の開発では、各工程の終わりに成果物(要件定義書、基本設計書など)を発注者が確認し、承認してから次の工程に進むのが一般的です。この承認は、単なる手続きではありません。「この内容で次に進んでよい」という発注者の意思表示であり、後から変更する場合は追加の費用や期間が必要になる根拠にもなります。
承認の際には、次の点を意識するとよいでしょう。
- 分からない用語や記載があれば、そのままにせず質問する
- 自分だけで判断せず、必要な関係者にも目を通してもらう
- 確認に必要な期間を、あらかじめスケジュールに組み込んでおく
「専門的なことは分からないから」と中身を見ずに承認してしまうのが、最も避けたいパターンです。開発会社には、発注者が理解できる言葉で説明してもらうよう遠慮なく依頼しましょう。
4. ウォーターフォールとアジャイルの違い
ここまで紹介した「工程を順番に進める」方法はウォーターフォール型と呼ばれます。一方、機能を小さく区切って「設計・開発・テスト」を短い期間で繰り返すアジャイル型という進め方もあります。
| ウォーターフォール型 | アジャイル型 | |
|---|---|---|
| 向いているケース | 要件が明確で、変更が少ないシステム | 要件が変わりやすい、使いながら改善したいシステム |
| メリット | 全体の費用・スケジュールを事前に見通しやすい | 変更に柔軟で、早い段階から動くものを確認できる |
| 注意点 | 後半での変更に弱い | 発注者が継続的に関与する必要があり、最終的な総額が見えにくい |
どちらが優れているというものではなく、プロジェクトの性質によって向き不向きがあります。両者を組み合わせた進め方をとることもあります。開発手法は契約形態(請負契約・準委任契約)とも関係するため、あわせて検討するのがおすすめです。
5. まとめ
システム開発は、要件定義からリリース、運用・保守まで複数の工程を経て進みます。なかでも発注者の関与が成果を大きく左右するのは、次の場面です。
- 要件定義・基本設計:何を作るかを決め、認識をそろえる
- 受入テスト:業務で本当に使えるかを自らの手で確かめる
- リリース:社内の準備と周知を行う
全体の流れを知っておくだけでも、「今どの段階にいて、次に何をすべきか」を判断しやすくなります。発注者の役割については「システム開発を成功させる『発注者の役割』とは?丸投げを防ぐフェーズ別極意」でも詳しく紹介しています。
K-bridgeでは、各工程で発注者の方が迷わないよう、進め方のご説明から丁寧にサポートしています。システム開発をご検討中の方は、お気軽にご相談ください。
要件が固まっていなくても、開発相談から始められます
現状の課題を整理し、優先順位と実行ステップを一緒に明確化します。
30分・無料・オンライン可