VNEXTの会社紹介資料
2024/03/10
システム開発とは、IT技術を活用して業務の効率化を図る「仕組み」を作ることです。
IT技術の発展により、企業は業務効率化や課題解決のために企業のあらゆる仕組みをシステムでまかなうことが当たり前になってきました。
しかし、初めてシステム開発を行う場合、開発・導入の流れや費用がわからず、外注に躊躇するケースも少なくありません。
本記事では、システム開発の基本から開発工程や手法、費用相場、外注時に注意すべきポイントについて解説します。
目次
● システム開発とは?● システム開発の工程● システム開発の手法と特徴● システムの構築方法● システム開発にかかる費用相場● システム開発に関わる関係者と役割● システム開発を依頼する際の注意点● システム開発の外注先の探し方● まとめ● システム開発を外注するならVNEXTへ |
|システム開発とは?
システム開発とは、IT技術を活用して業務の効率化を図る「仕組み」を作ることです。
たとえば、企業の財務会計、販売管理、在庫管理などの業務を一括管理するために、ツールを作成するのはシステム開発の例にあたります。
システムを開発する時、プロジェクト責任者をはじめに、システムエンジニア(SE)、プログラマー(ソースコードを書く人)、テスターやデザイナーなどの存在が欠かせません。お客様の要求に応じて、開発チーム体制・進め方も異なります。
しかし、開発に必要なノウハウや人材がなく、自社での開発が困難な企業もあります。したがって、外部のシステム開発会社へ依頼する企業も多いのです。
|システム開発の工程
システム開発の一般的な工程は、下記の流れになります。
- 要件定義・・・システムに搭載したい機能をまとめる
- 基本設計(外部設計)・・・システムの外的要素を決める
- 詳細設計(内部設計)・・・基本設計で定義されたシステムの詳細な実装方法(プログラミング方法)を計画する
- 開発(プログラミング)・・・実際にプログラミングを行なう
- 単体テスト・・・プログラムのパーツごとに動作確認を行なう
- 結合テスト・・・全体の動作を検証する
- 最終テスト・・・実務環境でのテストを行う
- リリース・・・実際に利用を開始する
- 運用・保守・・・システムを安定稼働させるために管理する
各工程の詳細については下記の記事で詳しく解説していますので、あわせてご覧ください。
|システム開発の手法と特徴
システム開発の手法にはいくつかのタイプがあり、異なる特徴や適性を持っています。
そのため、開発するシステムの目的や要件に応じて、自社に最も適した手法を選択することが重要です。
特に大きな違いとなるのが、「ウォーターフォール型」と「アジャイル型」という2つの主要な開発であり、対照的な特徴を持っています。
開発手法 | ウォーターフォール型 | アジャイル型 |
特徴 | 最初に完成図の計画・設計を行い開発する | ニーズの変化をリアルタイムに反映しながら、計画からリリースまでの開発サイクルを短期間で繰り返す |
主な採用シーン | 要件が変化しにくい社内向けの基幹・業務システム | ユーザー向けのアプリケーション開発など、柔軟な変更が必要なプロジェクト |
主な契約形態 | 請負契約 | 準委任契約(ラボ契約) |
|ウォーターフォール型
ウォーターフォール型は「順次型」とも呼ばれ、滝が流れるように、各工程を順番に実施していく開発手法です。
システム開発は基本的に6つの工程に分けられます。ウォーターフォール型の開発では、ひとつの工程が完了してから次の工程に進みます。
この手法は、社内向けの基幹・業務システムのように、システムに求める仕組みやニーズが開発中に大きな仕様変更が生じにくい場合に適しています。
また、内部統制にかかわる業務のように堅牢性が重視される場合や、計画通りに開発を進める必要性の高いプロジェクトに採用されることが多いです。
ウォーターフォール型の主なメリット・デメリットは下記のとおりです。
メリット |
・各工程に必要なリソースの見積りがしやすいため、スケジュールが立てやすい ・「今どの工程まで進んでいるか」が明確になるため、全体の進捗が把握しやすい |
デメリット |
・全体のシステム設計をしっかりと行ってから次の工程に進むため、納期までの時間が長い ・工程ごとに担当者が異なる場合が多く、手戻りが発生した場合に時間調整が必要になるなど、時間的ロスが大きい |
ウォーターフォール型は、各フェーズが明確に分かれているため、進行管理や予算や人的リソースの投入がしやすくなります。
一方、最初に確固とした枠組みを固めてしまうため、途中での仕様変更が難しいことが難点です。トラブル発生時の手戻りに手間がかかるだけでなく、ユーザーの声を途中で反映させた仕様変更ができません。
また、ウォーターフォール型では最初から明確に定められているプロジェクトの要件や範囲に基づいて固定の成果物と納期を定めることができます。そのため、雇用形態としては、成果物に対して報酬を設定する請負契約が一般的です。
|アジャイル型
アジャイル型とは、要件定義からリリースまでの開発プロセスを短期間で繰り返しながらシステムを作りこんでいく開発手法です。
「開発には仕様の変更がつきものである」という前提に立ち、おおまかな仕様にもとづいて開発を始めます。
アジャイル型の特徴は、柔軟な仕様変更や要望を反映しやすいことです。
そのため、クライアントの要望や市場の変化に対する迅速な対応が求められる社外向けのシステム開発に特に適しています。
アジャイル型の主なメリット・デメリットは下記のとおりです。
メリット |
・仕様変更に柔軟に対応できる ・動作を早い時期に確認できる |
デメリット |
・開発に必要な時間やリソースの見積りが難しい ・スケジュール管理や担当の割り振りなどがしづらい |
また、アジャイル型の代表的な方法論には「スクラム」と「スパイラル」という手法があります。
アジャイル型の種類 | 概要 |
スクラム | 短い期間(通常は2〜4週間)のスプリントというサイクルを繰り返して開発する。各スプリントの開始時には、その期間で達成する目標を設定し、終了時には成果物のレビューと次のスプリントの計画を行う。 |
スパイラル | システムを機能単位(サブシステム)に分割し、各プロトタイプの評価・改善をしながら順番に開発をする。これによって手戻りのリスクを最小限に抑えながら開発を進める。 |
アジャイル型はその柔軟性の高さが最大の特徴ですが、これにより仕様変更が多発し、プロジェクトの範囲が大きくなってしまうことで予定よりもコストや時間を使ってしまう可能性があります。
また、開発サイクルを高速で繰り返すことで、情報共有が疎かになってしまったり、テストや品質保証が十分でなかったりする場合もあります。発注側がプロジェクトマネジメントを行い、テストや品質保証を指揮することが重要になります。
契約形態としては、仕様変更などによる業務の追加に柔軟に対応できるよう、成果物ではなく時間単位で報酬が発生する準委任契約が一般的です。
|システムの構築方法
システムの構築方法には、主に「スクラッチ開発」と「パッケージ開発」の2つに分かれます。
開発するシステムの種類や仕様によって、どの構築方法が合っているのかを見極めることが必要になります。
|スクラッチ開発
スクラッチ開発とは、既存のパッケージソフトを使わず、ゼロからシステムを開発することです。
既存のパッケージソフトにはない処理が必要な場合や、他社との差別化を図りたい場合などは、スクラッチ開発をすることになります。
ゼロベースから始めるので、オリジナルのシステムを作ることができ、独自性は保たれることが最大の魅力です。その反面、人件費・時間・労力・金銭面の負担が大きくなることが高いハードルになります。
スクラッチ開発の主なメリット・デメリットは下記が挙げられます。
メリット |
・自社のニーズにマッチしたシステム構築が可能 ・他社との差別化が図れる ・ノウハウも権利も自社にあるため、長く使い続けられる |
デメリット |
・ゼロから作り出すため、開発期間とコストがかさむ ・プロジェクト担当者とエンジニア間のコミュニケーションを密にとる必要がある |
|パッケージ開発
パッケージ開発とは、ひな形となっている既存のシステムを活用する開発のことです。
標準的な処理を組み込む場合や、システム全体を標準化したい場合などに取り入れられます。
既存パッケージのパラメータを一部変更すれば組み込めるものも多いため、手間をかけずに開発することができます。
気に入ったシステムがあればそのまま使用することも可能ですし、カスタマイズすることもできます。また、低コストで済む場合が多いのも特徴です。しかし、独自性に関してはほぼ皆無で、既存システムにない機能を欲する場合は活用が難しいでしょう。
パッケージ開発の主なメリット・デメリットは下記が挙げられます。
メリット |
・開発期間とコストを削減できる ・プログラミングにそれほど詳しくない人でも対応できる |
デメリット |
・柔軟な仕様変更に対応できない ・パッケージソフトメーカーのサポートが終了すると、システムを作り直す手間が生じる |
|システム開発にかかる費用相場
システム開発を検討している方にとって、開発期間や費用相場がどれくらいなのかは非常に気になる点です。しかしシステム開発の相場は、一概に言い切れるものではありません。企業の規模、要件、システムの複雑さなどによって、開発に必要な期間や予算は大きく異なるからです。
ここでは、システム開発の外注費用がどのように決まるのかをご紹介します。
|人件費が8割を占める
システム開発にかかる費用は、人件費が8割を占めるといわれています。
システム開発にはシステムエンジニアをはじめ多くの技術者が関わるため、必然的に人件費のウエイトが大きくなります。システム開発に必要な人件費を決めるのは「人月」と呼ばれます。これは技術者が1日8時間、1ヶ月20日作業を行なうことを仮定して計算される単価です。
分かりやすく言えば、「1人の技術者が20日間、1日8時間稼働してこなせる仕事量」が「1人月」として表されます。
具体的な人月の相場は、システムエンジニアやプログラマーなどの職種、スキル、企業の規模によって異なります。たとえば、都市部の大企業であれば、システムエンジニアの単価1人月は100万円~150万円程度が相場です。同じ条件のプログラマーの場合、単価1人月は60万円~100万円程度が目安となります。下請け企業や個人事業主、地方企業の場合、技術者の1人月は若干安くなるのが特徴です。
人件費の計算方法は、プロジェクトに必要な技術者の数に、開発にかかる日数を掛けて計算されます。
例)1人月100万円のエンジニアを3人、3ヶ月間稼働させた場合 ▶︎ 人件費:100万円 × 3名 × 3ヶ月 = 900万円
また、日本はIT人材不足により人件費が高騰しています。スキルレベルが高いエンジニアほど需要が高まるため人材の確保が難しく、上級レベルのエンジニアであれば人月単価は120万円〜200万円が相場となっています。
そのため、日本のシステム開発会社に外注するとなると必然と開発コストが高くなる傾向にあります。
そこで、近年日本企業で導入が進んでいるのが「オフショア開発」です。
オフショア開発は、人件費の安い海外のリソースを活用して開発を行うため、優秀なエンジニアの確保やコスト削減が可能になります。
オフショア開発については下記の記事で詳しく解説していますので、あわせてご覧ください。
▶︎ オフショア開発とは?意味やメリット、成功させるためのポイントを徹底解説!
|人件費以外にかかる費用
人件費以外に、次のような費用がかかるケースもあります。
・システム開発をするための設備費(パソコン代、サーバー代、クラウドサービス代など)
・開発を行うためのスペースを用意する費用(オフィスの賃料、電気代、光熱費など)
・技術者の交通費 など
外注を検討する場合は、人件費だけでなく、全体的な費用を把握し予算を検討するようにしましょう。
|システム開発に関わる関係者と役割
システム開発に関わる関係者 | 主な業務 |
SE(システムエンジニア) | システムの要件定義や設計、プログラミングなど |
PG(プログラマー) | システムのプログラミングやテストなど |
PM(プロジェクトマネージャー) | プロジェクト全体のマネジメント、進行管理など |
PMO(プロジェクトマネジメントオフィス) | 人材開発やコスト調整、ディレクションなど |
|SE(システムエンジニア)
SE(システムエンジニア)の主な担当業務は、システムの要件定義を確定させることです。
システムへ導入する機能を練ったり、システムの外部・内部設計の詳細を考えたりしてシステム全体の構造を練っていきます。同時に、SEが後述するプログラマーのようにシステムのプログラミングを担うケースもあります。
|PG(プログラマー)
PG(プログラマー)は、要件定義をもとにシステムのプログラミングを行なっていきます。
プログラミングのほか、プログラムを正常に作動させるのに必要な「単体テスト」を行なうのもPGの役割です。
|PM(プロジェクトマネージャー)
プロジェクト全体のマネジメントを担うのが、PM(プロジェクトマネージャー)です。
システム開発の関係者の中でも、多くの決定権を持っているポジションと言えるでしょう。設計やプログラミングといった実作業よりも、プロジェクトに携わるメンバーの進行管理やトラブル対応などを重点的に行ないます。
|PMO(プロジェクトマネジメントオフィス)
プロジェクトマネジメントオフィスを意味するPMOは、さまざまな視点からプロジェクトマネジメントをサポートする構造システムや部門です。
具体的なサポート内容は、人材開発やコスト調整などがあります。加えて、プロジェクト始動からシステム開発完了までのディレクション業務を支える役割も担っています。PMOは、前述したPMよりも細かな管理を担うことが多く、「PMの補佐」とも言える立ち位置です。
|システム開発を依頼する際の注意点
システム開発を依頼する際は、いくつか注意すべき点があります。外注先を選ぶポイントもあるため、しっかり把握しておきましょう。
|開発の目的・ゴールを明確にする
まずは、システム開発・導入の目的を明確にしましょう。
システム開発に限らず、新たな制度などの導入の際にもいえることですが、目的を明確にしておかないと、導入そのものが目的化してしまうなど、導入失敗につながりやすくなります。
どうなればシステム開発が成功したといえるのか、具体的なゴールを設定しておきましょう。
目的を明確にすることで、「どんな機能を搭載したいのか」「マストで搭載したい機能は何か」という優先順位を決めやすくなります。
|想定機能を洗い出しておく
システム開発会社に依頼をする際、大切なのはシステムに必要な想定機能の洗い出しです。
開発するシステムに、「どんな機能を欲しているのか」「その中でも優先してほしい機能はどれか」を決めておきましょう。
また、想定機能が先に決まっていれば、依頼するシステム開発会社も絞りやすくなり、依頼がスムーズに進みます。
|開発実績やエンジニアの質を確認する
費用の安さだけでなく、開発実績やエンジニアのスキルも重視しましょう。
「取引実績」がその指標になります。同じお客様とのお付き合いが数十年以上続いているのであれば、実績と信頼を勝ち得ている開発会社だといえます。可能であれば、エンジニアと直接やり取りをしてスキルを確認することも大切です。
|RFP(提案依頼書)を作成しておく
上記のような「求める機能」を、システム開発の最初のステップである「要件定義」で要件定義書に落とし込むことになりますが、それは、システム開発会社を決めた後のステップです。
システム開発会社の選定段階では、複数の候補会社へ自社の要望をまとめた「RFP(提案依頼書)」を提出して提案を受け、最も良い提案をしてくれたシステム開発会社に決定します。
RFPを作成する過程で依頼内容を整理でき、RFPが拠り所となってシステム開発との認識を合わせられるため、できるだけ作成しましょう。
RFPの基本と書き方については、下記の記事で詳しく解説していますので参考にしてみてください。
▶︎ 【RFPとは?】RFPの基本と書き方のポイントをわかりやすく解説!
|1社だけではなく複数の見積もりから外注先を探す
外注先を探す際は、複数の開発会社から見積もりを出してもらいましょう。
システム開発の費用は、開発期間や開発に必要な技術者の人数によって変動します。大まかな相場を掴むためにも複数社に見積もりを依頼することが大切です。
また、上述のRFPを作成し提出することで、同じ条件で開発会社が見積もりを出すためシステム開発の費用相場がわかります。
|コミュニケーション能力の高い会社を選ぶ
システム開発を依頼する場合、依頼側と受注側のコミュニケーションが非常に重要です。
認識にズレが生じているまま開発が進んだ場合、システム完成後に「思っていたものと違う」と後悔する可能性があるためです。
のちにシステムの修正が必要となった場合は、追加費用が必要になることも考えられます。システム開発のコミュニケーション能力にも注目をして、外注先を選定しましょう。
|システム開発の外注先の探し方
最後に、システム開発の外注先を探す方法を3つご紹介します。
|マッチングサイトを利用する
「選択肢が多すぎてどこに依頼すべきかわからない」という方に適しているのが、専用のマッチングサイトを使う方法です。
こうしたマッチングサイトでは、システムの種類や予算などの諸条件にあわせて、自社に適した開発会社を紹介してくれます。
不動産サイトや転職サイトなどを連想すると、分かりやすいかもしれません。
マッチングサイトには数多くの開発会社が登録しているので、条件にあった会社を簡単に複数見つけ、登録情報の確認や相見積もりなどを通して詳細に比較検討できるのがメリットです。依頼内容や予算、開発期間などをマッチングサイトで相談することで、条件に合った開発会社を提案してもらえます。
|展示会に訪問して探す
複数の開発会社が参加する展示会や交流イベントに参加するのもひとつの方法です。
こうしたイベントに参加すれば、開発会社の方と直接話すことができるので、細かくやりとりしたり、相手の人柄を確認したりできるのがメリットです。
ただし、展示会に参加しているどの企業が自社に適しているのか、その場では一見して分かりにくいことがデメリットとして挙げられます。
|知り合いなどから紹介してもらう
信頼のおける取引先や知人などに知己の開発会社を紹介してもらう方法も有効です。
特に、自社と同じ業界や同じようなビジネスモデルの企業からの紹介は、自社の要件に合った開発会社を見つけるのに役立つことが期待できます。実際にその開発会社と関わったことのある人からの率直な感想は、非常に参考になります。
一方で、紹介の場合はマッチングサイトと比べ、自然と選択肢や情報量が限られるのが難点です。
|まとめ:システム開発の効率化を実現し、組織を活性化させよう
システム開発は、企業規模や目的に応じて適切な手法を選ぶ必要があります。
どのようなシステムを開発するかはもちろん、開発手法の選択、外注先の選定方法など、自社の状況や求める要件に応じて決める必要があります。
適切な理解と熟慮の下でシステム開発を行うことが、IT活用で成果を出すためには非常に重要です。
|システム開発を外注するならVNEXTへ
弊社VNEXTは、15年以上に亘り、システム・アプリの受託開発のサービスを提供しています。
これまでにスタートアップから大手企業まで350社以上の取引先に、700件以上の開発支援を行っております。
また、ベトナムオフショア開発により、日本企業で開発する場合と比較し開発コストを約1/3に削減することが可能です。また、アーキテクチャ設計から構築までの経験を持つエンジニアや、クラウドなど最先端技術に関する資格を有したスタッフが多いため、提案から要件定義・設計・構築を一貫して行うことができます。
《対応分野》
・Webシステム全般
・基幹システム
・業務系システム
・ECサイト
・マッチングシステム
・Webサイト
・CRM
・ERP(SAPなど)
・RPA
・SFA
・IoT
・ブロックチェーン応用システム など
システム開発の外注先をお探しの方は、一度VNEXTにお気軽にご相談ください!
▶︎ システム開発サービスの詳細はこちら