1. ホーム
  2. ブログ
  3. System
  4. システム開発とは?開発に携わる関係者と主な流れを解説

システム開発とは?開発に携わる関係者と主な流れを解説

システム開発とは

システム開発は、企業にとって欠かせないものとなっています。しかし、システム開発は専門用語が多く、どんな工程で進められるのか、費用はどのくらいかかるのか、など疑問に思う方も多いのではないでしょうか。

この記事では、システム開発の概要や関係者、開発手法、費用相場について解説します。システム開発を検討している方は、ぜひ参考にしてください。

システム開発とは

システム開発とは、IT技術を用いてハードウェアの制御系やソフトウェアの構築を行うことです。企業が抱える課題を解決したり、業務の効率化を図ったりするために、システム開発は必要不可欠です。

システム開発は、大きく「上流工程」と「下流工程」に分かれます。

【上流工程】

上流工程は、システムに求められる機能や予算を決める要件定義や外部と内部の仕組みを決める基本設計などを行います。

【下流工程】

下流工程では、各機能のコーディング・テストを実施します。上流工程はシステムエンジニアが、下流工程をプログラマーが担うことが多いです。

システム開発は、さまざまなスキルを持った人材がかかわるため、多くの企業では内製化せずに外部へ依頼するパターンが多いです。

システム開発の関係者

システム開発には、さまざまな役割を担う人材が関わります。ここでは、代表的な役割を担う人材を紹介します。

システムエンジニア

システムエンジニアは、システムに求められる各機能やインターフェースなどの設計を担う人材です。開発工程にもかかわります。

クライアントとも打ち合わせを行い、チーム人員の募集など、開発現場にかかわる設計・企画も担う重要なポジションです。規模次第ではシステムエンジニアがプロジェクトマネージャを担う場合もあります。

プログラマー

プログラマーは、主に開発の現場で要件定義や設計に基づいてコーディングやテストを行うポジションです。

テストでは自分の担当箇所の動作確認を行う「単体テスト」を兼任する場合もあります。キャリアパスとしてはエンジニアになる場合が多く、数年の経験を積みエンジニアへのぼるための下積みと捉えられます。

プロジェクトマネージャー

プロジェクトマネージャーは、システム開発の裁量権を持ち、進捗管理や予算の配分など、開発よりマネジメントを担うポジションです。

クライアントとの打ち合わせや相談の窓口も担い、開発と要望のバランスを保つ舵取り的な存在です。規模の小さい個人の開発といった場合を除けば、必ずプロジェクトマネージャの存在が必要になります。プロジェクトの成否を分ける重要なポジションなため、システム開発の経験だけでなくマネジメントスキルも求められます。

プロダクトオーナー

プロダクトオーナーは、主にスクラム開発(アジャイル開発の手法の1つ)において設置されるポジションです。システム開発の舵取りを行い、システムの価値を向上させる役割を担います。

直接指示を出すプロジェクトマネージャーやエンジニアなど監督のような仕事内容ではなく、機能要件の調整やToDoリストの作成など成果物のクオリティに直結する業務内容が主体です。

プロジェクトマネジメントオフィス

プロジェクトマネジメントオフィスは、大規模な開発や複数プロジェクトの同時進行が起こる企業における、プロジェクトマネージャ配下のサポートチームです。

主にマネジメントに特化した業務内容を担い、プロジェクトマネージャの業務負担を減らし、意思決定におけるリスクを低減します。各プロジェクトの進捗管理や環境整備、人材育成など、包括的なマネジメント業務を遂行してプロジェクトを成功に導きます。

システム開発の手法

システム開発には、さまざまな手法が存在します。それぞれ特徴やメリット・デメリットがあるため、開発内容や規模に合わせて適切な手法を選択しましょう。

ここでは、代表的な以下4つの手法を紹介します。

  • ウォーターフォール型
  • アジャイル型
  • スパイラル型
  • プロトタイピング

ウォーターフォール型

ウォーターフォール型開発は、システム開発の工程を滝のように上から下に順番に進める手法です。要件定義、設計、プログラミング、テスト、リリース、運用・保守の各工程が明確に分かれており、工程管理がしやすく、ドキュメントも充実するため、品質の高いシステム開発が可能です。

しかし、一度工程が進むと前の工程に戻りにくいため、柔軟性に欠け、開発期間が長くなる傾向があります。また、ユーザーの意見が開発の後半でしか反映されないため、期待と異なるシステムが完成する可能性もあります。

ウォーターフォール型開発は、要件が明確で変更の可能性が低い大規模システムや品質が重視されるシステムに適しています。

アジャイル型

アジャイル型開発は、短いサイクルで開発を進め、ユーザーのフィードバックを随時反映することで、柔軟性と迅速性を重視した開発手法です。ウォーターフォール型と異なり、計画・開発・テスト・レビューを繰り返し行うことで、変化する要件にも対応し、ユーザーの

意見を反映した高品質なシステム開発を目指します。

スクラムやカンバンなどさまざまな手法があり、チームワークを重視し、ユーザーとの密な連携が重要となります。迅速な開発、柔軟な対応力、高品質なシステム、ユーザー満足度向上といったメリットがある一方で、進捗管理やドキュメント作成、チームメンバーのスキルなど、注意すべき点もあります。

アジャイル型開発は、要件が明確でないシステムやユーザーのフィードバックを積極的に取り入れたいシステム、迅速な開発が求められるシステムに適しています。

スパイラル型

スパイラル型開発は、ウォーターフォール型とアジャイル型の利点を組み合わせた手法です。システム全体の機能を優先順位付けし、優先度の高い機能から開発・実装を進めていきます。各段階でプロトタイプを作成し、ユーザーのフィードバックを得ながら、システムを徐々に完成させていく点が特徴です。

ウォーターフォール型のように事前にすべての工程を決めずに、アジャイル型のように短いサイクルで開発を進めるため、柔軟性が高く、変化する要件にも対応できます。また、段階的に開発を進めるため、リスクを早期に発見し、対応することが可能です。

スパイラル型開発は、大規模で複雑なシステム開発や、要件が明確でないシステム開発に適しています。しかし、開発期間が長くなる場合があり、開発の進捗管理が難しいという側面も持ち合わせています。

プロトタイピング

プロトタイピングは、システム開発において、事前に簡易的な試作品(プロトタイプ)を作成し、ユーザーや関係者からのフィードバックを反映しながら開発を進める手法です。

プロトタイプは、実際のシステムと同じように動作する必要はなく、ユーザーインターフェースや機能の概略を表現できれば十分です。紙やワイヤーフレーム、簡易的なソフトウェアなど、さまざまな方法で作成できます。

プロトタイピングのメリットは、ユーザーの意見を早期に反映できることです。実際のシステム開発に入る前に、ユーザーの期待や要望を理解し、開発の方向性を修正できます。また、開発中の問題点や改善点などを早期に発見し、対応することが可能です。

プロトタイピングは、ユーザーの意見が重要なシステム開発や、開発途中で仕様変更の可能性があるシステム開発に適しています。しかし、プロトタイプの作成に時間がかかる場合があり、開発期間が長くなる可能性もあります。

システム開発の流れ

システム開発の主な流れは、「要件定義・外部設計・内部設計・テスト・引き渡し・保守および運用」の工程に分かれます。

要件定義〜内部設計まではシステムエンジニアが、プログラミング〜保守運用まではプログラマーが担うことが多いです。エンジニアがテストを行う場合もあります。テストは単体テスト・結合テスト・総合テストなど、各工程ごとで随時行います。

システム開発の費用相場

システム開発の費用は、50万円〜1億円以上と非常に幅が大きいです。これはシステム開発の規模・求める機能・開発期間・動員する人員によって変動するためです。

国内企業のIT部門への投資は年間売上高の1%〜2%といわれています。既存のパッケージングされたシステムなら安く済む場合が多く、1から開発する場合は高い傾向にあります。

システム開発を行う際のポイント

システム開発を成功させるためには、いくつかのポイントを押さえる必要があります。

クライアントと密なコミュニケーションを取る

システム開発をスムーズに行うには、クライアント企業との綿密な打ち合わせやレビューをもらい、開発に活かす必要があります。伝言ゲームや丸投げだと完成後に「要求したものと違う」とトラブルが起こる可能性があるため、担当者とは常にチェックを行いながら開発を進めましょう。

また、クライアントの機密情報を取り扱うため、情報の取り扱いに関してもお互いに認識の齟齬がないよう十分に注意が必要です。

開発体制と導入目的が明確化されている

開発の初期における要件定義で、導入目的や求める機能、解決したい企業の課題をヒアリングし、優先順位を決めます。

また、システム開発の規模に合った開発体制が構築されているか、期間と人員数は適切かなど、リソースと環境の構築もその後の開発スケジュールに大きく影響します。見積もりが甘いとミスの発生や品質の低下、納品の遅れが生じるリスクがあります。

まとめ

システム開発は、企業の課題解決や業務効率化に役立つ重要なプロセスです。システム開発を成功させるためには、クライアントとの密なコミュニケーション、明確な開発体制と導入目的、そして適切な開発手法の選択が重要です。この記事を参考に、自社にとって最適なシステム開発を進めていきましょう。

SHARE

この記事を書いた人

eyone

シニアマネージャー

eyone

開発業界、サポート業界、SIer、コンサル、製造業と練り歩いてきた異端のスキルセットを持つ人。
特徴は知らないことをやりたいという、好奇心中心の生活をしています。社外でも社内でも、なんでも問題解決屋になれるべく仕事に取り組む毎日!