システム開発とは?手法、工程、費用、依頼先の選び方など徹底解説
近年におけるIT化の浸透や、国を挙げてのDX(デジタルトランスフォーメーション)推進に伴い、以前にも増してシステム開発を進める動きが活発化しています。そこで、課題になるのが、システム開発の依頼先です。システム開発は様々な手法が確立しており、費用や納期に影響があるため、依頼先の開発手法は重要な判断基準になります。
この記事では、営業・バックオフィスなど、さまざまな分野の発注先を比較検討できる「アイミツ」が、システム開発の内容について具体的に知りたいという方に向け、システム開発とは何かといった基本事項に触れながら、代表的な手法や工程、費用相場、委託する開発会社の選び方などについて、詳しく解説します。
【関連ページ】
システム開発にかかる費用・相場感や、あなたの目的別にシステム開発会社をお探しいただけます。
システム開発の費用・相場
システム開発会社一覧
システム開発とは?
システム開発とは、企業におけるさまざまな目標の達成やあらゆる課題の解決を目的として、そのためのしくみを作ることを指します。単に、ソフトウェアやアプリケーションを制作したり、Webサイトを構築したりすることだけをシステム開発とは呼びません。
企業には、売り上げや利益の増加を始め、顧客満足度の向上や業務の効率化、コンプライアンス・法制度への対応など、多くの課題やそれに伴う目標が存在します。課題解決もしくは達成を図るためのしくみを、コンピュータシステムを用いて実現するのが、システム開発なのです。また、システム開発は費やしたコストを上回る「費用対効果」が重要視されます。コストに見合わないシステム開発は基本的には行いません。
そのため、システム開発を検討する際には、まず自社の課題や目標を明確化することが重要となります。効果的なシステム開発によって、それらの解決や達成が効率的に実現し、ビジネスの発展が期待できるのです。
システム開発とプログラミングの違い
プログラミングは、システムの目的や内容に応じたプログラミング言語を用いて、コンピュータに命令を下すためのプログラムを記述する作業であり、あくまでシステム開発に数多く存在する工程のうちの1つです。
一方、システム開発は、上述した定義のとおりですが、プログラミングを含む一連の工程を指す総称であるとも言い換えられます。プログラミングによってプログラムを記述する作業を「開発」と呼ぶことも多いため、両者は混同しがちですが、意味の範囲・内容とも大きく違うので注意が必要です。
システム開発の代表的な手法
一口にシステム開発と言っても、そこには特徴の異なるさまざまな手法が存在し、案件ごとに適したものが選択されます。代表的な開発手法は、次の5つです。
-
- ウォーターフォール型
- アジャイル型
- プロトタイプ型
- スパイラル型
- DevOps(デブオプス)型
それぞれについて、次項より詳しく解説します。
ウォーターフォール型
ウォーターフォール型は、waterfall(滝)という名が付いているとおり、水が上から下に流れていくかのごとく、要件定義・外部設計・内部設計といった上流工程から、開発・テストといった下流工程まで、すべての工程を順番に進めていく開発手法です。
古くから採用されている手法で、各工程の開始と終了が明確なため、コストやスケジュールの管理がしやすく、高品質なシステムが開発できるといったメリットがあります。
また、ウォーターフォールを進化させたモデルと言われているV字モデル(開発工程とテスト工程をリンクさせる形)や、それをさらに発展させたW字モデル(開発工程とテスト工程を同時に行う形)などの活用により、より品質を高めながら開発を進めることも可能です。
一方で、基本的に前の工程に戻らないことを前提としているため、仕様変更などの突発事項に対応しづらいデメリットがあります。
アジャイル型
アジャイル型は、agile(俊敏な、すばやい)という名のとおり、スピーディな開発を重視した手法です。全体の仕様を厳密に定めてから開発工程へと進むウォーターフォール型とは違い、おおよその仕様と方向性を決めたのち、機能ごとの小さな単位で開発を進め、それぞれの単位において設計・開発・テストを繰り返しながら全体を形作っていきます。なお、この繰り返しはイテレーション(反復)と呼ばれています。
イテレーションによって、プロジェクトを止めることなく、仕様変更などの突発事項にも迅速な対応が可能。ユーザーと密なコミュニケーションを図りながら必要に応じて軌道修正もできます。そのため、非常に柔軟性が高いことがメリットです。
一方で、開発単位同士でお互いに認識を合わせないと方向性がずれてしまう恐れがあるほか、全体のコストやスケジュールの把握が困難であるというデメリットがあります。
プロトタイプ型
プロトタイプ(prototype)型は、原型や試作品を意味するその名のとおり、システム開発の早期に試作品(プロトタイプ)を作成し、ユーザーを含めた関係者がチェックを実施することで、完成品の品質を高める手法です。
プロトタイプに対して検証・試験を行うことにより、完成品をイメージしながら、仕様の不備や認識のずれといった問題点を早期に洗い出しが可能。リスクを抑えながら品質を高められることがメリットです。一方で、プロトタイプを作成するには相応のリソースやコストが必要となるため、スケジュールや予算に一定の余裕がないと実行は難しいのがデメリットです。
スパイラル型
スパイラル型は、アジャイル型と同様、システムをいくつかの機能単位に分け、それぞれの単位において設計・開発・テストを繰り返していく手法です。これにより、システム全体の品質を螺旋(spiral)のように高められます。
アジャイル型では、機能(開発単位)ごとに開発が完了次第、それぞれでリリースが行われます。スパイラル型では、各開発単位でプロトタイプを作成。関係者による評価が行われた上で、システム全体の品質を高めてからリリースします。そのため、アジャイル型のような柔軟性を保ちながら、ウォーターフォール型のような計画性と品質の担保が実現できるのがメリットです。
一方で、システムの全体像を把握しづらい上、プロトタイプの作成などによって、開発コストが膨らんでしまう恐れがあることがデメリットと言えます。
DevOps(デブオプス)型
開発を表すDevelopmentと、運用を意味するOperationsを組み合わせた名を持つDevOps(デブオプス)型は、開発担当者と運用担当者がお互いに連携しながら開発を進める手法です。開発工程において、運用担当者の意見を積極的に採用することで、より品質と効率性の高いシステムの実現を目指します。
運用担当者には、完成後のシステムに対する運用・保守を実践し、高いレベルでそれを維持・管理するというミッションがあります。この観点による意見を開発段階から取り入れることによって、完成後のシステム活用状況までをも見据えた高い品質と、それによるユーザー満足度の向上が実現できるのがメリットです。
一方、開発担当者と運用担当者でDevOpsに対する考え方や理解度が異なるとスムーズな進捗が難しいほか、スケジュールが流動的で把握しづらいというデメリットも存在します。
また、開発とテスト工程がリンクしたV字モデルという手法も存在します。これにより、開発工程ごとに運用方法が検討ができるため、開発側と運用側の連携がしやすくなります。詳しくは以下の記事をご覧ください。
▼関連記事
V字モデルとは?メリットや手順、W字モデルとの違いを紹介
システム開発の工程・流れ
一般的なシステム開発は、次のような流れで進められます。
1.要件定義(要求定義)
どのようなシステムをどういった目的で開発するのか、手法やスケジュールなども含めて決定します。
2.外部設計(基本設計)
要件定義で定められた内容を基に、UI(ユーザーインターフェース)など、システムの見た目やデザインを設計します。
3.内部設計(詳細設計)
外部設計で定められた内容を基に、それぞれの機能や動作の仕様、プログラムの構成など、システム内部に関する設計について、主に技術的な観点から実施します。
4.プログラミング
これまでの工程(上流工程)で定められた内容に従って、プログラミング言語を駆使しながら、システムを構成するプログラムを作成します。
5.単体テスト
プログラムが完成したら、テスト工程に入ります。まずは、個々の機能(モジュール)ごとに動作を検証する単体テストです。
6.結合テスト
次に、複数の機能における連携や、それぞれのインターフェースなどを検証する結合テストを実施します。
7.システムテスト(総合テスト)
次に、システム全体を総合的に検証するシステムテストを実施します。
8.運用テスト
次に、リリース前の最終チェックとして、実際の運用を想定した運用テストを実施します。
9.システム移行(リリース)
運用テストをクリアしたら、いよいよリリースです。新規にシステムを開発した場合は、それを本番環境へ公開します。また、旧システムから切り替える場合は、開発した新システムへの移行を実施します。
10.運用・保守
システム開発はリリースしたら終わりではありません。長きにわたってシステムを効果的に活用するため、運用・保守が非常に重要です。
システム開発の現場では、当たり前のように略語が飛び交います。システム開発の担当者がエンジニアやプログラマーの発する略語を理解できていないと開発の進捗に支障をきたしてしまう可能性もあるでしょう。そこで、ここではシステム開発時によく使われる略語とその意味を紹介します。
システム開発のために知っておきたい用語一覧
システム開発をスムーズに実現するために知っておきたい主な用語を、以下の一覧表にまとめました。ぜひご参照ください。
用語 | 意味 |
---|---|
オープンソース | ソースコードが一般公開されたプログラムで、無償で利用することが可能なものです。 |
人月(にんげつ)、人日(にんにち) | 開発などの工数(作業量)を表す単位で、1人が1ヵ月働いた工数が1人月です。同様に、1人が1日働いた工数が1人日となります。 |
ソースコード | プログラミング言語によってプログラムの内容が記述されたテキストのことです。 |
パッチ | プログラムの変更や修正を実現するデータのことです。パッチによってプログラムを変更・修正することを「パッチを当てる」と表現します。 |
フレームワーク | 開発を進める土台として、必要となる機能などがあらかじめライブラリとしてまとまっているソフトウェアのことです。 |
ミドルウェア | OS(オペレーティングシステム)とアプリケーションの間に位置し、双方の橋渡し役を担うソフトウェアのことです。 |
API(Application Programming Interface) | 複数のソフトウェアやアプリケーションなどをつなぐインターフェースとなるプログラムのことです。 |
BD(Basic Design) | 基本設計を意味し、UI(ユーザーインターフェース)など、システムの見た目やデザインに関する設計を指します。 |
DD(Detail Design) | 詳細設計を意味し、機能や動作の仕様、プログラムやデータベースの構成など、システム内部に関する設計を指します。 |
FD(Function Design) | 機能設計を意味し、機能ごとに仕様を定めるもので、内部設計(詳細設計)の一部として扱われることもあります。 |
ED(External Design) | 外部設計を意味します。基本設計と同義として扱われます。 |
ID(Internal Design) | 内部設計を意味します。詳細設計と同義として扱われます。 |
SS(System Structure Design) | システム構造設計を意味し、詳細設計をこう呼ぶことがあります。 |
ST(System Test) | システムテストを意味し、システム全体を総合的に検証するテストを指します。 |
IT(Integration Test) | 結合テストを意味し、複数の機能における連携や、それぞれのインターフェースなどを検証するテストを指します。 |
OT(Operations Test) | 運用テストを意味し、実際の運用を想定したテストを指します。 |
PT(Product Test) | 総合テストを意味します。システムテストと同義として扱われます。 |
UT(Unit Test) | 単体テストを意味し、個々の機能(モジュール)ごとに動作を検証するテストを指します。 |
RFP(Request for Proposal) | 提案依頼書と訳され、発注者が発注要件を明確にするために開発者に対して提示するドキュメントのことです。 |
RD(Requirement Definition) | 要件定義を意味し、どのようなシステムをどういった目的で開発するのか、手法やスケジュールなども含めて決定する工程を指します。 |
SES(System Engineering Service) | エンジニアが客先常駐する形でシステム開発などを実施するサービス形態です。 |
システム開発の事例と外注時の費用相場
システム開発を外注する際にかかる費用は、人月単価×工数によって決定されます。人月単価とは、開発に携わる人材に支払う対価(給料)のことです。また、工数は、携わる人数×開発期間で導出されます。
当然、高度な技術力を要する開発であれば、優秀なエンジニアが必要となるため、人月単価は高くなります。また、大規模な開発であれば、多くのエンジニアを要する上、開発期間も長くなるはずです。そのため、総額はそれらに比例して増加します。
また、外注時の費用は、システムの内容や規模によって変わるほか、依頼先の会社によっても大きく異なります。システム開発の事例ごとにおおよその費用相場を把握しておくことが大事。重要なのは、要件定義・外部設計・内部設計など、開発工程ごとにその工数と金額が明確なことです。見積もりを取得した際には、そのような観点で慎重に確認することをおすすめします。中には、「開発作業一式」として、まとめられた金額のみが記載されているケースもあるため、注意が必要です。
以下は、開発の事例ごとにおおよその費用相場をまとめ、一覧表にしたものです。上述のとおり、システム開発の外注費用は会社によっても大きく変わってくるため、これらの金額に固執することなく、あくまで目安として考えた上で、実際の見積書を慎重に吟味することが大切です。
開発例 | 開発費用目安 |
メディア系アプリ | 250万円~ |
店舗系アプリ | 600万円~ |
金融系アプリ | 1,000万円~ |
ECアプリ | 1,500万円~ |
ECサイト | 60万~400万円 |
個人間・企業間のマッチングシステム | 100万~500万円 |
店舗などの予約システム | 80万~500万円 |
販売管理システム | 500万円~ |
人事管理システム | 500万円~ |
マーケティングオートメーション(MA) | 200万~500万円以上 |
営業支援システム(SFA) | 200万~500万円以上 |
詳しくは以下の記事をご覧ください。
委託するシステム開発会社の選び方
システム開発を委託する会社を選定する際には、いくつかのポイントがあります。主なポイントは次のとおりです。各ポイントをしっかりと押さえながら、パートナーとして適切な会社を見つけることが大切です。
・十分な実績があるか
システム開発の実績が十分にあり、かつそれらが自社の案件内容に沿ったものであれば、信頼性は高いと言えます。
・得意分野が自社の案件に合致しているか
自社の案件に合致した得意分野を持っている会社であれば、スムーズな開発と質の高い成果物が期待できます。
・運用・保守の体制が整っているか
システム開発は完成したら終わりではありません。長きにわたって活用するためには、その後の運用・保守も見据えておく必要があります。
・定期的にコミュニケーションが取れるか
担当者や開発側とのコミュニケーションが定期的にとれるかも重要です。定例ミーティングの開催や進捗状況をリアルタイムで共有してくれるなど、外注側からかも積極的なコミュニケーションを取ってくれるかも重要です。
いずれにせよ、数多いシステム開発会社の中から自社に最適な委託先を選定するためには、さまざまな観点からリサーチを行い、複数の会社による相見積もりを実施した上で、慎重に比較検討することが極めて重要です。見積書の書き方やその内容によって、費用のみならず、案件に対する意識や会社としてのスタンスが見えてくることもあります。詳しくは以下の記事をご覧ください。
▼関連記事
システム開発会社の選定ポイントと注意点
システム開発会社においてよくある質問
おすすめのシステム開発会社5選
ここからは、アイミツが厳選するおすすめの開発会社を5社紹介していきます。
システム・プロダクト株式会社
こんな人におすすめ
・中小企業向けの金融ITシステムを開発したい方
・他社が開発した現行システムのメンテナンスに困っている方
予算感 | 要問い合わせ |
---|---|
設立年 | 1979年 |
会社所在地 | 東京都中央区日本橋本石町4-4-9 有隣ビル4F |
電話番号 | 03-6225-2404 |
株式会社エッジコネクト
こんな人におすすめ
・コンサルティングを基にスムーズな業務改善を進めたい方
・実績豊富なシステム開発会社にワンストップで依頼したい方
予算感 | 要問い合わせ |
---|---|
設立年 | 2018年 |
従業員数 | 10-29人 |
会社所在地 | 東京都中央区湊3-11-7 湊92ビル6階 |
電話番号 | 03-4500-1006 |
株式会社ルミテック
こんな人におすすめ
・自社に最適なシステムによる的確な業務改善の実現を望む方
・開発会社との密なコミュニケーションを重視する方
予算感 | 要問い合わせ |
---|---|
設立年 | 1990年 |
従業員数 | 10-29人 |
会社所在地 | 千葉県柏市中央町5-21 |
電話番号 | 04-7168-0315 |
株式会社いつも
こんな人におすすめ
・ECサイトの運営代行までトータルで依頼したい方
・ECサイトの豊富な知見を持つプロフェッショナルに開発を依頼したい方
予算感 | 要問い合わせ |
---|---|
従業員数 | 100-499人 |
会社所在地 | 東京都千代田区有楽町1-12-1 新有楽町ビル7階 |
電話番号 | 03-4580-1365 |
株式会社アラヤ
予算感 | 要問い合わせ |
---|---|
設立年 | 2013年 |
従業員数 | 30-99人 |
会社所在地 | 東京都千代田区神田佐久間町1-11 産報佐久間ビル6F |
電話番号 | 03-6426-5144 |
詳しくは以下の記事をご覧ください。
【目的別】システム開発会社おすすめ21選!選び方や注意点も紹介
契約の締結とプロジェクトの進行管理
システム開発を委託する会社が選定できたら、契約書を作成し、実際に契約を締結するフェーズに移ります。
システム開発の契約では、基本契約書および個別契約書という2つの契約書を作成するのが一般的です。
基本契約書は、文字どおりシステム開発の契約における基本事項を記載したもので、作業スコープや双方の役割、責任範囲、検収方法などをまとめます。一方、個別契約書は、詳細な作業分担内容や具体的な代金など、案件によって個別に定める事項をまとめたものです。
無事契約締結が完了したら、いよいよプロジェクトがスタートしますが、委託先に丸投げでは高品質なシステム開発は難しいでしょう。システム開発を有効に進めるためには、委託先を適切に管理・評価しながら、伴走する必要があります。これをベンダーマネジメントと呼び、密なコミュニケーションと定期的な評価、中間成果物の確認などによって、進行を適切に管理し、プロジェクトを成功に導くことを目的としています。
効果的なベンダーマネジメントのためには、例えば毎週の定例ミーティングによって各タスクの進捗報告を義務付けたり、課題を明確にして修正対応を指示したりするなどの方法があります。マイルストーン(各工程の節目)ごとにそれまでの成果物をチェックし、的確に評価することによって方向性を確認しましょう。
システム開発を依頼するときのポイント
日本情報システム・ユーザー協会が2022年に実施したアンケート調査によれば、100人月未満のシステム開発プロジェクトにおいて、工期について「予定どおり完了」したとの回答は32.4%、予算について「予定どおり完了」したとの回答は38.0%、品質満足度について「満足」との回答は22.4%に留まっています。約7割がシステム開発が予定通り進まず満足がいく結果が出ていないと回答しています。
原因はコミュニケーション不足と考えられます。依頼先との綿密なコミュニケーションを図り、早期に対策を打つことで、大抵の問題は回避することが可能です。
そのためには、最上流工程である要件定義の内容が正確であることが大前提となります。ついては、正確な要件定義を実現するために、事前に自社の課題や問題をしっかりと整理し、さらには予算をはっきりと定めた上で、システム開発の目的や完成後のゴールを明確にしておくことがポイントです。
なお、次章にて「システム開発でよくある失敗例」を紹介しています。それを教訓として、参考にするのも非常に有効です。
※ 出典:一般社団法人 日本情報システム・ユーザー協会(JUAS)「企業IT動向調査報告書 2023」https://juas.or.jp/cms/media/2023/04/JUAS_IT2023.pdf
システム開発でよくある失敗例
システム開発でよくある失敗例には、どのようなものがあるのでしょうか。以下より、その事例をいくつか紹介します。上述のとおり、システム開発の成功率は思いのほか低く、常に失敗やリスクと隣り合わせであると言えます。これらの事例を教訓として把握し、自らのプロジェクト遂行における参考にしていただければ幸いです。
予想以上に費用が膨らんでしまった
システム開発でありがちなのが、予想以上に費用が膨らみ、当初想定していた予算をオーバーするケースです。
システム開発の費用が膨らんでしまう原因の多くは、不十分な要件定義にあります。要件定義の内容があいまいであったり、必要な機能が不足しているなど、要件定義の段階で問題があった場合は以後の工程で追加の作業が発生。その分コストがかさんでしまうため、当初の設定予算をオーバーしてしまいます。
そのため、事前に自社の課題や問題をしっかりと整理した上で、それを解決するために必要となる機能を漏れなく洗い出し、システムの最終形を明確にイメージしながら、正確な要件定義を実施することが重要です。
スケジュールに無理があった
スケジュールにそもそも無理があった、もしくは仕様追加や変更がたびたび発生したために、納期が遅延してしまうケースです。
仕様追加や変更の発生については、目的を明確し要件定義をしかっり行うことにより、防ぐことが可能です。また、そもそもスケジュールに無理があったというケースについても、要件定義の段階で想定できます。あらかじめ納期が決まっているのであれば、要件定義によって必要となる機能が明確になった時点で、それぞれの工数を正確に割り出し、優先順位を付与して開発範囲を限定するのも一案です。
また、外注先とのコミュニケーションも重要です。定例会の設定や工程が終わる事に確認を行うなど、密にコミュニケーションを取りましょう。定期的に開発会社と進捗状況を共有していれば、問題があった場合でも早急に対処ができるため、スケジュールへの影響も最小限に抑えられます。
「どんなシステムにしたいか」共有できていなかった
どのようなシステムにしたいかを共有できていなかったがために、想定とは異なるシステムができあがってしまったり、スケジュールや費用に狂いが生じてしまったりするというケースです。
これも多くの場合、要件定義を正確に実施することで防ぐことが可能です。万が一、上流工程で認識の共有が完全でなかったとしても、プロジェクト進行中における綿密なコミュニケーションによって、早い段階で齟齬が明らかになります。また、定期的に中間成果物を確認することで、方向性に誤りがある場合でも、早期に軌道修正が可能です。
キーマンとなる人物が頻繁に異動していた
プロジェクトの核となる人材、すなわちキーマンが異動によって頻繁に変更となり、システム開発がままならなくなるケースです。
この場合、適切な引継ぎが実施されていないと、新しい担当者はゼロからプロジェクトの内容や現状を把握することになり、大きなロスが生じる上、品質の維持も難しくなります。このようなケースでもスムーズな開発を継続するには、普段からの密なコミュニケーションによる適切な情報共有によって、迅速にプロジェクトの状況がつかめるナレッジベースを作成しておくなど、できる限り属人的な状況を作らないことが重要です。
要件定義を行った企業とは異なる企業に開発してもらった
システム開発における最上流工程となる要件定義は、以後の工程における指針や拠り所となる非常に重要なものです。一般的には、要件定義を実施した会社がそのまま開発に携わるケースがほとんどですが、稀に異なる企業が開発を担当することがあります。
そのような場合、正確かつ詳細な要件定義書を作成した上、開発を担当する会社と丁寧に読み合わせながら認識を共有しておかないと、成果物の品質低下やスケジュールの遅延などを招く可能性があります。
更に詳しく知りたい方は、以下の記事をご覧ください。
システム開発で悩んだらアイミツに相談
以上、システム開発の内容について具体的に知りたいという方に向け、システム開発とは何かといった基本事項に触れながら、代表的な手法や工程、費用相場、委託する開発会社の選び方などについて、解説しました。
前述したとおり、システム開発には、ウォーターフォール型・アジャイル型・プロトタイプ型など、さまざまな手法があります。それぞれに特徴が存在するため、自社の案件に合致した最適な手法を選ぶことが大切ですが、それは決して簡単ではありません。
また、そのことを踏まえて外部の開発会社に依頼する際にも、押さえておきたいポイントがいくつも存在し、適切な会社を選定するのはハードルの高い作業です。さらに、複数の会社から相見積もりを取得し、慎重に比較検討することが何よりも重要であるため、相応の手間や時間がかかります。
ついては、ぜひ「アイミツ」をご利用ください。ご要望をお伺いした上で、それに見合った会社を複数ご紹介します。お気軽にご相談ください。無料での一括見積りも可能です。
【相談前にまずは会社一覧を見たいという方はこちら】
システム開発会社一覧
【費用感を知りたいという方はこちら】
システム開発の費用・相場
システム開発会社探しで、こんなお悩みありませんか?
-
一括見積もりサイトだと
多数の会社から電話が・・・ -
相場がわからないから
見積もりを取っても不安・・・ -
どの企業が優れているのか
判断できない・・・
PRONIアイミツなら
発注先決定まで
最短翌日
- 専門コンシェルジュが
あなたの要件をヒアリング! - 10万件の利用実績から
業界・相場情報をご提供! - あなたの要件にマッチした
優良企業のみご紹介!
診断とヒアリングから
お探しします