- 更新日 2024.10.17
- カテゴリー システム開発
IT開発とは?外注時の開発手法・流れ・費用などの基礎知識を解説【2024年最新版】
業務改善システムやWebアプリなどのシステムを開発すると決まったが、自社に十分なノウハウやリソースがなく外注を検討している担当者へ。
・外注時に失敗しないようにIT開発の基礎知識をつけておきたい
・IT開発の流れや費用相場を知って外注先の選定に役立てたい
・外注先を選ぶ際の注意点は?
IT開発の流れや費用相場がイメージできておらず、外注先を選ぶにも知識がないので分からない方も多いはず。
本記事では、IT開発を行う企業の担当者に、開発手法や開発の流れ、費用相場などを解説します。最後まで読めば外注先とコミュニケーションが取りやすくなり、IT開発の失敗を減らせるので、ぜひご覧ください。
※IT開発の外注先を探している方はシステム幹事にご相談ください。予算や目的から最適な開発会社を紹介します。相談料・紹介料ともに一切かかりません。「まずは相場情報を知りたい」方でも大歓迎です。
IT開発とは?
はじめに、「IT開発」という言葉の定義があるわけではありません。一般的には「システム開発」と同義で使われているようです。
システム開発は「業務の効率化がしたい」「顧客満足度を上げたい」などの課題を解決するためにシステムを構築することを指します。
本記事では「IT開発」=「システム開発」として解説を進めます。
IT開発の4つの手法
IT開発には複数の手法があり、プロジェクトに応じて適切な開発手法が使い分けられています。
最適なIT開発の手法を選択できるようにするためにも、開発手法それぞれの特徴や違い、どのようなプロジェクトに向いているのかを把握しておきましょう。
ここでは、代表的な4つの手法を紹介します。
手法 |
内容 |
ウォーターフォール |
決められた作業工程を一つひとつ順番に遂行していく手法 |
プロトタイプ |
開発に入る前に試作品を作成して発注者が確認する手法 |
アジャイル |
基本機能のみを開発し、発注者に使ってもらい レビューを集め、開発とテストを繰り返す手法 |
スパイラル |
システムの開発工程をサブシステム(機能)ごとに分割し 重要な機能から開発していく手法 |
4つのうち、最もオーソドックスな開発手法はウォーターフォール型。このあと紹介するIT開発の流れは、ウォーターフォール型を想定して解説します。
ウォーターフォール型
ウォーターフォール(Waterfall)とは「滝、落水」を意味する英単語。文字通り、水が上流から下流に流れるように、決められた作業工程を一つひとつ順番に遂行していくシステム開発手法です。
リリースまでの具体的な開発工程は「要件定義」>「設計」>「開発」>「テスト」となることが一般的。ウォーターフォール型の特徴は、要件定義を策定してから設計に取りかかるなど、上流の工程(要件定義や設計)を100%完了させてから下流の工程(開発やテスト)に移ることです。
また、構築から設計に戻るといった「開発工程の逆戻り・手戻り」が、基本的に想定されていないこともウォーターフォール型の特徴です。
ひとつの工程が完了してから次の工程に進むため、プロジェクトの安定的な進行が期待できる開発手法です。つまりウォーターフォール型は、必要な機能や要件が明確であるプロジェクト、予算・納期が明確なプロジェクトに最適なIT開発手法だといえるでしょう。
向いているIT開発
・機能・予算・納期が明確なプロジェクト
・大規模な業務システムの開発(銀行や公的機関など)
ウォーターフォール型の開発の詳細は下記記事をご参照ください。
関連記事:ウォーターフォール型システム開発とは?開発工程・メリットを解説!
プロトタイプ型
先述したウォーターフォール型を改良した手法が「プロトタイプ型」です。プロトタイプ(prototype)とは「試作品・原型機」を意味する英単語。
プロトタイプ型の開発とは、開発(プログラミング)に入る前に試作品を作成して発注者に確認してもらう方法。制作されたプロトタイプをテスト・レビューしながら、リリースに向けて完成度を高めていく開発手法です。プロトタイピング型と呼ばれる場合もあります。
工程はウォーターフォール型と同様ですが、開発からリリースまでの工程が「試作品の開発」>「テスト・レビュー」>「試作品の修正」>「本開発・リリース」となることがプロトタイプ型の特徴。
認識のズレを修正しやすく、発注者のニーズを反映させやすいプロトタイプ型は、仕様・要件のブレやすい「新規事業・新サービス立ち上げ」時のIT開発プロジェクトに最適な開発手法です。
向いているシステム開発
・前例のないWebアプリケーション・システムなどの開発
・全体をコントロールしやすい小〜中規模プロジェクト
アジャイル開発
アジャイル開発とは、基本機能のみを開発し、ユーザーに使ってもらってレビューを集め、開発とテストを繰り返す手法です。
アジャイル(ajile)とは「俊敏な・機敏な」さまを意味する英単語。文字通り「俊敏な」開発を実現するため、システム全体を細かい機能に分割し、優先度の高い機能から構築・リリースを繰り返していきます。
アジャイル型の開発工程は大きく2つ。要件定義では、おおまかなシステム要件・仕様を作り、2〜3週間程度で実装できる単位に機能を分割します。分割された機能は、優先度の高い順に「計画」>「設計」>「実装」>「テスト」>「リリース」を1つのサイクルとした「イテレーション(反復・サイクル)」を繰り返し、システムの完成が目指されます。
機能ごとに小さく開発・リリースを繰り返すアジャイル型は、スモールスタートさせて市場の反応を見ながら成長を狙う新規事業、サービス開発などのプロジェクトに最適です。
向いているシステム開発
・要件や仕様が固まっていないプロジェクト
・ECやSNSなどのWebサービス、モバイルアプリやゲームなど
スパイラル型
スパイラル型の開発は、システムの開発工程をサブシステム(機能)ごとに分割し、重要な機能から開発していく手法です。
スパイラルとは「ループ線」を意味する英単語。文字通り、要件定義以降の「設計」>「構築」>「テスト」>「評価・改善」を1つのサイクルと捉え、ループ線を描くように反復してシステムを完成させます。発注者から1つの機能にOKが出たら、次の機能の開発に取りかかる手法です。
スパイラル型では、まず要件定義でシステムの仕様書を作成したうえで、全体をいくつかのサブシステム(機能)に分割し、開発に取りかかる優先度を決めます。最初の機能をテストしたレビューは次の機能の開発に活用される流れ。プロダクトの完成度を徐々に上げていくことが特徴です。
検証と改善を繰り返す手法のため、クオリティを重視する大規模なプロジェクトに最適です。
向いているシステム開発
・品質重視の大規模プロジェクト(業務システム)
・途中で仕様変更が生じる可能性のある開発
IT開発でよく使われる開発言語
IT開発では、JavaやC#、Pythonなど、さまざまな開発言語が用いられます。発注者は開発言語の細かい仕様まで把握しておく必要はありませんが、外注先とスムーズにやり取りするために、基礎知識を理解しておくことは大切です。
プログラミング言語は200種類以上が存在するといわれていますが、世界中で使われている主要言語は20〜30種類程度。そのなかから、作るシステムの特性に応じて、適切なプログラミング言語が選定されます。
「Webアプリケーション」「業務アプリケーション」「モバイルアプリ」「汎用系業務システム」の4つに分類して紹介すると以下の通りです。
概要 |
主な開発言語 |
|
Webアプリケーション |
Webブラウザを操作端末に利用する、 |
Java PHP Ruby Python JavaScript |
業務アプリケーション |
企業の業務をコンピュータで処理するために |
Java C/C++ C# Python |
モバイルアプリ |
iOS / Androidを使用するスマートフォン・ |
Java JavaScript C# Swift Kotlin |
汎用系業務システム |
国税・年金などの行政機関や、銀行・証券 |
Java C++ COBOL |
ここでは、代表的な4つの言語の特徴を紹介します。
Java
Javaは、Java仮想マシン(JVM)上で動作する、オブジェクト指向(※データや物理対象そのものに重点を置く考え方)のプログラミング言語。1995年にリリースされた比較的歴史のあるプログラミング言語ですが、環境を選ばずに動作するマルチプラットフォーム対応、コンパイラ型(※すべてのソースコードを機械語に翻訳してからプログラムを実行するタイプ)ならではの高速な実行速度、汎用性の高さなど使い勝手のよさが魅力です。
Webシステムはもちろん、モバイルアプリ・業務システム・組み込み系まで、現在でも幅広く活用されています。現在、公開されている大多数のAndroidアプリはJavaで開発されました。
また、大規模システムに最適なのもJavaの特徴。処理が高速である以外にも、Javaには堅牢性・セキュリティ性に優れているメリットがあるからです。Googleの3大プログラミング言語のひとつに挙げられるなど、万能かつメジャーな言語といえるでしょう。
開発言語のタイプ |
コンパイラ型 |
言語の特徴 |
・マルチプラットフォーム ・大規模システムに最適 ・汎用性、堅牢性、セキュリティ性が高い ・実行速度が高速 |
C#
C#は、2000年にMicrosoftによって開発・リリースされたオブジェクト指向のプログラミング言語です。仮想マシンを必要とするなど、どちらかといえばJavaに近い言語。.NET Framework、Visual Studio.NETなどが仮想マシンとして活用されます。
C系の言語は堅牢性も高く、高速性・OSを選ばないマルチプラットフォーム・高い汎用性を併せ持つのがC#の特徴。業務アプリケーション・システム開発で幅広く使われています。
C#はマイクロソフトが開発したプログラミング言語なので、Windowsで動作するシステムの開発に向いています。また、ポケモンGoのゲームアプリもC#で作られていると言われています。
開発言語のタイプ |
コンパイラ型 |
言語の特徴 |
・マルチプラットフォーム ・汎用性・堅牢性・高速性に優れる ・Javaよりも豊富な機能 |
Python
Pythonは、汎用性が高く、Webアプリケーションの開発から組み込み開発、AIの分野、統計処理、機械学習など幅広いシーンで利用されているオブジェクト指向プログラミング言語です。シンプルでわかりやすい文法を持つため、だれが書いても読みやすいソースコードを記述できることが特徴。システム開発をサポートするライブラリ・フレームワークが多数登場したことで、急速に注目されるようになっています。
一方、PythonはJavaなどのコンパイラ言語とは異なり、実行時に1行1行機械語に翻訳するインタプリタ言語であるため、実行速度が遅いといったデメリットには注意しましょう。
開発言語のタイプ |
インタプリタ型 |
言語の特徴 |
・ソースコードがシンプルで可読性が高い ・汎用性が高い ・開発に有用な豊富なライブラリ・フレームワーク |
関連記事:Pythonのシステム開発に強い会社をプロが厳選!
JavaScript
JavaScriptは、動的なコンテンツを作成できるスクリプト言語(※可読性が高く比較的簡単に記述できる言語)です。ポップアップの表示や、ユーザーのWebサイトでの行動に応じた動的なコンテンツ生成を可能とします。
主要なブラウザすべてが対応しているため、開発時に実行環境を整える必要がなく、手軽にWebアプリのクライアントサイドを開発できることがJavaScriptの特徴。SNS、ECサイト、動画サイト、チャットツールなどに向いています。
開発言語のタイプ |
インタプリタ型 |
言語の特徴 |
・Webサイト・アプリのクライアントサイドに必須の言語 ・汎用性・堅牢性・高速性に優れる ・Javaよりも豊富な機能 |
関連記事:JavaScript開発でおすすめのシステム開発会社をプロが厳選
プログラミング言語についてさらに理解を深めたい方は、以下の記事をご確認ください。
関連記事:システム開発の主要言語を解説!業務アプリケーションによく使われている言語は?
IT開発の流れ
続いて、IT開発の流れを解説します。発注側が工程を知っておくことで、それぞれの工程でどのような関わり方をすればいいのか掴めます。外注先と円滑にコミュニケーションを取るために開発の流れを理解しておきましょう。
①依頼準備
まずは、どんなシステムが欲しいのか詳細を固めます。
依頼内容が明確になっていないと「そもそも見当違いな開発会社を選んでしまう」「開発会社から適切な提案・見積もりがもらえない」「担当者と適切なコミュニケーションができない」などの問題につながります。
以下のような内容を企画書にして落とし込みましょう。
・現状の課題とゴール
・想定するターゲット
・必要な機能
企画書が完成したら、開発会社に提出するRFP(提案依頼書)も作りましょう。RFPは、システム開発会社から見積もりやシステムの提案をしてもらうための依頼書です。RFPを作成しておくことで、開発会社も正確な見積もりを出しやすくなります。下記がRFPに記載する項目の例。
概要 |
開発の背景、目的、解決したい課題、得たい効果 会社・組織の概要、システムの利用者、開発の予算 |
提案依頼事項 |
性能、品質、運用条件、納期スケジュール 納品条件、定例条件、開発体制、プロジェクト管理方法 開発言語、開発手法、現行システムからの移行方法、費用見積もり |
提案手続き |
提案依頼書に対する窓口、提供資料、選定方法 |
開発の条件 |
開発期間、作業場所、開発に使うコンピュータ機器、資料 |
契約事項 |
支払い条件、保証年数、機密事項、著作権 |
RFPの作り方の詳細は、以下の記事を参考にしてください。
関連記事:RFPとは?システム開発の質を高める提案依頼書の作り方を解説!【サンプルあり】
②外注先選定~契約
依頼準備をしたら、開発会社に見積もりを依頼して外注先を選定します。このとき、分からない項目があれば必ず確認して認識を合わせておきましょう。必要のない機能を入れてしまったことで予算が膨らむなど、後悔の原因になります。外注先の選定ポイントは記事の後半で詳しく解説しています。
外注先が決まったら、契約書を締結して、正式に発注を行います。開発対象の機能の定義が曖昧だったことで追加費用の要否が争点になるなど、契約内容が起因でトラブルが起こるケースも少なくありません。作業範囲や保証内容、納品日などを明確にしておきましょう。
なお、契約については下記の記事もチェックしておいてください。契約が原因で起こるトラブルを避けるための、注意点・チェックポイントを詳しく解説しています。
関連記事:システム開発の契約とは?契約形態・契約書の注意点を解説!
③要件定義
要件定義とは、発注者の希望を叶えるために必要な機能などを明確にする作業です。以下のような項目を決めます。
・必要な機能
・用いられる技術
・スケジュール(納期)
・必要な人員(工数)
要件定義は発注側のニーズを見える化する作業であり、プロジェクトの成否を左右するもっとも重要な工程。IT開発の失敗の原因の多くも、綿密に要件定義を詰めていなかったことで起きています。必ず納得いくまで打ち合わせを重ねてください。
要件定義の詳細は、以下の記事をご覧ください。具体的にどんなことを決めるのか、どう進めるのかなどを詳しく解説しています。
関連記事:システム開発の要件定義とは?受託開発における重要性や進め方を解説!
④設計・開発・テスト
要件定義が完了したら、設計・開発・テストへ進みます。発注者が主に関わるのは設計の部分です。
It開発の設計では機能、データ、画面レイアウトなどの設計図を作成します。家づくりに例えると、部屋数、玄関の向き、各部屋の大きさなどの間取りを決める工程です。
開発会社が作成する設計書を確認し、的確なフィードバックを行いましょう。特にレイアウトや仕様はユーザーの使いやすさに直結する部分です。開発会社とコミュニケーションを取りながら二人三脚で進めていきましょう。
単体テスト |
画面や機能ごとに、動作の検証をする |
結合テスト |
他の機能やシステムと連携させて、動作の検証をする |
総合テスト |
本運用を想定して、システム全体の動作を検証する |
テストは主に開発会社が進めていく工程ですが、週1回の定例ミーティングなどを設定し定期的に進捗を確認して、トラブルが起きていないか、計画通りに進んでいるかをチェックしてください。納期遅延などのリスクに対する管理は下記の記事で解説しているので、ぜひ参考にしてください。
関連記事:システム開発における発注側のリスクは?リスク管理表の作成方法、大公開!
⑤納品~運用保守
システムが納品されたら、発注側は検収を行います。検収とは、納品された成果物が、あらかじめ設定された仕様を満たしているか確認する検査のこと。「受入れテスト」や「ユーザーテスト」と呼ばれる場合もあります。
検収の際は、実際にシステムを使う現場の方(給与管理のシステムであれば経理担当者など)に使ってもらうとよいです。開発担当者と実際の使用者だと、使いやすさなどに認識の齟齬があるかも知れません。
また、システム本体以外にも、操作マニュアル、障害が発生した際の対応マニュアルなども不備がないかチェックしてください。
納品された成果物に問題がないと判断すれば、「検収書」に押印して開発会社側に渡すことで開発は完了します。
また、システムは作って終わりではありません。開発が完了したら、今後の運用や保守について開発会社と話し合います。リリース後も、安定稼働させるために管理・監視をしたり、必要に応じて修正作業や追加機能の実装などを行う必要があります。
運用 |
システムの監視 |
日常メンテナンス |
|
保守へのエスカレーション |
|
システム保守 |
障害の原因究明・復旧 |
システムの改善提案・実施 |
自社で運用・保守をする場合は、開発時に使ったツールやコーディングの引継ぎを受けます。あるいは、開発会社に運用・保守まで任せるパターンもあります。
関連記事:システム開発の工程・流れをプロが解説!発注者が知っておくべきポイントを紹介
IT開発の費用相場
IT開発を外注する場合、気になるのが費用の面かと思います。費用の決まり方や相場を知っておくことで、不当な金額を提示されたときに気づくこともできます。費用相場を押さえておきましょう。
IT開発の費用は「人件費+諸経費」
IT開発の費用は「人件費+諸経費」で決まります。
人件費は、システムを開発するためにかかる人員や工数の費用。諸経費は、開発用のパソコンやシステムを動かすためのサーバなどの設備費、ソフトを使用するライセンス料などです。
・人件費:エンジニアやプログラマーなどの費用
・諸経費:開発に必要な機材などの設備費、ソフト使用のライセンス料など
このうち、IT開発の費用のほとんどは人件費。システムの種類や機能などによっても必要な人件費は変動します。
人件費は「人月×人月単価×期間」
IT開発にかかる人件費は「人月(にんげつ) ×人月単価 ×期間」で決まる。
・人月:エンジニア、プログラマーなど開発に必要な1ヶ月間の人員
・人月単価:人員1人が1ヶ月作業した場合の費用
・開発期間:開発・リリースまでに要する期間
開発では、見積書などに「〇人月」という言葉が出てくる。人月とは、開発に必要な1ヶ月間の人員の数。
システムの種類ごとの相場
続いて、システムの種類ごとの費用・相場を紹介します。システムは大きく分けて以下の3つに分類できます。
種類 |
目的 |
基幹システム |
会計・人事・生産・販売などの情報を管理するシステム |
業務支援システム |
顧客情報や営業活動、新たなプロジェクトなどを支援する 主に直接、顧客に関わる部分(フロント業務)に関するシステム |
Webシステム |
ネットショップ、予約システム、マッチングシステムなど インターネットを通じて情報を処理するシステム |
基幹システムの相場
今回は、基幹システムの代表例として「販売管理システム」の費用を解説します。
なお、基幹システムの中では、販売管理システムと生産管理システムは費用が同額程度。業務の複雑性・重要性が高く、複数人が使うケースが多いので、他の基幹システムに比べると高額になります。
それに対し、人事管理・財務会計システムの費用は、販売管理・生産管理システムの60%ほど。従業員向けの情報管理になり、使用する人数が限られ(人事や経理担当者だけなど)、システムの機能の複雑性が低くなるため、少し安くなります。
導入・開発形式 |
費用・相場 |
開発体制 |
開発(導入)期間 |
ツールの導入 |
10万円前後/月〜 |
- |
1週間前後 |
ツール導入 + カスタマイズ |
100万円以上 |
ディレクター1名 デザイナー1名 エンジニア1名 |
3ヶ月〜4ヶ月 |
スクラッチ開発 |
500万円以上 |
ディレクター1名 デザイナー1名 エンジニア2名 |
4ヶ月〜8ヶ月 |
基幹システム(販売管理システム)の相場は月額10万円前後〜500万円以上です。すでに販売されているツールを導入するか、ツールを自社向けにカスタマイズ(アレンジ)するか、完全オリジナルで作成するスクラッチ開発かで金額は変動します。
業務支援システムの相場
今回は、業務支援システムの代表例として「顧客管理システム」の費用を解説します。
導入・開発形式 |
費用・相場 |
開発体制 |
開発(導入)期間 |
ツールの導入 |
5万円前後/月 |
- |
1週間前後 |
ツール導入 + カスタマイズ |
50万~200万円 |
ディレクター1名 デザイナー1名 エンジニア1名 |
3ヶ月〜4ヶ月 |
スクラッチ開発 |
400万円以上 |
ディレクター1名 デザイナー1名 エンジニア2名 |
4ヶ月〜8ヶ月 |
顧客管理システムの費用の目安は5万円前後〜400万円以上。
基幹システム(販売・生産管理)の80%くらいと考えてください。
顧客管理システムは、大きくMA、SFA、CRMの3つに分かれます。
MA |
SFA |
CRM |
|
機能 |
メール配信 効果測定・分析 |
商談管理 受注管理など |
顧客管理 顧客対応管理など |
目的 |
見込み客の獲得 |
営業活動 |
顧客との関係を築く |
MAツール(マーケティングオートメーション)を活用して見込み客を集め、SFAツール(営業支援)によって商談や受注・契約を管理し、CRMツール(顧客関係管理)によって、顧客との良好な関係を築いていきます。
顧客管理システムは上の3つが一体となったものや、中にはSFAだけ、SFA+CRMの2つが備わったシステムなどバラバラ。当然、機能が多いほど高額になります。
顧客管理システムの詳しい説明は以下の記事も参考にしてください。
関連記事:顧客管理システムとは?ビジネスに不可欠なCRMの重要性・基礎知識を解説!
Webシステムの相場
最後に「Webシステム」の費用・相場です。
今回は、代表例として「ECサイト」の費用を解説します。
特徴 |
費用・相場 |
開発体制 |
開発(導入)期間 |
テンプレート&軽微な カスタマイズのECサイト |
50~100万円 |
ディレクター1名 デザイナー1名 エンジニア1名 |
2ヶ月〜3ヶ月 |
オリジナルのデザイン |
100〜300万円 |
ディレクター1名 デザイナー1名 エンジニア1名 |
3ヶ月〜4ヶ月 |
業務に合わせた特殊な機能も オーダーメイド |
300万円以上 |
ディレクター1名 デザイナー1名 エンジニア2名 |
4ヶ月〜8ヶ月 |
ECサイトの構築費用は、50〜1,000万円以上が目安です。大きくは3種類に分けられ、主に機能や扱う商品数などの規模に応じて費用が大きく変わります。
※テレビCMでお馴染みのBASEなど、無料でネットショップが作れるサービスもありますが、今回は開発会社に依頼する場合の費用のみを想定しています。
押さえておきたいその他の費用
IT開発にかかる費用は、開発費用だけではありません。「予想外に費用がかかった」とならないためにも、その他の費用も押さえておきましょう。
種類 |
費用相場 |
サーバー費(※1) |
月額数千〜数万円 (開発後もレンタル料を |
SSLサーバー証明書(※2) |
5~10万円 |
運用保守費 |
開発コストの5%前後 |
※1 要求されたファイルの送付やデータの保存など、サービスを提供する側のコンピューターのこと。システムを動かすために必要不可欠。
※2 Webサイトの運営者の実在性を証明し、Webサーバーとブラウザの間で通信データの暗号化を行うための電子証明書。WebサイトのURLをhttp→httpsに暗号化し、盗聴やなりすましを防ぐ。
表にもある通り、以下の費用が必要になります。
・システムを動かすために必要不可欠なサーバーの費用
・システムを安定稼働させるための運用・保守費
・SSLサーバー証明書の取得
運用・保守費については記事の後半でも詳しく紹介します。ここでは、こうした開発以外の費用がかかることを覚えておきましょう。
また、システム開発の費用相場の詳細や安く抑えるコツを知りたい方は以下の記事も参考にしてください。
関連記事:システム開発の費用・相場を解説!料金を抑えるコツも紹介!
※IT開発の費用・相場情報を詳しく知りたい方はシステム幹事にご相談ください。費用のご相談だけでも無料でお答えします。予算や目的から最適な開発会社をご紹介も可能です。
IT開発の外注先を選ぶポイント
IT開発を成功させるには、適切な開発会社選びも大切です。とはいえ、膨大な数の開発会社から自社に合う企業を探すのは至難の業。そこで、今回は最低限押さえておきたい選定ポイントを3つ紹介します。
企業の業績が安定しているか
保守や運用も含めて依頼するなら、10年単位の長い付き合いが想定されます。万が一開発会社が潰れてしまうと大きな影響を受けるため、業績が安定している会社を選ぶことをおすすめします。
企業の業績は、会社四季報やホームページのIR情報などから確認できます。
開発実績が豊富か
開発実績の豊富さは、技術力の高さを判断するための指標となります。
実績は、開発会社のホームページの情報や打ち合わせ時のヒアリング、設立年数などから予想できます。また、10年、20年と同じ会社と取引をしているようであれば、歴史と実績があると考えられるでしょう。また、依頼したいジャンルでの実績があるかどうかも重要です。
相見積もりを行い比較検討する
「見積もり価格は妥当か」「目的に合ったシステムを開発してくれそうか」などを見極めるには、複数社(3〜4社程度がおすすめ)から見積もりをもらって比較検討することも大切です。特徴の違いを比較しやすく、社内で稟議を通す際もプレゼンしやすいです。
逆に一括見積もりを依頼すると会社が多すぎて比較するのが大変です。どの会社も同じに見え、結局どの会社がよいか選びきれず、価格だけで決めて失敗してしまうでしょう。中途半端な提案を10社から受けるより質の高い提案を3社から受けるほうが効率的。
相見積もりを行いたい方は、システム幹事にご相談ください。専門のアドバイザーがあなたの要望をヒアリングし、予算や目的に合う最適な開発会社を選びます。厳選された会社の中から効率的に比較検討していただけます。
IT開発を外注するときの注意点
さらに、IT開発の外注を成功させるために気をつけておきたい注意点を紹介します。
これらを押さえておかないと無駄に費用がかかったり、要望通りのシステムが出来なかったりする原因となります。
要件を明確にする
どのようなシステムを作りたいのか不明確だと、開発が進まない原因になり得ます。要件定義や設計が後ろ倒しになったり、追加の開発や修正が必要になる場合があるからです。あるいは、無駄に高機能になり予算を超えてしまう可能性もあります。
開発の流れの「準備」で解説した目的や納期、必要な機能は明確にして外注先に伝えましょう。また、必要な機能の中でも優先順位をつけておくことも大切です。
IT開発を依頼する際に役立つ8つの準備を説明した記事もありますので、参考にしてください。
関連記事:システム開発の依頼準備8点!プロジェクトを成功に導く外注ガイド
また、要件を固めていく中で多少の仕様変更は発生するものですが、画面のレイアウトや機能の変更を何度も求めるなど、不用意な仕様変更を繰り返すことは避けましょう。外注先に大きな負担をかけてしまい、納期に間に合わなくなったり、品質が落ちたりする原因になります。
過度な要求をしない
・極端に低い予算で進めようとする
・必要以上に打ち合わせや資料を求める
・タイトすぎるスケジュールを要求する
上記のような過度な要求は外注先に負担をかけてしまい、品質が落ちる原因になり得ます。
相場に比べて極端に低い予算で進めるのは実は危険です。少ない人員で無理に開発を進めようとすると、結果的に品質が落ちる可能性があります。また、そもそも安すぎる見積もりを出してくる会社は、技術力が低いなど安いなりの理由がある可能性があり、注意が必要です。
必要以上に打ち合わせや資料を要求することも、開発を妨げる原因になります。納期の変更を一切認めない、タイトすぎるスケジュールを要求するなども避けましょう。外注先が開発にかけられず時間が減ってしまいます。
状況によっては、納期の変更や打ち合わせの削減を認めることも必要です。
システム運用の依頼も検討しておく
システムは作って終わりではなく、リリース後も継続的に運用や保守をしていく必要があります。
システム開発を外注する場合は、運用・保守の方針や予算を決めておくことも重要です。目安として、運用費は開発コストの5%前後。300万円で開発したシステムであれば運用・保守費用は月15万円ほどかかり、1年間で180万円になります。
「運用」は、開発・リリースされたシステムを継続的に安定して稼働させるため、管理・監視を行うこと。「保守」は、障害が発生した際に原因を究明してシステムを復旧・修正すること。
運用だけでなく、万が一トラブルが発生した場合の「保守」も頭に入れておくことが大切です。運用や保守の詳しい中身や、どこに任せるべきかなどは下記の記事を参考にしてください。
関連記事:システム運用とは?開発との関係・保守との違い・重要性・作業内容を解説!
IT開発で覚えておきたい略語一覧と用語解説
最後に、IT開発で覚えておきたい略語と用語の解説をします。上の図はV字モデルと呼ばれ、今回説明したウォーターフォール型のIT開発をV字に置き換えたもの。例えば要件定義で決めた内容が正しく実装されているかは、隣の総合テストで検証します。基本設計の内容を検証するのは結合テストになります。
IT開発の現場では多くの略語が用いられます。外注先との打ち合わせ時や資料の確認時にコミュニケーションを円滑に進めるために、発注者も略語を押さえておくとよいでしょう。もちろん、略語だけでなく用語自体の意味を理解しておくことも大切です。
企画~要件定義で使われる略語
用語 |
略語 |
英語表記 |
企画 |
SP |
System Planning |
要求分析 |
SA |
System Architectural design |
要件定義 |
RD |
Requirement Definition |
それぞれ混同されやすい用語ですが、以下の通り違いがあります。
・企画:新たなサービスやシステムを提案すること
・要求分析:ユーザーがシステムに求める仕様を定義したもの
・要件定義:技術者がシステムを動かすための仕様を定義したもの
目的に合ったシステムを作るために大切なのは、ユーザーが求めている希望(要求)とシステムの仕様(要件)がマッチしているかどうか。さらに、発注者と開発会社の間で要件の認識が合っているかも重要です。要件の認識に齟齬があると、想定していた機能が入っていない、出戻りが発生するなどのトラブルにつながります。
設計で使われる略語
用語 |
略語 |
英語表記 |
外部設計 |
ED |
External Design |
UI基本設計 |
UI |
User Interface |
基本設計 |
BD |
Basic Design |
内部設計 |
ID |
Internal Design |
詳細設計 |
DD |
Detail Design |
構造設計 |
SS |
System Structure Design |
機能設計 |
FD |
Function Design |
プログラム設計 |
PD / PS |
Program Design |
一口に「設計」といってもさまざまな定義があるもの。ここではざっくりとした説明にとどめますが、それぞれの用語の定義は以下の通りです。
・UI基本設計:画面や帳票のレイアウトなどユーザーが操作する機能の設計
・基本設計・外部設計・機能設計:画面や操作方法などユーザー向けの仕様の設計
・詳細設計・内部設計・構造設計:動作や機能、データなどシステム内部の設計
・プログラム設計:プログラムの動作や処理の内容、データの流れの設計
発注側が大切なのは、設計書に対して的確なフィードバックを行い、開発会社とのすり合わせを行うことです。
開発で使われる略語
用語 |
略語 |
英語表記 |
プログラミング |
PG |
Program / Programing |
コーディング |
CD |
Coding |
・プログラミング:プログラムを作成する作業全般のこと
・コーディング:プログラミング言語でソースコードを作成すること
上の画像を見ても分かる通り、コーディングはプログラミングの一部といえるでしょう。
また、一般的にプログラミングを行う人を「プログラマ」、コーディングを行う人を「コーダー」といいます。
テストで使われる略語
用語 |
略語 |
英語表記 |
単体テスト |
UT |
Unit Test |
結合テスト |
IT |
Integration Test |
システムテスト |
ST |
System Test |
総合テスト |
PT |
Product Test |
受け入れテスト |
UAT |
User Acceptance Test |
テストでは大きく4つの工程が実施されます。
単体テスト:画面や機能ごとに、動作の検証をする
結合テスト:他の機能やシステムと連携させて、動作の検証をする
総合テスト・システムテスト:本運用を想定しシステム全体の動作を確認
受け入れテスト:納品前に仕様書の通り完成しているか確認する
総合テストはシステムテストと同じ意味で使われます。受け入れテストはユーザーである発注側がテストを担当するため「ユーザーテスト」と呼ばれる場合もあります。
関連記事:システム開発のテスト工程を徹底解説!
IT開発で外注前に知っておくべき基礎知識まとめ
開発手法や開発の流れ、費用相場など外注前に知っておくべき基礎知識を紹介しました。
・IT開発には複数の開発手法がある
・スムーズな依頼のために発注側も開発の流れを理解しておくことが大切
・開発費用は機能や規模によって大きく異なる
・開発の成功には外注先の選定ポイントと注意点を押さえておくことが大切
・外注先との円滑なやり取りのために略語を覚えておくとよい
IT開発のための十分なノウハウやリソースが自社にないなら、外注を利用するのがよいでしょう。
外注先は、自社の導入目的や予算に合わせて選ぶことが大切です。選定に迷う方は、システム幹事にご相談ください。予算や目的から最適なツールや会社をご紹介します。相談料などは一切かかりません。
コンサルタントのご紹介
岩田
専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。
Q. IT開発とは何ですか?
IT開発とは、業務の効率化や顧客満足度の向上といった課題を解決するために、ITシステムを構築することです。クライアントの要望やプロジェクトに応じて、適切な開発手法が使い分けられています。
Q. IT開発を外注する際の注意点は?
IT開発を外注する際の注意点は「要件を明確にしておく」「過度な要求をしない」などです。詳細は記事内で紹介していますので、ぜひご覧ください。
この記事を書いた人
七瀬 ユウ
専門分野: Webライティング
新卒で大手Slerに入社し、基幹システムの開発・プロジェクトマネジメント業務に従事。転職後、WEB広告企業でセールスライターの経験を経て、現在はフリーランスWEBライターとして活動中。「読者目線で分かりやすい記事を届ける」をモットーに執筆します。
このライターの記事一覧