「システム開発をやっています」という言葉はよく聞きますが、実際にどんな流れで進むのか、詳しく説明できる人は少ないかもしれません。
この記事では、システム開発の全体像を「企画 → 要件定義 → 設計 → 開発 → テスト → リリース → 保守・運用」という流れで、初心者にもわかるように整理します。 「工程の順番」よりも 「チームで進めるときの役割分担やGit上のレビュー」 を知りたい方は、チーム開発で意識する役割分担と連携のポイント を合わせて読むと、工程とチームの両軽でシステム開発を理解できます。
この記事でわかること
- システム開発の全体的な流れ(工程の順番)
- 各工程で何をするのか
- 非エンジニアや新任PMが関わる場面
- 流れを理解しておくとなぜ役立つのか
システム開発の基本的な流れ
システム開発は、大きく以下の工程で進みます。
- 企画:どんなシステムを作るか方向性を決める
- 要件定義:何を実現するかを具体的に決める
- 設計(基本設計・詳細設計):どのように作るかを決める
- 開発(実装・コーディング):実際に作る
- テスト:正しく動くかを確認する
- リリース:本番環境に公開する
- 保守・運用:公開後の維持・改善
それぞれを順番に見ていきましょう。
身近な例で考えると
家を建てるプロセスがわかりやすい例です。
- 「どんな家に住みたいか」相談する(企画)
- 部屋数・広さ・設備を決める(要件定義)
- 設計図を書く(設計)
- 大工さんが実際に建てる(開発)
- 完成した家を点検する(テスト)
- 引き渡し・引っ越し(リリース)
- 住み始めてからのメンテナンス(保守・運用)
家を建てるときに「設計図なしでいきなり建て始める」のは危険ですよね。システム開発も同じで、各工程を順番に踏むことで品質を保てます。
各工程の詳細
企画
「こんなシステムがあれば業務が楽になる」「競合に対抗するためにこの機能が必要だ」といった背景から、開発の目的・方向性・予算・スケジュールの大まかなイメージを決めます。
非エンジニアや経営層が主導することが多い工程です。
要件定義
企画で決めた方向性をもとに、「何を作るか」を具体的に整理します。「ユーザーがログインできる」「商品を検索できる」「注文が確定したらメールが届く」など、必要な機能・条件を言語化します。
ここでの決め忘れや曖昧さが、後工程でのトラブルの原因になりやすいです。
設計(基本設計・詳細設計)
要件定義をもとに「どのように作るか」を設計します。画面のレイアウト、データの持ち方、機能の内部的な動き方などを詳細に決めます。
基本設計(外部設計)では画面や機能の概要を、詳細設計(内部設計)では内部的な処理の詳細を設計します。
開発(実装)
設計をもとにプログラマーがコードを書きます。多くの場合、複数のエンジニアが分担して進めます。
テスト
作ったものが仕様どおりに動くかを確認します。単体テスト・結合テスト・総合テスト・受け入れテストなど、複数の段階で確認します。
リリース
テストを通過したシステムを本番環境に公開します。ユーザーが実際に使える状態にする工程です。
保守・運用
リリース後も、障害対応・機能改善・セキュリティアップデートなどが続きます。システムの「生涯」の中で最も長い期間を占めることが多いです。
IT現場ではどう使われるか
PMや非エンジニアにとって、この流れを知っておくことは重要です。
- どの工程にいるかで、確認すべきことが変わります。テスト工程中に「新しい機能を追加したい」という話が出たとき、「今はテスト工程なので、追加は次フェーズで」と判断できます。
- 工程間の依存関係がわかると、「設計が終わらないと開発が始まらない」という段取りを理解できます。
- 見積もりや計画も工程単位で作ることが多いため、言葉が理解できると会議についていきやすくなります。
初心者がつまずきやすいポイント
「開発=コードを書く作業」だと思っている
実際には「企画・設計・テスト・運用」も含めた全体がシステム開発です。コーディングはその一部にすぎません。
工程が常に順番どおりに進むと思っている
ウォーターフォール型では順番どおり進みますが、アジャイル型では小さな単位で繰り返しながら進みます。現場によって進め方は異なります。
「リリース=完成」だと思っている
リリース後も保守・運用が続きます。「リリースしたら終わり」ではなく、そこからが「運用フェーズ」の始まりです。
要件定義を軽くみている
要件定義の曖昧さがそのまま開発の手戻りにつながります。非エンジニアでも「何を作るか」の議論には積極的に関わる必要があります。
関連用語
- ウォーターフォール開発:工程を順番に進める開発手法
- アジャイル開発:短いサイクルで繰り返す開発手法
- 要件定義:何を作るかを明確にする工程
- リリース:システムを本番環境に公開すること
- 保守・運用:リリース後のシステム維持・改善
次に読む関連記事
- チーム開発で意識する役割分担と連携のポイント — 工程とは別軽で「チームとして開発する」見方を押さえたい方へ
- 要件定義とは?システム開発で何を決めるのかを初心者向けに解説 — 「何を作るか」を決める工程を詳しく
- 仕様とは?ITプロジェクトで「システムの決め事」を何から決めるか — 「どう作るか」のスタート地点
さらに学ぶなら
システム開発の流れを体系的に学びたい方は、テックエイドのコースをご覧ください。