システム開発の工程・流れをプロが解説!発注者が知っておくべきポイントを紹介

・システム開発の工程がわからず、開発会社とのコミュニケーションが不安
・システム開発の工程の中で発注者が意識するべきことはなんだろう?
・システム完成までの流れを知って先に準備をしておきたい

システム開発の工程に関する情報は少なく、書籍やインターネットもエンジニア向けで内容が難しいものばかり。

あらかじめ開発フローを押さえておけば、依頼までの準備もしやすく、開発会社とスムーズにキャッチボールができます。

そこで本記事では、システム開発のエンジニアに取材をした内容をまとめ、発注を検討している方に依頼前の準備から運用までの流れを解説します。最後まで読んで、システム開発の外注にお役立てください。

※現在、システム開発を検討している方はシステム幹事にご相談ください。御社の予算や目的をヒアリングし、最適な開発会社を紹介します。相談料・紹介料ともに完全無料です。相場の情報を知りたいなどのライトな相談だけでも大丈夫です。

【無料】プロのアドバイザーにシステム開発の相談をする

目次
  1. 1. システム開発の工程・流れの全体像
    1. 1-1. システム開発の工程を発注者が知っておくべき理由
    2. 1-2. システム開発の成果物 
    3. 1-3. システム開発の工程は手法によって異なる
  2. 2. 工程①システム開発の発注・契約まで
    1. 2-1. 依頼準備
    2. 2-2. 見積もり・提案
    3. 2-3. 発注・契約
  3. 3. 工程②システムの設計・開発・テスト
    1. 3-1. 要件定義
    2. 3-2. 設計
    3. 3-3. 開発(プログラミング)
    4. 3-4. テスト
  4. 4. 工程③システムの検収・導入・運用
    1. 4-1. 検収
    2. 4-2. 導入
    3. 4-3. 運用・保守
  5. 5. 【まとめ】システム開発の工程・流れ
    1. 5-1. システム開発会社選びをプロに任せたい方へ

システム開発の工程・流れの全体像

システム開発の工程を発注者が知っておくべき理由

システム開発ライフサイクルとは

システム開発の流れを理解しておくべき理由は、「発注側がどの工程でどんな関わり方をすればいいのか」を知っておくためです。上記のシステム開発の工程は大きく「発注」「開発」「運用」の3つに分類できます。

システム開発の流れ

実は、システム開発が失敗する原因の多くは、関わり方がわからず、開発会社に開発工程を完全に委ねてしまうこと。丸投げは、要求した機能が不十分な状態で後半の工程に行ってしまったり、余裕のないスケジュールが設定されてしまったり、開発会社とコミュニケーションがうまく取れないことなどにつながります。それが、大幅な修正が必要になる、納期が大幅に遅れるなどのトラブルに発展するのです。

逆にシステム開発の工程を把握しておくと、プロジェクトの各工程でやるべきことや、開発会社とのコミュニケーションも取りやすくなるため、納期の遅れや追加費用も発生しにくくなります。事前準備もしやすいので、機能や性能面でも、より理想のシステムに近づくことができます。

システム開発の成果物 

システム開発の工程

成果物

企画・見積もり

見積もり・提案書

要件定義

要件定義書

基本設計

基本設計書

詳細設計

詳細設計書

単体テスト

単体テスト実施報告書

結合テスト

結合テスト実施報告書

総合テスト

総合テスト実施報告書

受け入れテスト

検収書

システム開発では各工程ごとに、上のような書類・ドキュメントが作成されます。これらの書類をもとに希望どおりのシステムが開発されるか判断し、開発会社にフィードバックを行います。事前に把握しておくと、開発会社とのコミュニケーションが取りやすくなります

この記事では、「こんな成果物をもらうんだ」とだけ知ってもらえれば十分です。詳細は下記の記事を参考にしてください。

関連記事システム開発の成果物・ドキュメント|知っておきたい開発工程ごとの成果物を一覧で紹介!

システム開発の工程は手法によって異なる

システム開発の工程・流れと一口に言っても、実は開発する手法によって異なります。ここがシステム開発の厄介なところ。開発の手法は大きく分けると下の表の4種類に分かれます。

手法

内容

ウォーターフォール

決められた作業工程を一つひとつ順番に遂行していく

アジャイル

基本機能のみを開発し、発注者に使ってもらい

レビューを集め、開発とテストを繰り返す手法

プロトタイプ

開発に入る前に試作品を作成して発注者が確認する手法

スパイラル

システムの開発工程をサブシステム(機能)ごとに分割し

重要な機能から開発していく

本記事で取り扱う開発工程はウォーターフォール型

ウォーターフォール型

4つの開発手法のうち、最もオーソドックスな開発手法が「ウォーターフォール型」です。
水が上流から下流に流れるように、決められた作業工程を一つひとつ順番に進めていくシステム開発手法です。

左上の要件定義から始まり、開発が終われば次にテストを行います。順番通りに工程が進んでいくので、システム開発の流れを理解するには最適。本記事では、ウォーターフォール型の開発手法をもとに解説していきます。

なお、最近、主流となっている「アジャイル開発」は、下の図のように、小さい開発を繰り返してシステムを開発します。

アジャイル開発

ただし、システム開発の流れを理解するにはアジャイル開発は少し複雑なので、この記事では上の図解に留めておきます。発注したシステム開発がアジャイル開発になった場合は、下記の記事を参考にしてください。

関連記事アジャイル開発とは?メリット・デメリット、発注側の注意点を解説

工程①システム開発の発注・契約まで

システム開発の発注まで

ここからシステム開発の工程を詳しく説明していきます。
まずは、開発会社に発注するまでの流れを3つの項目に分けました。発注する側の作業が大部分を占めるので、しっかり理解しておきましょう。

依頼準備

システム開発を外注する際、まずは依頼するための準備から始まります。システム開発の成否を左右する重要な工程なので、分量多めで説明します。まずは下記の3点を決めてください。

・現状の課題(何に困っているのか)
・理想の状態(どうなれば解決するのか)
・システム機能(どんな機能があれば良いのか)

上記3つからどんなシステムが欲しいのかを決定し、企画書を作ります。その際は、IT部門だけではなく、実際にシステムを利用する関係部署の担当者に業務上の課題や要望を聞いておくといいでしょう。課題や必要な機能・性能が明確になります。

目的・納期・予算の3つは必須

目的・予算・納期の3つは必須

どんなシステムが欲しいのかを開発会社に伝えるのは当然ですが、目的・納期・予算の3つも必ず決めておきましょう。この3つを決めないと、開発会社はシステムの完成イメージがしにくく、曖昧な見積もりしか出せません。会社によって見積金額が大きく異なってしまう原因にもなります。

システム幹事に相談いただくお客様も、「準備をしないで見積もりを複数社に打診したところ、価格に倍以上の差があった...」などとおっしゃる方もいます。

良い目的の設定例

・従業員の勤怠管理の工数を1/2に削減したい
・半年で500万円の売上を出すECサイトをつくりたい

システムを作る目的は、開発会社側が必要な機能や仕様などを決めるのに重要な項目です。できれば上記のように数字で表せるような具体的な目的を設定してください。

◆目的とあわせて考えておきたい項目

機能性

どのような機能を求めているか?

操作性

システムを操作する人は誰か?求めている操作性とは?

保守性

セキュリティ面は?トラブルが発生した場合の対処法は?

移植性

システムを別の環境へ移行する予定はあるのか?

良い納期の設定例

・2022年7月1日にポータルサイトをオープンしたい
・2022年7月中に会計システムの納品希望

目的と同じく納期も具体的に決めましょう。開発したシステムは、実際に使用してみて修正が発生する場合もあるので、ある程度は余裕を持った納期を設定してください。

システム幹事に相談してくださるお客様の中にも「なるべく早く」「いつでも良い」「決まってない」などアバウトな納期の方が多いですが、少なくとも「4〜6月の間で」などの範囲は決めておいてください。期限を線引きしないと、開発会社の都合でスケジュール設計され、修正や追加作業が発生した場合に遅延につながります。

「〇〇のイベントで使用する」「商品やサービスのリリースまでに必要」など、どうしても期日を延ばせない事情がある場合も、開発会社に伝えておきましょう。

良い予算の設定例

・200万円までに納めたい
・予算上限300万円

予算もできるだけ具体的に設定してください。開発会社は予算の上限に近い金額で見積書を出す場合がほとんどです。具体的な予算を提示し、その中で最大限対応できる提案内容にしてもらうことがポイントです。

逆に、良くないのは「なるべく安く済ませたい」や「予算をいくらに設定すればいいのか開発会社に聞いてみよう!」といったケース。予算が曖昧だと開発会社の提案もブレてしまい、仕様や機能もボヤけてしまいます。

さらにシステム開発は追加料金が発生する場合があるので、あらかじめ上限を決めておかないと開発費が予想外に高騰する可能性もあります。

また、開発会社に「保守・運用」も依頼する可能性がある場合は、その予算も合わせて検討・見積もり依頼しましょう。依頼準備に特化した記事もありますので、以下も参考にしてください。

関連記事システム開発の依頼準備8点!プロジェクトを成功に導く外注ガイド

RFP(提案依頼書)も作ろう

RFPのサンプル

社内向けの企画書と同時に、開発会社に提出するRFP(提案依頼書)も作りましょう。
RFPは、システム開発会社から見積もりやシステムの提案をしてもらうための依頼書。「こんなシステムを開発したいので、この予算で作れますか?どんなシステムにすればいいですか?」の回答を提案してもらうための書類です。

システム概要

システム開発の背景、目的、解決したい課題、得たい効果

現行のシステムとの関連、会社・組織の概要

新システムの利用者、システム開発の予算

提案依頼事項

システムの構成、性能、品質、運用条件、納期スケジュール

納品条件、定例条件、開発体制、プロジェクト管理方法

開発言語、開発手法、現行システムからの移行方法、費用見積もり

提案手続き

提案依頼書に対する窓口、提供資料、選定方法

開発の条件

開発期間、作業場所、開発に使うコンピュータ機器、資料

契約事項

支払い条件、保証年数、機密事項、著作権

上の表がシステム開発のRFPに盛り込んで欲しい項目。
数が多く少し面倒臭いですが、社内向けの企画書と重なる部分も多く、1つ1つは数行程度、簡潔に書くだけで大丈夫です。

RFPのサンプル④

先にRFPを作成しておくと、開発会社も正確な見積もりを出しやすくなります。RFPに記載すべき項目は下記の記事を参考にしてください。

関連記事RFPとは?システム開発の質を高める提案依頼書の作り方を解説!【サンプルあり】

以上の項目を決めたうえで、開発会社に見積もり依頼を出します。ただし、どの開発会社に見積もりを依頼したらいいか分からない方も多いでしょう。その場合は、開発会社選びのポイントを解説した、下記の記事を参考にしてください。

関連記事システム開発会社の選び方7ポイント!依頼の準備と注意点も解説

もしくは自社で開発会社を探す時間もない、早くおすすめの会社を紹介してほしい方はシステム幹事にご相談ください。相談料・紹介料も無料です。また、紹介した開発会社に必ず発注する必要もありません。

【無料】おすすめのシステム開発会社を紹介してもらう

見積もり・提案

株式会社Lbose様より提供いただいたシステム開発の見積書

株式会社Lbose様より提供いただいたシステム開発の見積書です。

依頼準備をしたあとは、開発会社に見積もりを依頼します。面談を行った上で、システム開発にかかる費用の概算を出してもらいます。

見積もりを依頼する際に、特に意識して欲しいポイントは以下の3つ。

・分からない項目は必ず質問する
・金額だけで発注先を選定しない
・相見積もりは3〜4社が理想

まず、分からない項目は必ず質問すること。相手はプロだからと丸投げすると「その機能は必要なかった」「余計な経費がかかってしまった」「他の部分に予算をかければ良かった」と後悔の原因になります。

そして、見積もり・提案の失敗で最も多い要因が、「見積金額の安さ」だけで発注先を決めてしまうこと。できるだけ安い金額で発注したいのは人情ですが、安く作ることが目的化すると失敗につながります。金額ではなく、自分たちの目的が達成できそうかで判断してください

さらに、依頼する開発会社を選ぶときは3〜4社程度がおすすめです。特徴の違いを比較しやすく、社内で稟議を通す際もプレゼンしやすいでしょう。

逆に一括見積もりを依頼すると会社が多すぎて比較するのが大変です。どの会社も同じに見え、結局どの会社が良いか選びきれず、価格だけで決めて失敗してしまうパターンが多いです。

システム開発は2段階見積もりが多い

システム開発は2段階見積もりが多い

現在、システム開発では見積もりを2回に分ける「2段階見積もり」をする会社が増えています。本来、正確な金額は設計図を使ってみないと出せませんが、発注側からすると契約前の段階で概算の見積もりだけでも欲しいところ。

そのため、開発会社は、発注側に「どんなシステムを作りたいのか?」とヒアリングして、一度ザックリした見積書を作ります。その後、設計図を作った段階で正確な見積金額を再び出すのです。

開発会社が2段階見積もりを行う場合、最初に出される見積金額が必ずしも正確ではなく、ある程度の誤差が生まれる可能性があると覚えておいてください。

このように、システム開発の見積もりは、かなり複雑です。本記事だけでは説明しきれない注意点などもまとめた、下記の記事もご覧ください。

関連記事システム開発の見積書の見方をプロが解説!依頼する際の注意点も紹介!

システム開発の費用・相場については、こちらで詳しく解説しています。

関連記事システム開発の費用・相場を徹底解説!料金を抑えるコツも紹介!

発注・契約

 

請負契約

準委任契約(SES)

概要

契約時の見積もり金額を支払う

開発にかかった時間に対して支払う

責任

成果物(システム)の完成

業務の遂行(労働力のみ提供)

開発会社の見積書を比較・検討したら、どこに依頼するかを決定して正式に発注します。その際、契約書を締結しますが、システム開発の契約書は相当ややこしい内容です。発注者の7割ほどが契約書の内容を理解しないまま契約書を結ぶと言われており、あとからトラブルにつながるケースも少なくありません。

システム開発の契約

例えば、システムを開発する前に設計図を作りますが、そこまでは開発にかかった時間に対して支払う準委任契約がほとんど。設計図を作ってみて「やっぱり開発はやめておこう」と思っても、それまでの労働時間に対しては対価を支払う形になります。

それ以降の開発に進めば請負契約となり、開発会社側はシステムを完成させる責任があります。このように、システム開発の契約は複雑なので下記の記事もチェックしておいてください。契約が原因で起きるトラブルを避けるための、注意点・チェックポイントを詳しく解説しています。

関連記事システム開発の契約とは?契約形態・契約書の注意点を解説!

工程②システムの設計・開発・テスト

システム開発の完成まで

続いては、開発会社に依頼をしたあと、システムが完成するまでの流れを説明します。ここからは主に開発会社主導の工程になります。特に最初の「要件定義」が重要ですので、重点的に意識してください。

要件定義

要件定義

開発会社に発注したあと、システムの設計図を作る前にまず行うのが「要件定義」です。要件定義とは、発注者の希望を叶えるために必要な機能などを明確にする作業。RD(Requirement Definition)の略称で呼ばれることもあり、下のような項目を決めます。

・必要な機能
・用いられる技術
・スケジュール(納期)
・必要な人員(工数)

要件定義は発注側のニーズを見える化する作業であり、プロジェクトの成否を左右するもっとも重要な工程。システム開発の失敗の原因の多くも、綿密に要件定義を詰めていなかったことで起きています。必ず納得いくまで打ち合わせを重ねてください。要件定義をしっかり固めないと、以下のような問題につながります。

・開発工程で想定以上に時間がかかる
・作ったものの役に立たなかった
・無駄に高機能になって予算オーバーになる

ポイントは「ここだけは譲れない」「絶対にこの機能だけは欲しい」など、システムの核となる部分を納得するまで話し合うこと。細かい機能やスケジュールは後から修正がききます。

要件定義について詳しくはこちらの記事もご覧ください。具体的にどんなことを決めるのか、どう進めるのかなどを詳しく解説しました。

関連記事システム開発の要件定義とは?受託開発における重要性や進め方を解説!

設計


概要

基本設計

発注者が見ても分かる設計書を作成する

詳細設計

プログラマー向けの設計書を作成する

次に、要件定義もとに、システムに実装する機能や必要なデータなどを明確化する「設計」を行います。設計は2つに分かれ、発注者が主に関わるのは基本設計です。

基本設計

基本設計はBD(Basic Design)の略称でも呼ばれ、流れは以下になります。

システム基本設計の流れ

基本設計は、発注側がシステム開発開始前に関われる最後の工程のため、要件定義と並んで重要な部分。開発会社が作成した要件定義書をもとにシステムの骨組みを決定します。基本設計で行う作業内容は以下の通り。

・機能の洗い出し
・扱うデータの整理
・画面のレイアウトを決める
・必要となるデータを明確化

発注者は開発会社が作成する「基本設計書」に的確なフィードバックをすることが大切なため、下記の記事も参考に、しっかりとコミュニケーションを取りましょう。

関連記事システム開発の基本設計とは?重要性・発注者としての関わり方を解説!

詳細設計

システム詳細設計の流れ

詳細設計は、DD(Detail Design)の略称で呼ばれ、プログラマー向けの設計図を作る工程です。発注側に開示されることも少ないので、内容を詳しく理解しなくても大丈夫です。基本設計のあとに、こんな作業が行われるのかと覚えておいてください。詳細を知りたい方は下記の記事を参考にしてください。

関連記事システム開発の詳細設計とは?プロジェクトの位置付け・役割をわかりやすく解説!

開発(プログラミング)

Webシステム

業務システム

モバイルアプリ

汎用系業務システム

Java

PHP

Ruby

Python

JavaScript

Java

C/C++

C#

Python

Java

JavaScript

C#

Swift

Kotlin

Java

C++

COBOL

いよいよ詳細設計書を元に、プログラマーがシステムの開発(プログラミング)をおこないます。上記のような様々な言語にもとづいてプログラムの記述(コーディング)していきます。

発注者が言語の特徴まで詳しく知っておく必要はありませんが、多少の知識があれば開発会社とコミュニケーションが取りやすい場合もあるので、下記の記事も参考にしてください。

関連記事システム開発の主要言語を解説!業務アプリケーションによく使われている言語は?

テスト

単体テスト

画面や機能ごとに、動作の検証をする

結合テスト

他の機能やシステムと連携させて、動作の検証をする

総合テスト

本運用を想定して、システム全体の動作を検証する

受け入れテスト

要求通りの機能・操作性になっているか

プログラミングが終われば、開発会社側でシステムのテストを行います。バグがないか、欠陥はないかなど主に3種類のテストを実施します。もしテスト段階でバグや欠陥が見つかった場合は、開発チームが修正して再テストを行い、実装レベルまで達しているかを確認します。

動作に問題がなければ、最後に発注側が行うのが受け入れテスト。当初の想定していた機能は満たせているか、操作して使いづらくないかなどを検証します。

V字モデル

上の図はV字モデルと呼ばれ、いま説明しているウォーターフォール型の開発をV字に置き換えたもの。要件定義で決めた内容が正しく実装されているかは、隣の総合テストで検証します。詳細設計の内容を検証するのは単体テストになります。

上記のテスト工程に発注者が関わることは少ないですが、詳しい内容を知りたい方は下記の記事を参考にしてください。

関連記事システム開発のテスト工程を徹底解説!システムテストと受け入れテストの違いは?

工程③システムの検収・導入・運用

システム導入から運用まで

最後に、完成したシステムを導入し、運用するまでの工程を説明します。発注側も関わる部分がほとんどなので、しっかり理解しておきましょう。

検収

検収(受入れテスト)項目

内容

機能テスト

正常に動作するか?要望通りの機能を満たしているか

ユーザビリティテスト

使い勝手に問題ないか?使用感・操作性を検証する

セキュリティテスト

サイバー攻撃に対するシステム耐性をチェック

負荷テスト

大きな負荷をかけても耐久性や性能に問題が生じないか

開発会社側のテストが終われば、発注側で検収を行います。検収とは、納品された成果物(システム)が、あらかじめ設定された仕様を満たしているか確認する検査のこと。「受入れテスト」や「ユーザーテスト」と呼ばれる場合もあります。

納品された成果物(システム)に問題がないと判断すれば、「検収書」に押印して開発会社側に渡すことで開発は完了します。

システム本体の他に下記のようなドキュメントも問題ないか確認します。

種類

内容

操作マニュアル

システムの操作方法。起動・終了方法、機能なども含む

業務マニュアル

業務の進め方。業務の中で利用するシステムの機能など

障害対応マニュアル

障害が発生した際の対応マニュアル

システム仕様書

システムの仕組みや構造が書かれたドキュメント

下記の記事を参考に、検収に備えてください。

関連記事システム開発の検収トラブルを防ぐには?検収方法・契約内容・疑問を解説!

導入

システムが完成して検収が終われば導入に入ります。開発会社側で初期設定をする場合が多く、 システムの操作マニュアルの作成、操作方法の説明会なども行います。旧システムを活用している場合はシステム移行をします。

運用・保守

運用・保守費用

システム開発は作って終わりではなく、リリース後も継続的に運用や保守をしていく必要があります。「運用」は、開発・リリースされたシステムを継続的に安定して稼働させるため、管理・監視を行うこと。「保守」は障害が発生した際に原因を究明してシステムを復旧・修正することです。

システム運用

システム監視

日常メンテナンス

保守へのエスカレーション

システム保守

障害の原因究明・復旧

システムの改善提案・実施

システム開発を外注する場合は、運用・保守の方針や予算を決めておくことも重要です。目安として、運用費はシステム開発の5%前後。300万円で開発したシステムであれば運用・保守費用は月15万円ほどかかり、1年間で180万円になります。

システム開発会社を探す際は下記のことを決めておいてください。

・システム運用も同じ開発会社に依頼するのか
・依頼するなら月々の予算はどれくらいか
・運用時に開発会社に求めるものは何か

関連記事システム運用とは?開発との関係・保守との違い・重要性・作業内容を解説!

【まとめ】システム開発の工程・流れ

以上、システム開発の流れを解説しました。システムが完成するまでは多くの工程があり、発注側が関わる部分が多いことが理解できたでしょう。流れを理解しておくと、「発注側がどの工程にどんな関わり方をすればいいのか」が明確になります。

・依頼準備
・要件定義
・基本設計

すべてを理解するのは難しいと思いますので、システム開発の成否において特に重要な上の3つを意識してください。一番やってはいけないのは、開発会社への丸投げです。決して安くない費用と膨大な時間がかかるからこそ、入念な準備とコミュニケーションをとってください。

システム開発会社選びをプロに任せたい方へ

システム開発の工程を把握したうえで、自社に合う開発会社を探すのは難しそう、何社も比較する時間がないと思われた方はシステム幹事にご相談ください。予算や目的をヒアリングし、おすすめの開発会社を紹介します。相談料・紹介料ともに完全無料です。

コンサルタントのご紹介 システム幹事 コンサルタント 岩田真 岩田 専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。

また、紹介した会社は必ずしも発注する必要はありません。まずは、相場の情報を知りたいなどの気軽な相談だけでも大丈夫です。お気軽にご相談ください。

【無料】おすすめのシステム開発会社を紹介してもらう