システム開発を自社内や外注で行うことを検討している企業へ向けて、システム開発の基礎知識や開発の流れを解説します。
さらに、コスト面や外注先の企業選定で失敗しないよう注意点や外注先企業の探し方についても解説します。
システム開発をスタートする前に、効率よくシステム開発を行うためのポイントも知っておくことで事前準備がスムーズになります。
1.システム開発とは
システム開発とは、企業の業務の仕組みをシステム化すること、または家電や通信機器などの電子機器を管理するためにシステムを構築することをいいます。
業務のシステム化では、顧客情報を管理するシステムや、所属する従業員の勤怠管理システムの構築などが例として挙げられます。
システム開発の種類
システム開発の方法は多岐にわたりますが、一般的なものとしては主に4種類に分類されます。それぞれの概要について説明します。企業やシステム開発会社によっては、紹介した方法以外の独自の開発手法でシステム開発を行うケースもあります。
①ウォーターフォール型
ウォーターフォール型は、事前の打ち合わせを重視している開発方法です。事前の打ち合わせで開発要件を入念に固めるため、実際に開発がスタートするまでに時間を要します。
前の工程に戻って修正することがないよう、それぞれの工程を着実に進めていきます。ひとつの工程が完了して要件が確定すると、修正ができなくなるため注意が必要です。
②アジャイル型
システム完成までのスピードを重視する開発方式をアジャイル型開発といいます。これは前の工程に戻って修正が発生することを前提として開発を進める方法です。
依頼側と開発する側が密に連携を取り合い、まずは優先順位の高い機能だけを搭載した試作品を作成します。
その試作品で動作の確認や運用テストを行い、ムダなものを削ったり追加したい機能がでてくれば柔軟に仕様変更を行い完成品に近づけていきます。
③スパイラルモデル
ひとつの工程が完了するごとに要件チェックを行なう開発方法をスパイラルモデルと呼びます。
工程ごとにシステム開発を進めながら、それぞれの工程が完了次第、その都度依頼側へ試作品が共有されます。依頼側は試作品で動作確認やテストを行い、開発側へフィードバックをします。
フィードバックの内容をもとに開発側が改めてシステムの修正・改修を行う工程を繰り返し、システムをブラッシュアップしていきます。
スパイラルモデルは工程ごとにシステムの機能や使用感を確認できるため、柔軟に仕様変更ができる点がメリットです。
④プロトタイピング
システム開発におけるプロトタイプ(初稿)提出までのスピードを重視した開発方法です。
先程のスパイラルモデルとは違い、工程ごとの動作確認やテストは行いません。
毎回完成の状態まで出来上がった試作品を依頼側へ提出し、依頼側もシステム全体の検証を行った上でフィードバックします。
この過程を繰り返すことで本当の完成品として納品できる状態まで仕上げていきます。
2.システム開発の費用相場
システム開発にかかる費用の約8割を人件費が占めており、費用の大部分は技術者(システムエンジニア等)への支払いになります。
また、開発にかかる総費用に関しては、どのようなシステムを開発するかによって相場が変わってくるため、実際に開発する際には注意が必要です。
-
- 業務系システム開発:約300〜1,000万円
- Web系システム開発:約50〜500万円
- スマホアプリ開発:約50〜300万円
上記はあくまで目安であり、費用はシステムの仕様や設計等によって大きく変動します。まずは見積もりを取得して概算の費用を把握した上で開発検討を進めるとよいでしょう。
3.システム開発の流れ
社内でシステム開発をする場合にも外注する場合にも適用される、一般的なシステム開発の流れを解説します。
実際にシステム開発作業を行うシステムエンジニアとプログラマーの担当領域は依頼内容やプロジェクトの内容によって変動しますが、一般的にシステムエンジニアは要件定義・設計と運用サポート、プログラマーはエンジニアが作成した設計書をもとにプログラミング作業を行います。
要件定義
システム開発を社内で行う場合も外注の場合どちらでも、まずは本来のシステム開発の目的を明確にする要件定義を行います。
企業が抱えている課題を解決するためにどんなシステム開発が必要なのか、システム開発を行うことでどんな目的を達成したいのかなどをクリアにします。
次にどの部分をシステム化するか、どんな開発を行うかなど詳細部分についても決めていき、その上でハードウェアの構造とソフトウェアの機能も決定します。
要件定義ではこれらの内容と併せて、開発期間がどのくらいかかるかのスケジュール策定やコストの概算についても算出します。
外部設計・内部設計
設定した要件定義に従い、システムで実現させたい機能を決定する外部設計を行います。
データを入出力する際の画面などを含め、全体のインターフェースを考慮して設計を行わなければなりません。
依頼側としっかり打ち合わせを行いユーザー目線で作成します。
外部設計が完了したら、決定した機能を開発するための具体的な方法を設計する内部設計へ移ります。
内部設計では、プログラマーが実際に作業を行うためのシステム仕様書を作成します。
外部設計はユーザーが使いやすい視点で考え、内部設計はプログラマーに伝わりやすい内容で作成する必要があります。
プログラミング
内部設計でエンジニアが作成した仕様書に沿って、実際にプログラマーがシステム開発の作業に着手しプログラミングを行っていきます。
仕様書は、基本的に必要最低限のシンプルな指示しか記載されていないことが多く、求められている動作をどんなコードで作成するのかはプログラマーの技量次第です。
また、プロジェクト自体にプログラマーがアサインされていない場合は、システムエンジニアがプログラミングを行うこともあります。
仕様書を作るのはエンジニアのため、そのままエンジニアがプログラミングを実施することで作業がスムーズに進む場合もあります。
テスト・試運用
プログラミングが完了したら、システムがスムーズに動作するかテストを行います。
テストで不具合や仕様書通りになっていない部分が見つかれば修正を行い、もう一度テストを行うという工程を繰り返していきます。
テストは様々な視点から複数回行われます。実施されるテストの種類は、プログラムのパーツごとに動作確認を行う単体テストや全体の動作を検証する結合テストなどが一般的です。
不具合がなくなった時点で最終的に実務環境での試運用を行い、問題がなければ完成品としてリリースされます。
納品した後もシステムの不具合や追加の要望などがあれば修正・改修を行います。また、安定した運用のために定期メンテナンスも必要です。
4.システム開発を効率よく行うためのポイント
システム開発には複数の工程があるため、どこか一つの工程で修正が発生するとその前の工程にさかのぼって修正が必要になるケースもあります。
この場合、要件定義で想定していた工数以上に時間がかかってしまうことがあります。修正を極力発生させずに効率よく開発を行うためには、まず「システム開発をなぜ行うのか」という目的を明確にする必要があります。
システム開発の工程の中で単純作業に時間がかかるなどの課題があれば、作業時間を短縮するためにツールの導入を検討しましょう。
例えば、試作品のテストを自動化してくれるツールを使用することでテストにかかる時間を短縮すると共に、手作業の際に発生する可能性の高いヒューマンエラーによるミスも避けられます。
また、システム開発を効率的に行うためには、システムエンジニアへの教育も欠かせません。
実際に開発する人の能力が低くては、思ったようにシステム開発を進めることができないため、プロジェクトを通して教育が行えるようなメンバーの配置を心がけましょう。
開発メンバーに技術的に劣る人がいる場合は、能力が高い人の近くに配属しプロジェクトを通して教育を行うことで、技術力の向上が期待できます。
長い目でみて開発に関わるメンバーの技術力が上がることにより、システム開発をより効率的に行うことができるようになります。
5.システム開発の注意点
システム開発を外部に依頼する際の注意点としては、主に4つ挙げられます。
-
- 複数企業から見積もりを出してもらう
- 開発システムの目的を明確し、優先順位を付ける
- システム開発に対し、依頼先企業と念密にコミュニケーションを取る
- 開発費用だけではなく、実際に開発を行うエンジニアのレベルも確認する
システム開発にかかる費用は、開発期間や人件費によって大きく変動します。
システム開発を初めて外注する場合は、大まかな費用相場を掴むためにも複数のシステム開発会社を候補に選出し、同じ依頼内容でそれぞれの企業から見積もりをもらうようにしましょう。
開発を社内で行う場合も外注する場合も、担当するエンジニアの実績やスキルについて事前に確認しておくことが重要です。
エンジニアのスキルを考慮して開発スケジュールを組むことで、納期が遅延するトラブルも避けられます。
可能であればエンジニアの取引実績や過去の成果物を見せてもらうなど、直接やり取りをしてスキルを確認するのが良いでしょう。
また、理想のシステムを開発してもらうためにも、依頼先企業との念密なコミュニケーションは欠かせません。
詳しいシステムの仕様や設計等を上手く伝えることができないと、希望と異なる製品が納入されてしまうことになります。
要件と製品でずれが発生しないよう、進捗状況を常に把握しながら細かいすり合わせを行い開発を進めていくとよいでしょう。
6.システム開発の外注先企業を探す方法
システム開発を外注する場合、依頼側が持っている完成品のイメージと実際に完成した納品物に相違が出ないよう、入念なコミュニケーションがとれる企業を探す必要があります。
システム開発における完成品の品質は、予算や開発期間、そしてエンジニアの技量などに大きく左右されます。そのため自社の要求をスムーズに理解し、しっかりと形にしてくれる開発会社を慎重に選ばなければなりません。
マッチングサイトを利用する
システム開発を初めて外注する場合や、開発会社の選択肢が多すぎてどこに依頼してよいのかがわからないというケースに適しているのが、システム開発専用のマッチングサイトを利用する方法です。
これはシステム開発を依頼したい企業と、システム開発会社が効率よく取引できるよう作られたサービスで、システム開発の外注を検討している企業がサイトへ登録し、依頼内容や予算、開発期間などを提示することで条件に合った開発会社を紹介してもらえるという仕組みです。
ビジネスマッチングサイトの利用料金は無料であることが一般的ですが、中には料金が発生するサイトもあります。
サイトに登録し、依頼内容や予算などを掲載する時点で料金がかかるものや、システム開発会社とのマッチングが成立した時点で料金が発生するものもあります。登録前に料金体系を確認してから登録するようにしましょう。
システム系の展示会などに訪問する
システム開発会社との接点を探す方法は、マッチングサイトだけではありません。
複数の企業が出展している展示会へ行き、依頼先企業を探す方法もあります。このような展示会に参加するメリットは、マッチングサイトのように事前にサイトへ登録し、依頼したい内容や予算などの情報を入力する手間が省ける上、気になった企業があれば開発関係者と直接話せるのが魅力です。
しかし、出展している企業の数が一定数以上あるため、ひとつひとつの企業をじっくり比較できず選びにくいというデメリットもあります。
展示会の限られた時間の中で1社ごとに詳細を相談することは難しいため、気になる企業があれば複数社と連絡先交換を行い後日商談を設定する方法もおすすめです。
取引先企業などから紹介してもらう
業界内で他社と情報交換をする際や、取引先でシステム開発の外注実績がある企業から紹介してもらう方法も有効です。
親交がある企業や取引先企業からの紹介ならば安心感もあり、自社だけで外注先を探す時間的なコストなども削減できます。
しかし、事前に外注した納品物などの感想も聞けるため一定の信頼性が担保されますが、紹介された企業だからといって自社が抱えている案件に必ずしも適した企業とは限りません。
紹介されたシステム開発会社の得意分野や取引実績、システムエンジニアの実績などをしっかりと確認し、自社の案件とミスマッチが起きないよう慎重に選びましょう。
7.まとめ
システム開発の外注先を選ぶ際は、慎重に選定する必要があります。システム開発の完成品の品質は、開発期間や予算、そしてエンジニアのスキルに左右されるためです。
スキルや技術面はもちろんのこと、自社の過大に真摯に向き合ってくれる担当者がいて、納品後の保守やサポートなども真摯に対応してくるかどうかも重要なポイントです。
自社に合った開発会社の選び方がわからない、どんな企業が自社の要求にマッチしているのかがわからない場合はまずはマッチングサイトを活用してみるのも良いかもしれません。
また、社内でシステム開発を行う際には、人材面や社内の負荷面での開発可否の確認が必要となります。開発可否の確認だけでなく、必要性や開発目的等を具体的に考えた上で検討を進めていきましょう。
【システム開発 関連記事】
▼システム開発に関して
▼契約形態に関して
オフショア開発ならHBLABへご相談ください
HBLABでは、ベトナムに特化したオフショア開発サービスをご提供しております。
オフショア開発の契約関連でお困りの方は、お気軽にご連絡ください。弊社の担当者が親身になって対応いたします。