システム開発の流れとは?開発工程と開発手法、システム開発を成功させるためのポイントを解説
現行システムが複雑化・ブラックボックス化し、業務効率の低下や新規サービス展開の障壁となっている企業では、現行システムから新システムへの刷新や導入するプロジェクトが円滑に進まないおそれがあります。新システムの開発を進める際には、現場の要求に合わせるだけではなく、企業全体の経営課題を解決する全体最適の視点を持つことが重要です。
しかし、経営層と現場のコミュニケーション不足などから、システム開発の目的や価値が十分に共有されていない場合があります。さらに、開発リソース不足や品質管理の甘さが、プロジェクトの遅延やコスト超過を引き起こす事例も多く見られます。
本記事では、システム開発の基本的な流れと代表的な開発手法、プロジェクトの成功に不可欠な「RFP」の重要性について詳しく解説します。
ぜひ、ご一読ください。

INDEX
システム開発のよくある悩み
まず、システム開発におけるよくある悩みについてご紹介します。
現行システムの仕様と課題を把握しにくい
現場の業務プロセスが複雑な場合、現行システムが抱える課題が見えにくいことがあります。これにより、システム刷新に向けた優先順位を決めるのが難しくなります。
その結果、業務プロセスの棚卸しに多くの時間とリソースが必要となり、全体の見直しが生じ、プロジェクト全体が遅延するリスクも高まります。
システム開発の目的・価値が浸透しにくい
システム開発において重要なのは、企業全体の経営戦略に沿った全体最適化です。
現場の要求や要望に偏重しすぎると、企業全体の課題を解決するための全体最適を実現しにくくなります。経営層と現場がそれぞれの観点から改善を志向していたとしても、両者間でのコミュニケーション不足により、システム開発の目的や価値が十分に共有されず、企業の成長や戦略的目標を達成できなくなります。
開発リソースと品質の確保
システム開発プロジェクトにおいて、開発リソースの不足は品質低下を招く重大な問題です。適切なリソースを確保できないと、各工程での作業が不十分となります。その結果、システムの不具合が増え、信頼性や安定性を損ないかねません。
また、プロジェクト進行中にリソースの過不足が生じると、スケジュールの遅延やコスト超過が発生し、品質の確保がさらに難しくなります。
システム開発の流れ
次に、システム開発の具体的な流れについて解説します。各工程の実施内容を理解しておきましょう。
プロジェクトの目的と位置付け
まず、プロジェクトの目的と位置付けを明確にすることが重要です。システム開発が現場の業務効率化だけではなく、経営課題の解決や競争力強化にどう貢献するのかを明確にし、プロジェクト関係者全員の合意形成を得ることが必要です。
システム企画
システム企画では、企業全体の経営課題を解決するために、全体最適の観点に立って検討する必要があります。現場の意向や要望ばかりに目を向けると、全体最適化のバランスが崩れるおそれがあります。そこで、経営課題の解決を図るためのシステムとして考えることが重要です。
RFI作成
次に、RFI(Request For Information:情報提供依頼書)を作成し、ベンダーに情報提供を依頼します。ここでは、システムに関する一般的な情報を収集し、ベンダーの技術力や対応可能な製品・サービスについて把握します。
RFIを通じて、どのベンダーが自社のニーズに合致しているかを判断し、RFPを作成するための前準備を行います。RFIの目的は、製品やサービスの情報を幅広く収集することであり、ベンダー選定ではありません。
RFP作成
RFIで情報収集を行い、RFP(Request for Proposal:提案依頼書)を作成します。RFPとは、ベンダーに要求・要望を伝え、システムの提案依頼を行うための文書です。システムの要求事項、予算、納期、成果物、サポート体制などを明記します。
なお、先に要件定義を行ってから、その内容に基づいてRFPを作成する場合もあります。
要件定義
要件定義では、システムが解決すべき課題や実現すべき機能を明確化します。大きく「機能要件」と「非機能要件」に分かれます。
機能要件
システムがどのような機能を提供するべきか、具体的な操作や処理に関する要件です。たとえば、ユーザが商品を検索できる機能や、注文を管理する機能など、システムに必要とされる機能を明確化します。
非機能要件
システムの性能や可用性、セキュリティ、運用保守など、機能以外のシステム要件です。具体的には、システムの応答時間、同時に処理できるユーザ数、システム停止の許容時間、データの保護レベル、セキュリティ強度などが挙げられます。
設計
要件定義に基づいて、システムの全体的なアーキテクチャ設計、アプリケーションの処理フローやインターフェース設計、データベース設計、サーバーやネットワークなどのインフラストラクチャ設計、運用設計などを行います。
RFPで定義した要件が設計に反映されるよう、ベンダーと密接に連携することが重要です。
開発
設計が固まったら、実際の開発作業に着手します。アプリケーションやインフラストラクチャの構築が行われ、要件に基づいた機能が実装されていきます。開発中は、RFPに基づいた要件が正しく実装されているかの定期的な進捗確認が必要です。
テスト
テストを通じて、開発したシステムの品質を確認します。システムが要件を満たしているか、エラーやバグがないかを確認するために、単体テスト、結合テスト、総合テストなど、設計粒度に応じた各種テストを実施します。
また、非機能要件を満たしていることを確認するための、障害テストや負荷テストなども対象です。
移行
テストが完了したら、現行システムから新システムへの移行を行います。データ移行や環境設定がスムーズに行われるよう、計画をしっかりと立てることが重要です。
運用・保守
移行後は、システムが安定して稼働し続けるよう、適切な運用・保守を実施しなければなりません。
定期的なメンテナンスやトラブル、ユーザからの問い合わせへの対応が必要です。また、運用中に発生する障害や新たな要件や改善要望への対応も求められます。
システム開発の手法
プロジェクトの内容や目的に応じて、適切な手法を選ぶことが重要です。今回は、システム開発の代表的な手法である、ウォーターフォール型とアジャイル型を解説します。
ウォーターフォール型
ウォーターフォール型とは、システム開発の工程を順次進めていく開発手法です。
各工程が完了してから次の工程に進むため、進行状況を把握しやすく、計画的に進められるメリットがあります。要件が明確で、変更が少ないプロジェクトに適しています。
ただし、途中で要件変更が発生した場合、工程全体に影響が及ぶため、柔軟性に欠ける点がデメリットです。
アジャイル型
アジャイル型は、「計画→設計→実装→テスト」を短いサイクルで繰り返し行うことで、利用者からのフィードバックを迅速かつ柔軟に反映し、システムを段階的に完成させていく開発手法です。
要件が頻繁に変更される可能性が高いプロジェクトや、比較的小規模なプロジェクトに適していると言われています。
一方で、プロジェクト全体の進行状況が見えにくく、頻繁な要件変更に対して適切なスケジューリングができないと、プロジェクトが混乱するおそれがあります。メンバーのスキルと細かなマネジメントが必要な手法です。
システム開発を成功させるためのポイント
適切にシステムの仕様を定め、品質を保ちながら開発を進めるにあたっては、いくつかの考慮すべき要素があります。ここでは、開発を成功させるために守るべき重要なポイントを解説します。
現状把握と業務の棚卸し
現場の業務プロセスの棚卸しを行い、現行システムの仕様を把握しましょう。
システムが解決すべき課題や改善点が明確になれば、要件定義の精度が向上し、実際の業務に即したシステムが構築しやすくなります。
経営層とのコミュニケーション
システム開発プロジェクトを成功させるためには、経営層の理解と支持を得ることが不可欠です。
「競争力の強化」「業務効率化によるコスト削減」「顧客満足度向上」など、システムがもたらすメリットを定性的・定量的に示すと、プロジェクトや予算の承認を得られる可能性が高まります。
システム開発の目的と価値の共有
経営層と現場が、システム開発の目的や価値を共有することが重要です。現場のニーズに加えて、企業全体の成長や戦略的目標を意識した設計が必要です。経営課題を解決し、企業の競争力を強化するためのシステムであることを、現場にしっかりと伝えましょう。
適切なリソースの確保と管理
システム開発プロジェクトが成功するかどうかは、適切なリソースの確保と管理に大きく依存します。
プロジェクト開始前に、人材、時間、予算など必要なリソースを正確に見積もり、開発の各工程において過不足がないように管理・モニタリングすることが重要です。プロジェクトの進捗が遅れている場合や、予算が超過しそうな場合は、リソースの再配置や追加も考慮しなければなりません。
ベンダーに開発を委託する場合でも、プロジェクト管理および仕様管理は必ず自社で行い、すべてをベンダー任せにしないことも品質を保つために重要です。
品質確保の徹底
開発の各段階において、品質を確保するためのテストやレビューを徹底することで、システムの信頼性や安定性を高められます。
特に、システムが複雑であるほど、単なる機能テストだけではなく、性能テスト、セキュリティテスト、ユーザの受入テストなど多角的な品質チェックが求められます。
RFPの重要性とは
システム開発プロジェクトを成功へと導くために、特に重要なのがRFPです。システム開発においてRFPが果たす役割・重要性を解説します。
明確な要件伝達
RFPは、企業のシステムに対するニーズを詳細に伝える文書です。システムへの要求事項、予算、スケジュール、成果物、サポート体制、システムライフサイクルなど、システムが企業の経営課題を的確に解決し、安定運用させるための指針を記載する必要があります。
システムに期待するポイント・価値が明確かつ具体的であるほど、ベンダーは企業のニーズに合った提案を行いやすくなり、最適なシステムを導入ができる可能性が高まります。
ベンダー間の比較基準
複数のベンダーから提案を受ける場合、RFPはその比較基準となります。要求事項が明確に記述されていれば、各ベンダーの提案内容を公平に比較検討することが可能です。
その結果、企業にとって最適なベンダーを選定しやすくなり、プロジェクトが成功する確率も向上します。
プロジェクトの方向性を確立
RFPは、システム開発プロジェクトの方向性を定める「羅針盤」のような役割を果たします。RFPを通じて、ベンダーと企業との間でプロジェクトの範囲や目的、期待される成果物について共通認識が形成されます。
RFP作成時に、こうした方向性を明確に示すことで、その後のプロジェクト全体の進行が円滑化します。
リスクの軽減
RFPを整備し、曖昧な要件や期待のすれ違いを防ぐことで、後々のトラブルやコスト超過、スケジュールの遅延を回避することが可能です。プロジェクトの予算内での完了と、期待したシステムの導入と運用が実現しやすくなります。
まとめ
本記事では、システム開発の基本的な流れと代表的な開発手法、そしてプロジェクトの成功に不可欠である「RFP」の重要性について詳しく解説しました。
RFPは、プロジェクトの方向性を明確化し、開発におけるリスクを最小化するために不可欠な存在です。RFPを適切に作成し、システム開発を成功へと導きましょう。
関連資料
-
思わず導入したくなる! ERP導入10のメリット
近年では、デジタル社会に対応できるよう、多くの企業がシステム刷新の検討を開始しています。既存のシステムでは、周辺のシステムとの連携が困難であり、デジタルデータを利活用し、更なる企業成長と競争力を保てません。 そこで、ERPを企業の中心に据えた業務のデジタル化をご提案します。
本資料は、ERPを取り巻く環境がどのように変化したか。ERPを導入することでどのようなメリットを得られるのかをご紹介します。 ダウンロード -
基幹システムソリューションガイド(大全)
NTTデータ グローバルソリューションズが提供するお客様のDX(デジタルトランスフォーメーション)を実現するためのソリューションガイドです。ぜひ、ご一読ください。 ダウンロード