SALTO MEDIA
システム開発のご依頼はこちら無料で相談してみる

システム開発とは?開発の流れや費用、発注先の選定など分かりやすく解説

Article detail image
更新日:
カテゴリ:
契約形態

キャッシュレス決済、オンライン授業、オンライン予約、ECサイト、スマホアプリ、DX化、業務のIT化…。
我々の日常生活やビジネス環境は、今やITシステムと切り離して考えることができないほど密接な関係にあります。

本記事では、そんな身近だけど意外と理解していない「システム」に関して、IT初心者向けに噛み砕いて説明していきます。
記事の前半は、そもそもシステム開発とは何で、具体的に何を作るのか、どのような手順で作られるのかなどの基礎知識をまとめます。
後半部分は少し発展した内容で、実際にシステム開発を外注する際に必要な知識について触れていきます。

何となくITシステムに興味がある方からIT業界で働きたい方、システムの導入をご検討されている方まで、みなさんの参考になれば幸いです。

1

システム開発とは何か

システム開発の概要

IT業界における「システム」とは、一般に企業の業務を効率よく処理するための、コンピュータプログラム(ソフトウエア)を用いた仕組みのことです。
「システム開発」とは、そのシステムを構築していく工程を指し、システムの設計を考えたり、プログラミングをしたり、テストをしたりといった、一連の作業を総称したものと言えます。

システムの種類

ITシステムを大きく分類すると、「Web系システム」「業務系システム」「組み込み系システム」の3種類があり、それらを開発するエンジニアを「Web系エンジニア」「業務系エンジニア」「組み込み系エンジニア」と呼びます。

それでは、それぞれ具体的にどのようなシステムを指すのか説明します。

1.Web系システム
Web系システムとは、インターネットを介して利用できるWeb上のシステムです。Webブラウザで不特定多数の人が利用できるものです。

 <例>
 ・ECサイト
 ・SNS
 ・Gmail
 ・Safari
 ・コーポレートサイト
 ・その他、各種Webサイト

2.業務系システム
業務系システムは、各業界・職種・企業などの、業務の効率化や情報管理を目的としたシステムです。Web系システムとは違って、不特定多数の個人のユーザーの利用は前提にしていません。

 <例>
 ・顧客管理システム:顧客の情報や購買履歴を管理し、
           効率的な営業活動やマーケティング施策が行える
 ・人事管理システム: 社員の個人情報、給与、年金情報などを一元管理できる

3.組み込み系システム
組み込み系システムは、スマートフォン、自動車のナビ、家電機器など、あらゆるハードウェアに組み込まれているシステムです。組み込み系システムそのものを見ることはないですが、毎日無意識のうちに利用しているものです。

 <例>
 ・炊飯器の「炊飯」ボタンを押すと、○○分加熱して、▲▲分保温する
 ・エレベーターの「開」ボタンを押すと、エレベーターのドアが開く
 ・エアコンの「ON」ボタンを押すと、電源が付く

「ソフトウエア開発」と「システム開発」の違い

「ソフトウェア開発」と「システム開発」。これらの用語はたびたび耳にすることがありますが、区別が分からない方も多いのではないでしょうか。

ソフトウェア開発は、単純にコンピュータを動作させるためのプログラム自体の開発を指します。
一方システム開発では、企業の課題解決や業務効率化を実現するための「仕組みそのもの」を開発します。ソフトウエアを含め、ハードウェアやネットワーク、運用・保守などの仕組み全般をデザインし、納品することになります。

実際はほぼ同義で扱われることが多いのですが、正確に言えばこのように「ソフトウエア開発」と「システム開発」は違うものを指しています。

2

システムを開発する工程

クライアントの要望に応え高品質なシステムの開発を実現するために、決まった開発工程(流れ)があります。開発工程は、クライアントの要望を聞くところから始まり、ざっくり分けても10つ程あります。
ひとつひとつの工程で具体的に何をしているのか、実際の開発の流れに沿って解説します。

要件定義

要件定義は、システム開発の基盤となる重要な工程です。システムに求める機能や性能、制約事項などを明確に洗い出し、開発方針を定めます。

例えばECサイト(通信販売サイト)を作る場合、これはほんの一部ですが、以下の内容を決めていきます。

 ・ECサイトを作る目的
 ・商品の種類や数
 ・サイトに必要な機能(お気に入りリスト、買い物かご、サイト内決済機能)

要件定義が不明確なまま設計やプログラミングのフェーズに進んでしまうと、結果的に想定と違うシステムができたり、納期が遅れてしまったりなどのトラブルが発生してしまいます。
よって、基本的に要件定義は発注者側が決めるべきことではありますが、そういったトラブルを避けるために、開発会社が要件定義のサポートをしてくれることも多いです。

基本設計/外部設計

基本設計(外部設計)では、要件定義で定義されたシステムの機能を基に、利用者にとって必要な機能の一覧化と、それぞれの機能の細かい仕様の決定などをクライアントと擦り合わせながら行っていきます。
ECサイトで言えば、「お気に入りボタンを押したら、お気に入りリストに保存される」などの機能がその例です。
要件と設計のギャップを避けるために、発注者と開発会社が意見の擦り合わせをする最後の工程です。

詳細設計/内部設計

詳細設計(内部設計)では、基本設計(外部設計)で定義されたシステムの機能を実現するために、具体的なプログラムやデータ構造を設計します。
基本設計がクライアントや利用者視点の設計であるのに対し、詳細設計はそれをエンジニアが実現するための、専門的な設計と言えるでしょう。

プログラミング

プログラミングでは、詳細設計(内部設計)を基に実際にコンピュータに指示を出していきます。指示を出すと言っても人間の言葉が通じるわけではありませんので、コンピュータが理解できる「プログラミング言語」を用いて指示を出します。プログラミング言語については後ほど解説します。

テスト

設計書を基にプログラミングが終わると、次はプログラムしたものが実際に正常に動くのかをテストします。テストには3種類ほどあります。「単体テスト」「結合テスト」「総合テスト」です。
実際は開発会社によってそれぞれのテストの範囲が違うので一外には言えませんが、ここには一般的なものをまとめておきます。

単体テスト
※略語:UT(Unit Test)
・各機能ごとのテスト
・例えば、ログインボタンを押すと指定の画面が表示されるかなどをテストする
統合テスト
※略語:IT(Integration Test)
・複数の機能を組み合わせたテスト
例えば、「購入する」機能と、「外部の決済システムにクレジットカードの照会をする」機能が上手く連携できるかなどをテストする
総合テスト
※略語:ST(System Testing)
・システム全体のテスト
・ECサイトで言えば、「服を選ぶ」⇒「購入する」⇒「決済する」といった、利用者の一連の流れを再現し、システム全体が正常に(要件定義で定めたとおりに)動作するかをテストする

リリース/システム移行

テストを繰り返し、全てのプログラムが正常に動くことが確認できたら、実際にユーザーがシステムを使えるように一般公開します。これが「リリース」です。リリースすると「開発」は終了になります。

運用・保守

システムがリリースされれば開発は終了となりますが、リリース後のメンテナンスなどのアフターフォローが発生するのが一般的です。正常にシステムが動くかを監視し続けたり、何か不具合があればシステムを改善したりします。

このように、いくつもの順序を経て、ひとつのシステムは完成します。
ここではIT知識がほとんどない方でも分かるように、なるべく簡単に説明しましたが、より詳しく知りたい方は、下記関連記事をご覧ください。各工程ごとの具体的な作業内容や、開発手法に焦点を当てて、さらに詳しく記載しております。

Loading
3

システム開発に関わる人々の役割

ひとつのシステムを開発するために、複数のエンジニアがチームとなって関わってくることを、あなたはご存知でしょうか?
エンジニアの人数はシステムの規模などによって変動しますが、4~12名程のエンジニアが役割を分けて開発を行っているケースが多いです。

本章では、それぞれの役割の名称と、どのような仕事をしているのかを見ていきます。名称は英語の略語で呼ばれることが多いので、そちらも併せて紹介します。

PDM(プロダクトマネージャー)

PDMは、担当するシステム・サービスの総合責任者です。プロジェクトの進行管理や品質管理、リスク管理などを担当します。システムを開発したら終わりではなく、企業利益と顧客満足度を最大化するために、何を改善するべきかを常に考えて行動します。

PM(プロジェクトマネージャー)

PMは開発プロジェクトの計画立案やスケジュール管理、リソースの配分など、開発プロジェクト全体の管理を行います。各メンバーの役割やタスクを適切に割り振り、プロジェクトの目標達成に向けてチームを牽引します。

PMO(プロジェクトマネジメントオフィス)

PMOは、簡単にいうとPMの業務の補佐・監視役です。品質管理や進捗状況の把握、コスト管理などを担当し、PMの意思決定を支援します。

PL(プロジェクトリーダー)

PLは、技術的な指導やチームのまとめ役を担当します。PMが立てた開発スケジュールに則って、メンバーのタスクの進捗を常に確認しながらプロジェクトを進行させます。チームメンバーと直に関わるポジションですので、信頼関係の構築は意識的に行う必要があります。

SE(システムエンジニア)

SEは、要件定義から基本設計、詳細設計まで、システム開発の上流工程を担当します。クライアントから課題や要望を聞き出し、どのようなシステムを作るかの要件を決め、仕様書を作成していきます。また、実際にシステムが完成しクライアントに納品された後も、クライアントに対してアフターフォローが必要です。

PG(プログラマー)

PGは、文字通りプログラミングを担当します。SEはクライアントと打ち合わせを行うことがありますが、PGがクライアントと顔を合わせて業務を行うことはほとんどありません。基本的には、SEが作成した設計書を見て、システムの実装やテスト(下流工程)を行います。


以上6つが、システム開発に携わっているエンジニアの主な役割です。

ただし、IT業界は業務内容の境界線が曖昧であることが多く、SEがPGの業務を兼任したりPMがPLも兼任したりなど、エンジニアひとりで複数の役割を担う場合があります。また、プロジェクトによってはPDMやPMOを置かないこともあります。

各ポジションの、より詳しい仕事内容やエンジニアとして求められるスキルについては、下記関連記事にて紹介しています。

Loading
4

開発に使用するプログラミング言語の種類

システムを開発するためには、「プログラミング言語」を使用します。プログラミング言語とは、人間がコンピューターに命令するための言語です。下記のアルファベット、数字、記号の羅列がその一例です。


 public class ABC {
  public static void main(String[] args) {
   System.out.println(10 + 5);
  }
 }


これは、コンピューターに対して、「10 + 5の計算結果を表示しなさい」と命令をしています。
実際にシステムの裏側でこのコードが入力された場合、表の画面には計算結果の「15」が表示されます。
このように、ITシステムは全て、エンジニアがプログラミング言語でコンピューターに指示を出すことで動いているのです。
そして、我々のコミュニケーション言語が日本語、英語、フランス語…とあるように、プログラミング言語にも多くの種類があります。メインどころの特徴を簡単に紹介します。

言語相性のいい分野
Java
(ジャバ)
Webアプリ、業務システム、スマホアプリなど
WindowsやMac OSなどあらゆるOS上で動作させることができ汎用性が高い
JavaScript
(ジャバスクリプト)
Webアプリ、ゲーム
Webサイトに動きを与える
PHP
(ピーエイチピー)
Webアプリ、Webサイトの構築
Python
(パイソン)
Webアプリ、人工知能、IoT
Kotlin
(コトリン)
スマホアプリ
C#
(シーシャープ)
パソコンアプリ、ゲーム
C言語
(シーゲンゴ)
組み込みシステム、基幹系システム
HTML・CSS
(エイチティーエムエル・シーエスエス)
Webページを作成するときに使う言語
プログラミング言語ではなく「マークアップ言語」と言われるものだが、
エンジニアの知識として必須

それぞれの言語には、例えば「Javaは大規模な開発に向いている」とか、反対に「PHPは小規模の開発に向いている」などといった相性や適性があります。

5

システム開発を外注した場合の費用

実際にシステム開発を外注するとなった際、どのぐらいの費用がかかるのでしょうか?
需要の多いシステムを例に、費用相場をまとめました。

システム名費用相場
口コミサイト40万~400万
コーポレートサイト20万~300万
ECサイト60万~500万
マッチングサイト100万~500万
ショッピングアプリ100万〜300万
学習アプリ100万~300万
予約管理サイト100万~1,000万
受発注管理システム100万~1,400万
物流管理システム100万~2,000万

システム開発についてあまり詳しくない方であれば、表を見て相場の幅の広さに驚くかもしれません。一般的にWeb系システムの方が業務系システムより安い傾向にあるとは言われていますが、それも一概には言えません。
なぜなら、システムの開発費用は、そのシステムの規模や機能の数、開発に関わるエンジニアの人数、1から作るか既存のパッケージをカスタマイズするか、などの条件次第で大きく変動するためです。

※より詳しく機能別の費用相場や、開発手法別の相場を知りたい方は、下記関連記事をご覧ください。

Loading

それでは開発費用はどのような要素で成り立っているのかを見てみましょう。

システム開発にかかる費用の内訳

システム開発の費用は、「エンジニアの人件費」×「諸経費」で構成されています。
また、実に8割以上がエンジニアの人件費で占められています。


●人件費
人件費は、「エンジニアの作業単価×作業時間」という式で表せます。
「エンジニアの作業単価」とは、エンジニア1人が1ヶ月間稼働したときに発生する金額のことで、一般的に「人月単価」と言われています。これはエンジニアのスキルレベル(初級なのか中級なのか上級なのか)によって変動します。日本国内のエンジニアの場合、初級で60万前後、上級で90〜150万程度が相場です。

●諸経費
諸経費とは、人件費以外でかかる費用です。
例えば、システムを利用する上で必ず使用されるサーバー代やソフトウエアの利用料がそれに該当します。

このように、どの規模のシステムを作り、それにはどれだけのサーバーが必要か、どのレベルのエンジニアが何名体制で開発を行うか、、、これらが開発費用の決めてになります。

人件費の計算や、エンジニアのレベルの費用などを知りたい方は、下記関連記事にて費用の詳細を説明しておりますので、ご覧ください。

Loading
6

システム開発を外注する際の留意点

最後に、実際にシステムを外注する際に気を付けておくべきポイントを解説します。
外注を成功させるために、以下の項目は最低限チェックしましょう。

システム開発の外注を検討する前に考えておきたいこと

1.システムの導入時期を決めておく
システムを開発する上で注意しておきたいのが、システム導入のタイミングです。
そのタイミングに合わせて、開発会社はどのレベルの何人のエンジニアを用意するかを決定しますので、事前に決めておきましょう。 また、新しいシステムを導入するとなると、データの移行や取り扱い方の浸透に時間がかかり、システムを使う現場が混乱する可能性があります。最も混乱が少ない時期にシステムの導入を検討しましょう。

2.要件定義はしっかり詰めておく
開発工程の章で少しだけ触れましたが、要件定義はシステム開発の成功がかかった重要な役割を担っています。システム導入の目的や、システムの大まかな構想は必ず事前に詰めておきましょう。
そうは言っても、知識が少なく要件が明確に決められない方もいらっしゃると思います。
株式会社SALTOでは、一緒に要件を考えながら開発を進められる「ラボ型開発」を取り入れています。話が難しくなるのでラボ型開発の説明は端折りますが、途中で仕様を変更することもできるため、まだ詳細を詰められない方にはおすすめです。

開発会社の探し方

1.インターネットでキーワード検索
これは言うまでもないと思いますが、「在庫管理システム 開発会社」など、開発したいシステムでキーワード検索をする方法です。いろいろな会社のコーポレートサイトが表示されますので、それぞれの強みを確認して外注先を選びましょう。

2.マッチングサイトを利用する
「ネット検索しても、あまりにも情報量が多すぎてよく分からない」という方は、専用のマッチングサイトを使うといいでしょう。マッチングサイトとは、システム開発会社とシステム開発を依頼したい会社を繋げるサービスです。代表的なサイトとして、「システム幹事」や「比較ビズ」があります。

3.展示会へ訪問する システム開発会社の中には、展示会へ参加し、自社サービスの紹介を行っている会社もあります。この展示会に参加することで、開発会社の関係者と直接話せるだけでなく、複数社のサービスを知ることができるので、効率がいいかもしれません。

また、おすすめのシステム開発会社を知りたい方向けに、下記記事にておすすめの会社を紹介しておりますので、ぜひこちらも参考にしてください。

Loading

開発会社の選ぶ際の留意点

1.実績を確認する
開発依頼をすると、そこまで難易度の高いシステムではない限り、どの開発会社も依頼を断ることはないでしょう。ただし、開発が可能であることと、得意であることは違います。
会社を選ぶ際は、自社が作りたいと思っているシステムと同じ、または似たようなシステムの開発実績があるかを事前に確認しましょう。実績がある会社の方が、あなたの要望を汲み取って思い通りのシステムを開発してくれるでしょう。

2.1社だけではなく複数社の見積もりから外注先を探す
見積もりは1社ではなく、必ず複数社から取るようにしましょう。
なぜ相見積もりが必要かと言うと、料金の相場と妥当性を確認するためです。 例えばあまりにも安すぎる場合は、開発を担当するであろうエンジニアの質が低い(初級レベル)なのかもしれません。
また、見積もりの内訳(項目)の記載が少ない会社は、もしかしたら何かを隠しているかもしれません。
これらは実際に開発会社に聞いてみないと分かりませんが、信頼できる会社選びのためにも相見積もりはマストです。

開発の費用を少しでも抑えたい場合

品質のよいシステムを作るために、それなりの開発費用が発生するのは当然のことです。しかし、そうは言っても初めてシステムの導入を検討する方や、小規模事業者の方にとって、開発費用は決して安くないことも事実です。なかなか一歩を踏み出せない方に、費用をおさえる2つの方法をご紹介します。

1.補助金の活用支援をしている開発会社に依頼する
システム開発に適用される補助金として、「ものづくり補助金」「IT導入補助金」「小規模事業者持続化補助金」「事業再構築補助金」の4つがあります。株式会社SALTOでは、これらの補助金の活用支援を行っています。導入するシステムの金額や事業規模によって変動はありますが、採択さえされれば費用の50~75%の補助金が支給されます。

2.オフショア開発を行っている開発会社に依頼する
オフショア開発とは、人件費の安い海外拠点に、開発の一部を委託する方法です。上手く活用できれば、開発費用を約30%も抑えることが可能です。 弊社、株式会社SALTOは、ベトナムにオフショア開発の拠点があり、優秀なベトナム人エンジニアによる、低コスト・高品質な開発を実現しています。気になる方はぜひお問い合わせください。

また、オフショア開発を利用するメリットについて更に詳しく知りたい方は、下記関連記事をご覧ください。

Loading
7

まとめ

本記事では、システムの種類や開発工程、費用、開発を外注する際の注意点まで、システム開発の基礎知識を網羅した内容を、できるだけ噛み砕いて解説しました。システム開発の全体像を掴めていただけたら幸いです。
もしシステム開発の外注をお考えの方の中でIT知識が少ない方がいましたら、開発会社に直接詳細を聞いてみることをおすすめします。システム開発は非常に奥が深いもので、とても文章ではまとめきれません。実際に専門家に話を聞いた方がいろいろとイメージがしやすいでしょう。
弊社、株式会社SALTOでは、大小問わずどのようなご相談でも承っております。
お気軽にお問い合わせください。

お問い合わせフォーム
中島 彩

この記事の著者

中島 彩

株式会社SALTOに営業職として入社後、WEBマーケティング職にキャリアチェンジ。コンテンツディレクター業務からライティング業務まで一貫して対応。自社のシステム開発のノウハウを取り入れた記事を執筆中。

©2025 SALTO Media All rights reserved.