【保存版】システム開発とは?エンジニアが依頼の流れや費用感を解説
- システム開発の依頼は何からすべきかわからない
- どのくらい費用がかかるのか知りたい
- 具体的な流れを確認したい
とお悩みですね。
システム開発は、目的に合わせた手法を選ぶことで円滑に経営課題を解決できます。
しかし、合わない方法を選んでしまうと費用と時間がかかり失敗してしまうこともある「大きな意思決定」です。
この記事では、システム開発の基本から依頼の仕方、費用感まで徹底的に解説していきます。
ぜひ参考にし、あなたが求めるシステム開発を適切な企業かつ適正価格で依頼してください。
システム開発の不安はジツゲン!に相談
もし、システム開発で不安なことがあるならジツゲン!にご相談ください。
月額制アジャイル開発なら、完全定額制に対応しています。
要件定義からアジャイルが本当に適切な開発手法なのかまで、適切なソリューションを提案します。
相談は無料ですので、ぜひお気軽にお問い合わせください。
システム開発とは
システム開発とは、業務をIT技術によって効率化する仕組みのことです。
システムの本来の意味は『方法や手順』。つまり、企業にとってのシステムは『業務を進めるための機械的な仕組み』とも言えるわけです。
日常業務をスムーズに処理し、より効率化することで今までより時間を有効活用できれば、新しい経営施策も進められるようになります。
システム開発は、新たなチャレンジや企業の発展のためにも検討しておきたい仕組みです。
では、より具体的なイメージを掴むため、システム開発で実現できることを一緒に確認してみましょう。
システム開発で実現できること
システム開発で、実現できることは今抱えている経営課題の解決です。
例えば、仕事の進め方やアウトプットの向上、大規模のデータを全社で共有化することによる新たな施策など、多岐に渡ります。
- 自動化による人為的ミスの削減
- 効率化による人件費削減
- データの一元化によるブラックボックスの防止
- データを活用した見える化
- 独自サービスの提供
上手く活用できれば、ペーパーレス化からコスト削減まで幅広く対応できます。さらに、新たなシステムによって独自サービスを展開できれば、市場への新規参入も狙えるでしょう。
つまり、簡単に言うとあなたが考えている経営課題は、システム開発によって解決する可能性が高いわけです。
しかし、いきなりシステム開発を依頼しようと思うと、数々の壁にぶつかり挫折してしまいます。
まずは、適切な方法かつ適正価格で依頼できるように基礎知識を一緒に見ていきましょう。
システム開発の手法
システム開発は、以下4つの代表的な手法で行われます。
それぞれメリットとデメリットがあり、目的によって手法を選ぶ必要があります。
システム開発の種類 | 安定性 | 開発スピード | 用途の傾向 |
ウォーターフォール | ◯ | △ | 全般 |
アジャイル | △ | ◯ | アプリ開発 |
スパイラルモデル | ◎ | △ | 高品質システム |
プロトタイプ開発・MVP開発 | △ | ◎ | スピード開発 |
システム開発は用途の傾向から、適切な開発の種類を選ぶ必要があります。
しかし、実際に要件定義をしてみると別の手法が目的に適していたということも意外に多いです。
もし、システム開発の手法や見積もり、ご不明点がありましたら「ジツゲン!へ気軽に相談」してください。
では、ここからシステム開発の手法4つをわかりやすく解説します。
- ウォーターフォール開発
- アジャイル開発
- スパイラルモデル
- プロトタイプ開発・MVP開発
それぞれ見ていきましょう。
ウォーターフォール開発とは
ウォーターフォール開発は、要件定義からリリースまで時系列に分けて作業を進める一般的な方法です。
各工程の段階を踏んで進めていくシステム開発のため、必ず同一方向へまっすぐ流れる滝(Waterfall)に見立てて名付けられました。
ウォーターフォール開発のメリット
ウォーターフォール開発は、各工程の完了を見届けて次のステップへと進みます。そのため、工程ごとの成果物が残るので目に見えて進捗がわかる安定性が利点です。
また、開発者が何らかのアクシデントにより、動けなくなっても工程ごとに区切られていることで、その後の引き継ぎが行いやすい柔軟性を持ちます。
ウォーターフォール開発のデメリット
ウォーターフォール開発では、1つの工程ごとに完了を確認して進めるため、遅延が出てしまうとその後の工程にも影響がでます。
また、完了した工程の仕様変更に対応できないことがあり、スケジュールも組み直しとなることも多いです。そのため、事前に打ち合わせを念入りにおこなう必要があるでしょう。
ウォーターフォール開発は、要件定義の変更が少ないシステム開発で、手堅く安定性を重視したい方におすすめの方法です。
アジャイル開発とは
アジャイル開発は、細かく実装(リリース)とテストを繰り返しておこなうスピード感のある方法です。
アジャイル(Agile)を直訳すると「素早い」という意味を持ち、ウォーターフォール型と比べると開発時間が短縮されるのが大きな特徴です。
アジャイル開発のメリット
アジャイル開発は、圧倒的なスピード感と高い仕様変更への柔軟性を持ちます。
また、前工程に戻って開発し直せるほか、優先順位の高い機能から順次実装してリリースも可能です。
そのため、ある程度の方向性についてやり取りすることで、ニーズを満たしながら素早く目的のシステムを開発できるでしょう。
アジャイル開発のデメリット
厳密なスケジュールや機能設計というよりも、ある程度の概要と目的・欲しい機能を伝えるだけで進められる方法のため、よくも悪くも方向性がズレることがあります。
また、アジャイル開発では、設計から開発し、実装してテストという流れを機能ごとにグルーピングして繰り返していることから、全体の進捗が管理しにくいです。そのため、全体状況の把握が遅れると、納期遅れに対応しにくい可能性があります。
アジャイル開発は、仕様変更に対応しやすくスピードがあるのでアプリを開発したいという人や素早く開発したい人におすすめです。
スパイラルモデルとは
スパイラルモデルとは、1つの工程が完了となるごとに要件定義の確認を行いながら進める方法です。
開発システムをいくつかに分類し、それぞれの工程に分けて検討・設計・製造・テストを繰り返して要件定義の確認をしていきます。
スパイラルモデルのメリット
スパイラルモデルは、いくつかに分類した工程ごとに試作品(プロトタイプ)を作成するので、柔軟に仕様変更へ対応できます。また試作品があることで、細かい作り込みにも対応しやすく品質の高いシステムになりやすいです。
アジャイル開発に近いですが、より慎重に精度を上げながら慎重にシステムを開発していける方法と言えます。
スパイラルモデルのデメリット
スパイラルモデルは、工程ごとに分けて進めるため、システム開発全体の進捗をコントロールしにくいです。分類するほど進捗は細かくなり、どこかで発生したビハインドが全体の進捗に影響してきたということも起きるでしょう。
また、方向性を明確にしないと試作品の段階でズレが起きてしまう可能性があるほか、分類するほど試作品の数も増えるのでコストが上がります。
スパイラルモデルは、高品質なシステムを試作品を確認しながら進めたいという人におすすめです。
プロトタイプ開発・MVP開発とは
まず、プロトタイプ開発は、試作品や原型の完成までをスピード重視で進める方法です。
MVP開発とは、実用最小限の製品(Minimum Viable Product)の略語で、低コストかつ短期間で最小限の試作品を作り上げる方法となります。
どちらも、工程ごとに分けるのではなく、試作品が完成した時点で確認し、検証と修正を繰り返して完成を目指す手法です。
プロトタイプ開発・MVP開発のメリット
プロトタイプ開発やMVP開発は、工程を分けずに試作品を作ることで最小限のコストで進められます。
また、工程ごとの確認の時間も短縮でき、市場にも素早く投入できるのも大きな利点です。
先行者利益を狙いながら、本当にニーズがあるのかテストできるなど製品のスタートに重きを置くなら使いたい方法と言えます。
プロトタイプ開発・MVP開発のデメリット
プロトタイプ開発やMVP開発は、試作品を素早く作るためスタート段階のコストが高くなりやすいです。ただし、その後は調整となるので全体で見ると費用は抑えられます。
また、プロジェクトの期間が修正などを含めていくと長引きやすく、規模の拡大をするほど大きな費用と労力を必要とすることがあります。そのため、大規模なシステムに向いていない傾向があるとも言えるでしょう。
プロトタイプ開発やMVP開発は、小~中規模のシステムで市場に素早く参入したい人におすすめです。
次は、実際に依頼するためにも手順を見て必要な用意をしておきましょう。
システム開発を依頼するときの具体的な流れ・手順
システム開発の手順は、大まかに以下の6つに分けられます。
ここでは、一般的な方法のウォーターフォール開発を例に説明していきます。
- 要件定義
- 内部設計
- プログラミング
- テスト
- 受け入れテスト
- 保守運用
それぞれ、簡単に見ていきましょう。
STEP1. 要件定義
まずは、解決したい課題に必要なシステムの概要を企画書にまとめる要件定義です。
もっと簡単に言うと、自社の要望と叶える手段を文章や図にしてまとめたものとなります。
要件定義でまとめる事柄の代表例は以下のとおりです。
- 開発の目的や背景(課題)
- 利用人数(想定)
- 稼働開始時期の目安(希望納期)
もし、可能であればサーバー環境やデータ容量などの技術的な要件を盛り込みましょう。
難しいようなら、相談して決めるというのも1つの手です。
ここで大切なのは、システム開発によってどのような課題を解決したいのかということ。
要件定義は、自社の課題を明確に伝えて解決するための重要な部分なので、しっかりと社内で話し合いまとめてみてください。
また、要件定義や開発されたいシステムの業務フロー図などは、RFP(提案依頼書)として取りまとめた上で、提出してみてください。
STEP2. 内部設計
次に、内部設計が依頼したシステム開発会社側で行われます。
内部設計では、実際にプログラミングできるようにシステム内部に特化した詳細な項目を決定していくことになります。
具体的には、以下の3つに分けられることが多いです。
機能の分割と明確化 | メンテナンスするために機能ごとでまとめ(モジュール化)し、機能を明確化するデータ処理の流れも明確化する |
物理データの設計 | ユーザーに見えないシステム内部のファイルやデータ(物理データ)のやり取りに関する設計 |
入出力の詳細な設計 | 外部設計で決めた内容を実装・表現するための設計(エラー処理・初期値・データの確認方法など) |
目に見えない内部設計をおこなうことで、必要な情報を整理・明確化して仕様の実現しやすいように準備が行われるわけです。
◎おまけ:外部設計とは?
外部設計は、実際にシステムの使用について決定する段階のこと。
要件定義で決定した機能や制約条件、やり取りで得た情報を具体的な仕様にまとめていきます。
実際にプログラム可能な状態にし、システム開発を進められる状態を作るための重要な工程です。
方式設計 | システム開発の構成や機能・全体の構造を決める |
機能設計 | システムをモジュール(グループ化)して設計する画面のレイアウトや操作方法まで細かく |
その他の設定 | セキュリティや納期・開発費用などの業務に関する設定を決める |
外部設計では、
- 外部設計書
- 画面仕様書
- 帳票仕様書
- インターフェース仕様書
などが作成され、依頼主である自社に確認が行われます。
合意をすることで初めてスタートできるものなので、必ず設計は確認しておきましょう。
STEP3. プログラミング
先ほど行った、内部・外部設計に沿って実際にシステム開発を進めていくフェーズです。
プログラミングにより、必要な機能から外観・やり取りのシステムまでトータルにすすめていくことになります。
基本的に、プログラミングに入ると細かい進捗の確認や、やり取りをおこなうことで相違がないかを確認していくことになるはずです。
依頼者は、依頼したシステム開発会社との連携を密に取り、円滑に進むよう情報の提供をしていくと良いでしょう。
STEP4. テスト
実際にプログラミングが完了すると、いよいよテストの開始です。
正常に動作するか、メニューやボタン・画面の遷移など使い勝手も含めて調べていきます。
アジャイル開発なら機能単体テストとなり、プロトタイプ開発なら試作品の動作チェックとなるでしょう。
また、テストとまとめていても
- 連携テスト
- 結合テスト
- 最終システムテスト
など、いくつかのテストに分割して進めるケースもあります。
STEP5. 受け入れテスト
受け入れテスト(UAT)とは、自社が依頼したシステムが意図や目的のとおりに動作するのか確認するチェックです。
他にも、
- 受け入れ試験
- 受け入れ検収
- 検収テスト
といった呼び名を使われることもあるので、覚えておくと良いでしょう。
受け入れテストは、サービスインである利用開始の前段階であり、欠陥が見つからないか確認する重要なフェーズです。
もし、ここで確認を怠ると、修正に多大なコストがかかるだけではなく、品質に相違があり思ったような動作が見込めない可能性があります。
テストとはいえ、しっかりと希望に沿うものなのかをチェックしましょう。
STEP6. 保守運用
ここまでたどり着けたら、いよいよサービスインと呼ばれる状態です。
基本契約・個別契約書に沿って稼働後のメンテナンスや保守・改修を「保守運用」としてシステム開発会社が行います。
なぜなら、どれだけ精密に細かく仕様を作り込み、完成品が完璧と呼べる状態であっても予期せぬ出来事は起こりうるからです。
例えば、アクセス集中によるシステムダウンや、他サービスとの新規連携、データの蓄積による動作緩慢などユーザーや自社が使うには不便が出てきてしまいます。
そのため、保守運用という契約で、何かあっても依頼できる状態かつ万全な状態を整えていく必要があるわけです。
今後に、新しくシステム開発をしたいときにも同じ会社に依頼しやすく、アップデートも依頼しやすいので覚えておきましょう。
ここまで流れを見てきましたが、失敗しないためにも実際に費用はどのくらいかかるのか確認してみてください。
システム開発の費用相場
システム開発の費用相場を、以下の3つに分けて見ていきましょう。
- 1人月の単価感
- システム開発の関係者と役割
- 実際の開発費用事例
依頼する前に、どのくらいの費用が必要となるかの参考にしてみてください。
1人月の単価感
結論から言うと、1ヶ月で人材1人、東京の平均相場では1人月なら80万円ほどとなります。
計算するときには「人材×開発期間×月費用」が請求額という単価感で考えましょう。
人月単価とは、システム開発をするときに必要な人数と、1人あたりの作業時間(月単位の単価)をかけ合わせたもの。
例えば、3名のシステム開発会社の人材を、3ヶ月で依頼すると
- 3人×3ヶ月×80万円=720万円
となります。月費用は、人材が保有する技術にもよりますが、厚生労働省によると年収は約666万円。
月収にすると55.5万円です。
エンジニアの給与に対し開発会社の利益が加わって、80-120万円程度の相場となっています。
月収が最低限の人件費として計算することで、人月単価を出すことができます。ただし、人材が保有する技術によるというところがポイントです。
システム開発の関係者と役割
先ほど、人材が保有する技術という部分がポイントと説明しました。
システム開発に必要な費用を計算するときには、以下のような人材が活動しています。
要件定義 | プロジェクトマネージャー(PM)プロジェクトリーダー(PL) |
設計 | PLシステムエンジニア(SE) |
プログラミング | SEプログラマー(PG) |
テスト | PG |
そして、システム開発では開発費用のほとんどを人件費として割り当てます。
そのため、それぞれの人材の技術によって報酬が変わるわけです。
例えば、プログラマーならフリーランスだと40万程度~、システムエンジニアになると80万円程度~となり、相場には違いがありますが、全体の幅は40~150万円ほど。
つまり、システム関係者と役割に応じて費用が変わるため、計算式は目安として使うようにするわけです。
不安なときには、要件定義のときに必ず「提案として見積もり」をもらうようにしましょう。
実際の開発費用事例
ここでは、実際にシステム開発をおこなったとして『費用の目安』はどの程度になるのか確認してみましょう。
たとえば、Webシステムを開発するなら以下のような費用が目安となります。
システムの種類 | 料金相場 | 必要な機能例 |
---|---|---|
CMS | 100〜300万円程度 | コンテンツ作成、編集、ユーザー管理、マーケティング他 |
マッチングサイト | 300〜1500万円程度 | ログイン・ログアウト、会員登録、管理画面、権限管理、メール通知、検索他 |
ポータルサイト | 200〜1000万円程度 | ログイン・ログアウト、会員登録、口コミ管理、ポイント管理、掲示板他(サイトの内容によって異なる) |
ECサイト | 200〜1000万円程度 | ショッピングカート、決済、セキュリティ、受注管理メール配信、スマートフォンアプリ他 |
SNS | 500〜3000万円程度 | ユーザー情報管理、チャット、メッセージ、フォロー、リアクション、検索、アンケート、ブログ、タイムライン、通知他 |
予約システム | 300〜500万円程度 | 予約、予約管理、顧客管理、売上管理、メール通知、CSV出力他 |
AIアプリの開発費用なら、以下の表を確認してください。
AIを使って導入した機能 | 開発費用 |
---|---|
メルカリのAI出品機能 | 約1億円 |
Netflixのレコメンド機能 | 約5億円 |
チャットボットによる自動応対機能 | 約100万円〜 |
TikTokの動画加工機能 | 約10〜50億円 |
システム開発に必要な費用はそれぞれの要件定義によっても異なります。
詳しい金額が知りたい、そもそも依頼できるのか不安な人が居られましたらお気軽にご相談ください。
依頼時の注意点
では、システム開発を依頼するときの注意点も見ておきましょう。
損をしてしまわないように、以下4つに分けて説明します。
- システム導入の目的の明確化
- システム会社と密にコミュニケーションを取る
- エンジニアの質を確認する
- 相見積もりを取る
それぞれチェックしてみてください。
システム導入の目的の明確化
1つ目の注意点が、システム導入の目的を明確化することです。
なぜなら、要件定義の時点で目的が明確化されていないと、システム開発で提示された結果に相違が生まれるからです。
例えば、自社が求めているのが書類のデータ管理なのに、求人サイトが完成した。ということになったらどうでしょうか。極端な例ですが、想像しているものと違ったというトラブルは意外に多いです。
そのため、システム開発を検討したときは担当者と密に連絡をとり、連絡に相違がないように目的を明確化しましょう。
できることなら、目的やゴールを明文化してあるとより伝わりやすいです。
システム会社と密にコミュニケーションを取る
2つ目が、システム会社と密にコミュニケーションを取るということです。
先ほど、目的を明確化するという部分でも触れましたが、スタートだけに限らず、プロジェクトの進捗や疑問点、相違点がないかなどコミュニケーションは必須。
例えば、どのくらいでプロトタイプが完成し、いつテストなのか。システム開発で起きた不具合や依頼した修正対応はどこまで進んでいるのかを確認します。
その他にも、子会社から孫会社と外注化をしているところなら、全体の進捗管理もする必要があるでしょう。
システム会社と密にコミュニケーションを取ると、システム開発のズレやビハインドを未然に防ぐきっかけにもなるので試してみてください。
エンジニアの質を確認する
3つ目は、意外に見落としやすいエンジニアの質を確認することです。
なぜなら、エンジニアは必ずしも費用=技術で成り立っていない可能性あるため。安いからといって技術があれば優秀ですし、高い費用を払っても技術が低いということがあります。
とはいえ、依頼先のエンジニアを見て回るわけにもいきません。そこで、取引実績を確認してみましょう。
顧客との付き合いがある、継続的に依頼を受けているなら「実績と信頼を勝ち得ている」と言えます。つまり、質が良いエンジニアがいる可能性が高いわけです。
コミュニケーションを取るときに、提案をしてもらえるかも判断基準にできます。
こうしたエンジニアの質を考慮できれば、より高品質なシステム開発を依頼できるはずです。
相見積もりを取る
最後の注意点が、相見積もりを複数のシステム開発会社から取ることです。
良いシステムのためには、質の良い会社に依頼したいと考えます。しかし、費用には上限があり、その中で実現が可能な会社を探そうとすると意外に難しいです。
さらに、費用の相場はエンジニアなどの質や技術でも変わるので、目安もはっきりしません。
そのため、実績のあるところから相見積もりを取ることで、予算内で実現できるところへ依頼するわけです。
相見積もりを取るときには、相手に最初に断っておき、3社ほどの目安をつけてからおこなうと良いでしょう。
システム会社への依頼の仕方
最後に、知っておくと便利なシステム会社への依頼の仕方を見ていきましょう。
- 相談内容を事前にまとめておく
- 参考サイトを用意しておく
- エクセル等で機能一覧をまとめておく
それぞれ参考にしてみてください。
相談内容を事前にまとめておく
相談内容は事前にまとめておきましょう。
コミュニケーションを円滑化できるだけでなく、詳細な内容を決めていくにも議題が必要となります。
例えば、
- 課題感は何があるのか
- どうしたら解決できるのか
- 何を達成したいのか
- どのくらいの納期が理想なのか
- 費用はどのくらいなら用意できるのか
細かいかもしれませんが、気になることは事前に聞いておくと、後々のトラブルを減らせます。
聞きたいことは、社内のアンケートから集めるというのも1つの手です。目的に合わせ、プロジェクトメンバーで話し合うなど、工夫をしてまとめておきましょう。
参考サイトを用意しておく
サイトやアプリの開発をするときには、参考サイト(ベンチマーク)を用意しておきましょう。
言葉で話すよりも、視覚による情報は圧倒的に多いです。伝わりにくいイメージやニュアンスがあるなら、参考サイトなどを用意しておくだけでもシステム開発会社が技術を持っていれば伝わります。
他にも、自社が求めているシステムに近いもの、イメージに近いものを集めていくと見えてくる目的もあるはずです。
参考サイトを用意するだけで、話し合いで進めていく内容がより濃いものになるので準備してみてください。
エクセル等で機能一覧をまとめておく
エクセルやスプレッドシート、メモ帳などで機能一覧をまとめておくのもおすすめです。
なぜなら、欲しい機能によっては申請や連携に一連の情報が必要など、後で進めるには時間やコストがかかる部分がある可能性が高いからです。
例えば、SNSとの連携であれば申請が必要です。連携に会社などのアカウント情報が必要なら、専用に準備する必要があるでしょう。
どのような機能を実現したいのか、一覧でまとめるだけで費用感もわかりやすくなるので、是非試してみてください。
TechUnit(テックユニット)は、技術コンサルティングと専属エンジニアチームの構築を行うサービスです。
下記に当てはまる方はお気軽にご相談ください。
- ✔ エンジニアが退職してしまった
- ✔ 開発が進まない
- ✔ すぐにエンジニアを増やしたい
- ✔ 今依頼している開発会社に不満がある
費用が発生しないご相談の段階で、「ソースコード解析」「要件定義」に関与し、プロジェクト毎に最適なチームをご提案しております。
プランに応じて柔軟な開発体制を構築いたします。もちろん、開発状況に応じたメンバーの増減も可能です。
無料相談も承っております。まずはお気軽にお問い合わせください!
まとめ:システム開発は優秀なエンジニアに依頼すると成功確度が高まる
システム開発は、優秀なエンジニアに依頼すると成功確度が高まります。
そのためにも、
- 目的(要件定義)は明確にしておく
- 流れや必要な資料・機能をまとめておく
- 依頼先の実績を確認する
- 依頼するシステム開発会社は相見積もりする
といった、紹介した点に注意して進めてみてください。
ぜひ、この記事を参考にシステム開発を依頼し、課題の解決に動き出してみてくださいね。