システム開発の工程は、要件定義から設計・開発とテスト・リリースと保守運用まで、大きく4つの段階に分かれます。本記事では、この基本的な流れをウォーターフォールとアジャイルという2つの開発モデルの違いとあわせて整理し、非エンジニアの発注者にも伝わる説明の組み立て方まで解説します。独立エンジニアやコンサルタントとして案件に関わる方が、工程を一から聞かれたときに迷わず答えられる状態を目指す内容です。
システム開発とは?開発工程の基本をわかりやすく解説
「開発工程を一から説明してほしい」と言われて困った経験
システム開発の工程を一から聞かれて答えに詰まるのは、工程の名称と、その工程で何が決まるかという役割の説明を分けて整理できていないことが主な原因です。
独立エンジニアやコンサルタントとして企業の案件に関わっていると、発注者側の担当者から「そもそもシステム開発ってどんな流れで進むんですか」と聞かれる場面は少なくありません。エンジニア同士であれば「要件定義」「基本設計」といった言葉だけで通じますが、情報システム部門以外の担当者にとっては、それぞれの工程で何が決まり、何が成果物になるのかが見えにくいのが実情です。
発注者・非エンジニアに伝わりにくい理由
発注者に伝わりにくいのは、工程名が抽象的で、成果物や意思決定のタイミングが結びついていないためです。
「要件定義」という言葉自体は説明できても、「そこで何を決めれば次に進めるのか」「誰が承認するのか」が曖昧なまま話が進むと、発注者は工程の意味を実感として理解できません。工程を説明する際は、工程名だけでなく、各段階で作成する資料(成果物)と、発注者に求められる意思決定を必ずセットで伝えることが、理解を助ける第一歩になります。
システム開発とは何か
システム開発とは、業務上の課題を解決するためのシステムを、要件の整理から本稼働・保守までの一連の工程を経て作り上げる取り組み全体を指します。
単に「プログラムを書くこと」だけを指すのではなく、対象業務の現状把握、要件の整理、設計、実装、テスト、リリース後の運用・保守までを含む、比較的長い期間にわたる活動である点が特徴です。
システム開発の目的と全体像
システム開発の目的は、業務の課題や非効率を解消し、事業活動を支える仕組みを継続的に運用できる状態にすることです。
例えば、受発注業務を紙とExcelで管理していた企業が、受注データを一元管理するシステムを導入する場合を考えてみます。要件定義で「何を解決したいか」を明確にし、設計・開発を経てシステムを構築し、リリース後は運用・保守を通じて業務を支え続けます。この一連の流れ全体がシステム開発の全体像です。
ソフトウェア開発との違い
システム開発とソフトウェア開発は同じ意味で使われることも多いものの、対象範囲としては「システム開発」の方が広い概念として扱われます。
独立行政法人情報処理推進機構(IPA)が示すソフトウェアライフサイクルプロセスの国際規格には、自動車や家電のようにハードウェアとソフトウェアが一体となって機能する製品を対象とするISO/IEC/IEEE 15288と、財務・人事・販売管理システムのようにソフトウェアが主体となる業務システムやITサービスを対象とするISO/IEC/IEEE 12207の2つがあります(出典:IPA「国際規格SLCPの進化とそのポイント」)。国内で広く使われている共通フレーム2013は後者をベースにしており、ソフトウェアを含むシステム全体を企画から運用・保守・廃棄まで扱う枠組みとして整理されています(出典:IPA「共通フレーム2013」、2013年3月発行)。実務上は、業務システムや基幹システムの構築全体を指す場合に「システム開発」、その中のプログラム部分に焦点を当てる場合に「ソフトウェア開発」という言葉が使われる傾向がある、と理解しておくと発注者への説明がしやすくなります。
システム開発の基本工程
システム開発の基本工程は、要件定義・設計・開発(製造)とテスト・リリースと保守運用の4つの大きな段階に分かれます。
共通フレーム2013をはじめとする国内の標準的な整理では、この4段階をさらに細かく分けて、基本設計と詳細設計、単体テストと結合テストのように工程を10前後に分割して管理することもあります(出典:IPA「共通フレーム2013」)。呼び方や工程の粒度はプロジェクトによって異なりますが、それぞれの工程が担う役割自体は共通しています。まずは代表的な成果物と、発注者として確認すべきポイントを一覧で押さえておきましょう。
工程 | 主な成果物 | 発注者が確認すべきこと |
|---|---|---|
要件定義 | 要件定義書 | 実現したい業務要件と対象範囲に過不足がないか |
設計(基本設計・詳細設計) | 基本設計書・詳細設計書 | 画面・機能のイメージが実際の業務に合っているか |
開発(製造)・テスト | ソースコード・テスト仕様書・テスト結果報告書 | テストで確認された品質・不具合の状況 |
リリース・保守運用 | 運用マニュアル・保守計画書 | 本稼働後の問い合わせ・障害対応の体制 |
要件定義
要件定義は、発注者が実現したい業務内容を整理し、システムに求める機能や制約を文書として合意する工程です。
この工程で決めた内容が以降のすべての工程の土台になるため、後工程で「聞いていた話と違う」という手戻りが起きやすいのもこの段階です。要件定義書には、実現したい業務フロー、必要な機能一覧、性能やセキュリティなどの非機能要件、対象範囲外とすること(スコープ外)まで明記しておくと、認識のずれを防ぎやすくなります。
設計(基本設計・詳細設計)
設計工程では、要件定義で合意した内容を、画面や機能の構造(基本設計)と、プログラムの内部処理(詳細設計)に落とし込みます。
基本設計は発注者が確認しやすいよう画面イメージや業務フローを中心にまとめ、詳細設計はエンジニアが実装するためのデータ構造や処理ロジックを中心にまとめる、という役割分担が一般的です。発注者が主に確認するのは基本設計までで、詳細設計はより専門的な内容が中心になります。

開発(製造)・テスト
開発(製造)工程では設計内容をもとにプログラムを実装し、テスト工程でその実装が要件どおりに動作するかを確認します。
テストは、個々の機能の動作を確認する単体テスト、機能同士を連携させて確認する結合テスト、業務シナリオ全体を確認する総合テストのように、段階的に行うのが一般的です。段階を分けて確認することで、不具合が見つかった際にどの範囲を修正すればよいかを特定しやすくなります。
リリース・保守運用
リリース工程では完成したシステムを本番環境へ移行し、保守運用工程では稼働後の不具合対応や機能改善を継続的に行います。
システム開発はリリースをもって終わりではなく、本稼働後も利用者からの問い合わせ対応、障害対応、法改正や業務変化に合わせた改修が発生します。保守運用まで見据えて体制や予算を検討しておくことが、長く使えるシステムを維持するポイントです。
開発モデルによる工程の違い
同じ要件定義・設計・開発・テストという工程でも、それらをどの順番・サイクルで進めるかは開発モデルによって大きく異なります。代表的なモデルがウォーターフォールモデルとアジャイル開発です。
ウォーターフォールモデル
ウォーターフォールモデルは、要件定義から設計・開発・テストへと工程を後戻りしない前提で順番に進める開発モデルです。
開発対象全体の要件や仕様をあらかじめ確定させてから開発を進めるため、進捗やコストの管理がしやすい一方、後工程で仕様変更が必要になった場合の手戻りコストが大きくなりやすいという特徴があります(出典:IPA「情報システム・モデル取引・契約書(アジャイル開発版)」、2020年3月公開)。仕様が固まりやすい業務システムの再構築や、法令対応のように要件変更の少ないプロジェクトで多く採用されています。
アジャイル開発
アジャイル開発は、機能ごとに小さな開発サイクルを繰り返しながら、優先度の高い機能から段階的にリリースしていく開発モデルです。
IPAは、ウォーターフォール開発が全体の要件や仕様を確定してから開発するのに対し、アジャイル開発は機能の追加・変更や優先順位の変更に柔軟に対応できる手法であると説明しています(出典:IPA「情報システム・モデル取引・契約書(アジャイル開発版)」、2020年3月公開・2025年4月更新)。この柔軟性を踏まえ、同モデル契約では成果物の完成に対価を支払う請負契約ではなく、専門家としての業務遂行そのものに対価を支払う準委任契約を前提とするとされています。要件が固まりきっていないプロジェクトや、DXのように試行錯誤を伴うテーマでは、アジャイル開発が選ばれる傾向があります。

各工程で押さえるべきポイント
数ある工程の中でも、要件定義でのヒアリングとテスト工程の丁寧さが、プロジェクト全体の品質と手戻りの少なさを大きく左右します。
要件定義でのヒアリングの勘所
要件定義でのヒアリングは、発注者の「やりたいこと」だけでなく、「困っていること」の背景まで聞き取ることが勘所です。
「在庫管理を効率化したい」という要望の背景には、「特定の担当者しか在庫状況を把握できていない」「月末の締め作業に時間がかかりすぎている」といった具体的な課題が隠れていることが多くあります。この背景まで聞き取れていないと、要件定義書の項目は埋まっていても、実際の課題解決にはつながらないシステムができあがってしまうことがあります。
テスト工程の重要性
テスト工程は、不具合を本番稼働前に発見できる最後の砦であり、軽視されるとプロジェクト全体への影響が大きくなりやすい段階です。
一般に、不具合は開発が進んだ後工程で見つかるほど、原因の特定や修正にかかる手間が大きくなりやすいとされています。そのため、単体テスト・結合テスト・総合テストのように段階を分けてテスト観点を整理し、早い段階で不具合を検出できる体制を作っておくことが重要です。コンサルタントの歩み編集部が独立エンジニアへの取材から確認したところでは、中小規模の受託案件では、予算やスケジュールの制約から基本設計と詳細設計を明確に分けず一つの設計工程としてまとめたり、結合テストと総合テストを同時並行で進めたりするケースも少なくないとのことでした。工程の名称や区切り方は教科書どおりに進むとは限らないという点は、実務を伝える際に補足しておく価値があります。
独立エンジニア/コンサルが工程を伝える際の視点
独立エンジニアやコンサルタントにとって、開発工程を発注者にわかりやすく伝えられることは、専門知識と同じくらい重要なスキルです。
発注者向けにかみ砕く説明の仕方
発注者向けに工程を説明する際は、工程名を並べるのではなく、「今どの段階にいて、次に何を決める必要があるか」という時系列の見取り図として示すことが伝わりやすい説明の型です。
「今は要件定義の段階で、来月には画面イメージ(基本設計)をお見せできます。その後、実際に動くものを作って(開発・テスト)、問題がなければ本番環境に移行します」というように、現在地と次のマイルストーンをセットで伝えると、非エンジニアの担当者にも進捗の実感を持ってもらいやすくなります。

工程理解が案件を円滑に進める理由
工程を的確に説明できる独立エンジニアは、案件を仲介するエージェントや発注者との間で信頼を築きやすくなります。
独立エンジニアの案件は、発注者となる大手企業側の与信・機密保持・購買規定の都合から、フリーランス個人と直接契約せず、法人であるエージェントを挟んだ3者間契約になるケースが多いとされています。この構造では、エージェントの担当者自身が発注者へ進捗や工程を橋渡しする場面があるため、専門用語に頼らず工程を整理して伝えられるエンジニアは、担当者からの信頼を得やすく、結果として次の案件相談にもつながりやすいと考えられます。工程理解は技術力の証明であると同時に、案件を継続的に得るためのコミュニケーション基盤でもあります。
まとめ:開発工程の理解が円滑な案件推進の土台
システム開発の工程は、要件定義・設計・開発とテスト・リリースと保守運用の4段階を軸に、ウォーターフォールかアジャイルかで進め方が変わるという構造を押さえておけば、非エンジニアの発注者にも一貫して説明できます。
要件定義から設計までの作業をどのようにスケジュールに落とし込むかは、WBSの作り方 完全ガイドで具体的な手順を解説しています。開発以外の業務改善に関わる場面が多い方は、業務効率化の基本と進め方もあわせてご覧ください。工程を的確に説明できる力は独立エンジニアとしての案件の広げ方にも直結するため、案件獲得の考え方全般は独立コンサルタントの案件獲得完全ガイドで詳しく解説しています。
出典・参考情報
- 独立行政法人情報処理推進機構(IPA)「共通フレーム2013」(2026-09-07参照)
- 独立行政法人情報処理推進機構(IPA)「国際規格SLCPの進化とそのポイント」(2026-09-07参照)
- 独立行政法人情報処理推進機構(IPA)「情報システム・モデル取引・契約書(アジャイル開発版)」(2026-09-07参照)
本記事は2026年9月時点の情報に基づきます。開発プロジェクトの進め方は業種・規模・契約形態によって異なるため、個別の判断は専門家にご相談ください。
スキルシートを登録するだけ。専任エージェントが最適な案件を無料でご提案します。
無料でコンサルタント案件を探す